FastFiber

verschillende lisp laden vanuit 1 lisp in de suite OPGELOST

Gestart door delangstevandestraat, wo 26 11 2014, 20:21:21

Vorige topic - Volgende topic

delangstevandestraat

Ik heb ondertussen al allerlei kleinere lisps geschreven die handig zijn, om deze makkelijk naar collega's over te dragen zou ik deze graag oproepen vanuit één lisp,
op zich lukt dat wel doch deze lisp moet bij elke dwg nog ge'runned' worden,
ik wil niet in acad.lsp wijzigen, omdat er nog allerlei andere zaken draaien waarmee ik niet in conflict wil komen
Als ik dan één of andere nieuw lsp schrijf plaats ik die er gewoon bij waardoor deze mee automatisch loopt.

dus :
hoe run ik automatisch "d:\\map\\map\\masterlisp.lsp"

ik heb zitten zoeken of dit al behandeld werd maar vond het niet, dus wegwijzers zijn ook welkom

groetjes,
Ik hou van werken,
ik kan er uuuren naar kijken...
daarom zorg ik ook dat er altijd genoeg overblijft voor morgen :-)

roy_043


delangstevandestraat

dag roy,

ik snap je antwoord niet goed... ?
of misschien snap je mijn vraag niet goed...  :lol:

* ik heb een lisp die bestaat uit verschillende (load ...) opdrachten
* deze masterlisp staat in de suite
* deze wordt automatisch geladen, maar niet automatisch uitgevoerd waardoor de sub lispen niet geladen zijn.

* ik zoek een manier waardoor dit wel gebeurt...
Ik hou van werken,
ik kan er uuuren naar kijken...
daarom zorg ik ook dat er altijd genoeg overblijft voor morgen :-)

EddyBeerke

Als je in een lisp het volgende zet, wordt het uitgevoerd direct na het laden.
Zet het onderaan je lisp file:

;;; begin van jou functies:
(defun c:test ()
  (alert "lisp wordt gelijk uitgevoerd")
  (princ)
)

;;; einde van jou functies...

;;; dit wordt gelijk na het laden uitgevoerd...
(princ "/nType 'test' om het commando te starten...")(princ)
(c:test)
(princ)


Nu het laden nog.
- Je kunt je lisp handmatig laden
- Vanuit verkenner de lisp-file in je tekening slepen
- Laden en uitvoeren met een knopje
- Of in je "startup" zetten

Dit laatste doe je met het commando "appload" (of kort "ap")
Dan sleep je jou lisp-file in de "Startup Suite" of klik op "Contents..."
En klik dan op "Add..." zou k je lisp op en klik op "openen".

Laat even weten of het lukt...
Suc6
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/

HofCAD

#4
Beste Delangstevandestraat,

Waarom kan het niet op onderstaande wijze:

(princ (load "C:\\LispMap\\Hulplisp1.lsp" "***Warning: Hulplisp1.lsp not found"))
(princ (load "C:\\LispMap\\Hulplisp2.lsp" "***Warning: Hulplisp2.lsp not found"))
(princ (load "C:\\LispMap\\Hulplisp3.lsp" "***Warning: Hulplisp3.lsp not found"))
(princ (load "C:\\LispMap\\Hulplisp4.lsp" "***Warning: Hulplisp4.lsp not found"))


:*********************Start Masterprogram*********************
(defun C:Master()
(princ "\nThis is the outcome of the master program.")
)
:*********************End Masterprogram*********************


(princ "\n\n\n ***MasterLisp.lsp loaded. Type MASTER to run this program.***")


Met vriendelijke groet, HofCAD CSI.
ACADcadabra

delangstevandestraat

'k zal straks eens proberen, maar in beide oplossingen zie ik staan "type iets"

waardoor ik concludeer dat het niet vanzelf gaat,

ik heb op mijn pc ondertussen al een tiental lispjes draaien die AUTOMATISCH worden geladen via de suite...

om dit niet bij al mijn collega's iedere keer te moeten opnieuw doen was ik op zoek naar een andere oplossing

