CADsite forum

AutoCAD => Autolisp => Topic gestart door: pedorie op di 12 06 2018, 13:59:32

Titel: Opgelost dos_username
Bericht door: pedorie op di 12 06 2018, 13:59:32
Ik heb van de week Autocad civil 3D 2019 geinstalleerd en ik loop tegen 1 probleem aan, bij het starten van een .lsp krijg ik de volgende melding:

Command:
Command:
Command:  nil

Command: INSTEL ; error: no function definition: DOS_USERNAME


De lisp heet INSTEL en daarmee kan ik makkelijk tekening in een bepaalde schaal zetten en dat zijn ook gelijk de lettertype en maatvoering juist. In 2018 werkt in nog wel prima.

Ik heb al hel wat zitten zoeken op DOS_USERNAME maar ik kom er niet uit wat dit inhoudt en wat ik er kan doen om e.e.a. werktend te krijgen, iemand een idee?
Titel: Re: dos_username
Bericht door: gery op di 12 06 2018, 14:31:24
Kan je de lisp-code hier posten aub? Want erzonder is het moeilijk te bepalen wat de oorzaak is.

Ik vermoed dat DOS_USERNAME een LISP-functie is die aangeroepen wordt maar die niet geladen is.
Titel: Re: dos_username
Bericht door: pedorie op di 12 06 2018, 14:41:32
Hey Gery,

Er zijn 2 gevallen waar het niet werkt, bij kbl.lsp en instel.lsp, deze vind je in de bijlage.
Titel: Re: dos_username
Bericht door: roy_043 op di 12 06 2018, 21:55:29
Je moet waarschijnlijk DOSLib installeren:
http://wiki.mcneel.com/doslib/home
Titel: Re: dos_username
Bericht door: pedorie op wo 13 06 2018, 08:40:31
Ik heb de laatste versie van DOSlib geïnstalleerd in bij de opties ook het pad aangegeven.
Titel: Re: dos_username
Bericht door: EddyBeerke op wo 13 06 2018, 09:00:48
Ik krijg (met autocad 2018) andere gelijkwaardige meldingen zoals "no function definition".
Blijkbaar zijn er nog andere functies nodig in een andere lisp.
Misschien gaat het daar mis en niet in deze lisps.
Titel: Re: dos_username
Bericht door: gery op wo 13 06 2018, 10:04:37
Pedorie, hebt u ook een lisp functie die "uc" noemt?
Titel: Re: dos_username
Bericht door: roy_043 op wo 13 06 2018, 13:30:35
Ik raad aan om de DOSLib ARX handmatig te laden en dan te controleren of het probleem nog steeds optreedt.
Titel: Re: dos_username
Bericht door: roy_043 op wo 13 06 2018, 13:31:44
Deze topic zou verplaatst moeten worden naar de Lisp sectie van dit forum.
Titel: Re: dos_username
Bericht door: pedorie op wo 13 06 2018, 14:38:01
Citaat van: roy_043 op wo 13 06 2018, 13:30:35
Ik raad aan om de DOSLib ARX handmatig te laden en dan te controleren of het probleem nog steeds optreedt.

dit heb ik gedaan en dan werkt het wel.
Ik heb dit pad naar de map met Doslib al toegevoegd bij Support File Search Path (net als in 2018) en ging er vanuit dat het voldoende is, nu moet ik hem dus via Appload elke keer laden, dat ga ik dan instellen en hopelijk werkt het dan.
Titel: Re: dos_username
Bericht door: EddyBeerke op wo 13 06 2018, 16:45:54
Citaat van: pedorie op wo 13 06 2018, 14:38:01... nu moet ik hem dus via Appload elke keer laden, dat ga ik dan instellen en hopelijk werkt het dan.
Waarom zet je het dan niet in de "Startup Suite"?
Of zorg dat de lisproutine het zelf laad:
(defun DOSLibLoader (/ acad proc fname)
  ; Determine the version of AutoCAD
  (setq acad (substr (getvar "ACADVER") 1 2))
  ; Determine the system's processor architecture
  (setq proc (= "AMD64" (getenv "PROCESSOR_ARCHITECTURE")))
  ; Build a file name string
  (if proc
    (setq fname (strcat "./Lisp/DOSLib" acad "x64.arx"))
    (setq fname (strcat "./Lisp/DOSLib" acad ".arx"))
  )
  ; If found in AutoCAD's search path, load it
  (if (findfile fname)
    (arxload fname nil)
    (prompt (strcat "\n" fname " not found."))
  )
  (princ)
)

Deze functie voer je uit met:
(DOSLibLoader)
Deze code werkt ook bij oudere versies van AutoCAD.
Voorwaarde is dat de doslib(s) in het zoekpad van acad moet staan.

Handigheidje:
Mocht je een menu gemaakt hebben dan is het handig om een .mnl bestand te maken met dezelfde naam als het menu:
MijnMenuNaam.CUIX
MijnMenuNaam.MNL
Zet daar bovenstaande functie in.
Deze .mnl wordt tegelijk geladen met het menu en van hieruit kun je dus de functie aanroepen tijdens het laden van het menu.
Bij elk bestand dat geopend wordt laad acad ook je menu opnieuw.
Titel: Re: dos_username
Bericht door: pedorie op vr 15 06 2018, 10:29:05
Hey Eddy,

Ik snap redelijk wat van Autocad (en wil graag meer leren) maar dit gaat even te ver  :wink:

Ik heb een Civilcad.lsp waar het e.e.a. in staat. Daar is ooit een stukje tekst m.b.t. de doslib toegevoegd. Bij elke nieuwe versie kopieer dan de laatste en pas de versie aan, voor 2019 dus Doslib23x64.arx.
(.lsp zit in de bijlage)

Jij stelt voor om dit hier uit te halen en een aparte lisp te maken?

Je "handigheidje" mbt een menu gaat me net iets te ver, sorry.
Titel: Re: dos_username
Bericht door: EddyBeerke op vr 15 06 2018, 14:56:29
Citaat van: pedorie op vr 15 06 2018, 10:29:05
...Ik heb een Civilcad.lsp waar het e.e.a. in staat. Daar is ooit een stukje tekst m.b.t. de doslib toegevoegd. Bij elke nieuwe versie kopieer dan de laatste en pas de versie aan, voor 2019 dus Doslib23x64.arx.
(.lsp zit in de bijlage)
Het gedeelte van jou lisp dat de DosLib moet laden moet je steeds handmatig aanpassen.
Met de funcie die ik gedeeld heb (niet zelf gemaakt) is dit niet meer nodig omdat het de juiste DosLib versie laad.

Je kunt dat gedeelte vervangen door die functie ->
b.v. onderaan de functie toevoegen en het hele gedeelte tussen
;;;laden van dos tools en
;;;Instellingen algemene CivilCAD omgeving
vervangen door:
(DOSLibLoader)

Wat betreft dat handigheidje... misschien een keer tijd voor mij om een instructie te schrijven.
Titel: Re: Opgelost dos_username
Bericht door: pedorie op wo 27 06 2018, 14:09:47
uiteindelijk is het opgelost, ik ben een stuk wijzer geworden, bedankt!

Di topic mag ev verwijderd worden.
Titel: Re: Opgelost dos_username
Bericht door: EddyBeerke op do 28 06 2018, 08:44:44
Citaat van: pedorie op wo 27 06 2018, 14:09:47
Dit topic mag ev verwijderd worden.
Als dit topic nuttige info heeft voor andere mensen dan mag het van mij nog heel lang hier staan.
Beter is om het onderwerp van je eerste bericht in dit topic aan te passen door er "[OPGELOST]" achter te zetten.