waardoor als ik de masterlisp wijzig, dat dan bij alle collega's de toegevoegde lisp ook geladen wordt, enkel door een nieuwe masterlisp door te mailen en over de vorige te copyeren bvb...
Ik hou van werken,
ik kan er uuuren naar kijken...
daarom zorg ik ook dat er altijd genoeg overblijft voor morgen :-)

EddyBeerke

Citaat van: delangstevandestraat op do 27 11 2014, 12:11:51
'k zal straks eens proberen, maar in beide oplossingen zie ik staan "type iets"

waardoor ik concludeer dat het niet vanzelf gaat,

Kijk eens goed bij mijn lisp-code...
De regel "(princ "/nType 'test' om het commando te starten...")(princ)" wordt ook uitgeverd gelijk na het laden ervan en geeft aan dat als de gebruiker de lisp nog een keer wil uitvoeren hij/zij dat commando moet  typen.
Dit kun je natuurlijk ook weglaten.

Citaat van: delangstevandestraat op do 27 11 2014, 12:11:51
ik heb op mijn pc ondertussen al een tiental lispjes draaien die AUTOMATISCH worden geladen via de suite...

om dit niet bij al mijn collega's iedere keer te moeten opnieuw doen was ik op zoek naar een andere oplossing

waardoor als ik de masterlisp wijzig, dat dan bij alle collega's de toegevoegde lisp ook geladen wordt, enkel door een nieuwe masterlisp door te mailen en over de vorige te copyeren bvb...

Dit kun je oplossen als je een menu zou maken (met alle toolbars/ribbonpanels e.d., en ja die moet iedereen dan een keer laden)  en een daarbij behorende mnl-file maakt.

Bijvoorbeeld:
Menu = delangstevandestraat.cuix
Lisp = delangstevandestraat.mnl (i.p.v. delangstevandestraat.lsp)
De mnl-file wordt samen in dezelfde map geplaatst en acad laad de mnl-file als de cuix geladen wordt.

Zo heb ik dat ook gedaan voor het menu van mijn bedrijf.
Ook erg handig is dan om de benodigde lisp-files te laden, commando's te definieren die in de knoppen gebruikt worden, instellingen door te voeren, en noem maar op.

Als je dit op een server plaatst waar je rechten op hebt merken de gebruikers er helemaal niets van als je iets aanpast.

Een goede start zou zijn dat je de code overneemt van HofCAD:
Citaat van: HofCAD op do 27 11 2014, 11:09:40


(princ (load "C:\\LispMap\\Hulplisp1.lsp" "/n***Warning: Hulplisp1.lsp not found"))
(princ (load "C:\\LispMap\\Hulplisp2.lsp" "/n***Warning: Hulplisp2.lsp not found"))
(princ (load "C:\\LispMap\\Hulplisp3.lsp" "/n***Warning: Hulplisp3.lsp not found"))
(princ (load "C:\\LispMap\\Hulplisp4.lsp" "/n***Warning: Hulplisp4.lsp not found"))


(princ "\n\n\n ***MasterLisp.lsp loaded.***")


Met vriendelijke groet, HofCAD CSI.

Bovenstaande is iets aangepast!
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/

delangstevandestraat

Nu ik het allemaal snap vat ik de essentie eventjes samen zoals ik het gesnapt heb,

als ik leugens vertel laat het maar weten ;-)

stel: ik heb een masterlisp.lsp gemaakt

(defun c:allesladen ()
  (load "d:\\map\\1elisp.lsp")
  (load "d:\\map\\2elisp.lsp")
  (load "d:\\map\\3elisp.lsp")
  (load "d:\\map\\4elisp.lsp")
  (load "d:\\map\\5elisp.lsp")
)
   

dan moet daar een extra regel bij

(c:allesladen)

die er dus voor zorgt dat na het laden van de masterlisp vanuit de suite deze lisp ook effectief uitgevoerd wordt.

de andere code is er om het totaalpakket failproof te maken en om wat duiding te geven naar de gebruiker.

Bedankt voor de hulp,
Ik wou dat ik het ook allemaal zo goed wist... ;-)
misschien komt dat nog
Ik hou van werken,
ik kan er uuuren naar kijken...
daarom zorg ik ook dat er altijd genoeg overblijft voor morgen :-)

FastFiber