| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für BricsCAD |
Autor
|
Thema: AutoLisp Programme Laden (541 / mal gelesen)
|
Tinkerboy Mitglied techn.Assist. für Informatik
Beiträge: 27 Registriert: 08.02.2022 Software:AutoCAD 2000 unter Windows XP als VM unter W10, Hardware: AMD Ryzen 9 5900HX, 32GB RAM, SSD
|
erstellt am: 10. Feb. 2022 17:29 <-- editieren / zitieren --> Unities abgeben:
Hallo, gestern habe ich mir die 30tage Lizenz für BricsCAD runter geladen um mir das Programm mal anzusehen. Derzeit arbeite ich noch mit ACAD 2000. Da ich ein paar selbst geschriebene LISP-Programme verwende, hab ich mich zuerst mal mit der Einbindung in Brics beschäftigt. Das hat auch alles geklappt, die Programmdatei wird geladen und die Befahle funktionieren auch in Brics. Der Grund für den Test mit Brics ist, das ich einen Befehl aus dem Forum ausprobieren wollte (Block-OUT) der unter ACAD 2000 nicht funktioniert. Unter Brics funktioniert er zwar, wird aber sofort nach dem Laden der Zeichnung automatisch ausgeführt, bei meinen eigenen Befehlen passiert das nicht und soll es auch bei dem neuen nicht. Beide Programmdateien werden über on_start.lsp geladen. Kann mir jemand sagen woran es liegt, das die Befehle der eine nur Bereitgestellt, der Befehl der anderen aber sofort ausgeführt wird? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
T.Moses Mitglied
Beiträge: 82 Registriert: 16.03.2005 Win10, Core i9-9900k @5.0 GHz, 32 GB Ram, NVidia GT1030
|
erstellt am: 10. Feb. 2022 19:19 <-- editieren / zitieren --> Unities abgeben: Nur für Tinkerboy
> Unter Brics funktioniert er zwar, wird aber sofort nach dem Laden der Zeichnung automatisch ausgeführt, bei meinen eigenen Befehlen passiert das nicht vermutlich beinhaltet jene Lisp Datei einen Aufruf, um jene Funtion direct beim Laden auszuführen; typischerweise ausserhalb von (defun ...) als Aufruf (FunktionsName ...) Evtl. mal jenes Programm hier anfügen, damit man da mal reinschauen (und ggf. korrigieren) kann. Und bitte ACADLSPASDOC=1 sicherheitshalber (in der on_start.lsp) setzen mit (setvar "ACADLSPASDOC" 1), damit die on_start.lsp auch in jeder Zeichnung geladen wird. Der bessere Weg ist, die on_doc_load.lsp (entspricht AcadDoc.lsp) anstelle on_start.lsp nutzen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tinkerboy Mitglied techn.Assist. für Informatik
Beiträge: 27 Registriert: 08.02.2022 Software:AutoCAD 2000 unter Windows XP als VM unter W10, Hardware: AMD Ryzen 9 5900HX, 32GB RAM, SSD
|
erstellt am: 11. Feb. 2022 11:10 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von T.Moses: > vermutlich beinhaltet jene Lisp Datei einen Aufruf, um jene Funtion direct beim Laden auszuführen; typischerweise ausserhalb von (defun ...) als Aufruf (FunktionsName ...)Evtl. mal jenes Programm hier anfügen, damit man da mal reinschauen (und ggf. korrigieren) kann.
https://ww3.cad.de/foren/ubb/Forum54/HTML/006329.shtml#00001 Zitat: > Und bitte ACADLSPASDOC=1 sicherheitshalber (in der on_start.lsp) setzen mit (setvar "ACADLSPASDOC" 1), damit die on_start.lsp auch in jeder Zeichnung geladen wird.Der bessere Weg ist, die on_doc_load.lsp (entspricht AcadDoc.lsp) anstelle on_start.lsp nutzen.
Wo liegt da der Unterschied (also zwischen on_doc_load.lsp und on_start.lsp)? Sprich ich möchte verstehen was ich da mache! Danke für die Hilfe! [Diese Nachricht wurde von Tinkerboy am 11. Feb. 2022 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Ehrenmitglied V.I.P. h.c. 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 11. Feb. 2022 11:17 <-- editieren / zitieren --> Unities abgeben: Nur für Tinkerboy
ACADLSPASDOC gehört aus 0 damit die on_start/ACAD.lsp das machen kann wofür sie da ist: Die Datei wird einmal beim Programmstarten geladen Die on_doc_load.lsp/ACADDOC.lsp wird mit jeder Datei geöffnet. Somit kann man prima trennen: Sachen welche das Programm betreffen und nur einmal ausgeführt werden müssen: on_start/ACAD.lsp Sachen welche die Datei betreffen und pro Datei ausgeführt werden sollen: on_doc_load.lsp/ACADDOC.lsp
Das saudämliche ACADLSPASDOC=1 kann dazu genutzt werden das die on_start/ACAD.lsp sich so verhält wie es eigentlich für die on_doc_load.lsp/ACADDOC.lsp angedacht ist: Dann werden diese mit jeder Datei geladen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tinkerboy Mitglied techn.Assist. für Informatik
Beiträge: 27 Registriert: 08.02.2022 Software:AutoCAD 2000 unter Windows XP als VM unter W10, Hardware: AMD Ryzen 9 5900HX, 32GB RAM, SSD
|
erstellt am: 11. Feb. 2022 11:26 <-- editieren / zitieren --> Unities abgeben:
Hmm, aber welchen Sinn macht es die Programme mit jeder Zeichnung neu, statt sie nur einmal beim Programmstart zu laden? Es sind Funktionen die ich beim Arbeiten brauche, egal welchen Plan ich lade und sie sollen ja nicht nach dem Laden einer Zeichnung automatisch ausgeführt werden. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Ehrenmitglied V.I.P. h.c. 良い精神
Beiträge: 21533 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 11. Feb. 2022 11:33 <-- editieren / zitieren --> Unities abgeben: Nur für Tinkerboy
1. Kann man darin ja auch andere Dinge einstellen®eln (lassen), da hast du etwas die Scheuklappen auf. 2. "welchen Sinn macht es die Programme mit jeder Zeichnung neu" "Es sind Funktionen die ich beim Arbeiten brauche, egal welchen Plan ich lade" Genau das ist auch die Antwort: Wenn du die Funktionieren in jeder Datei anwenden können möchtest, dann müssen die Programm geladen sein. Damit diese geladen sind, muss man diese laden IN DER DATEI. AutoLisp-Programme lädst du praktisch in deine Datei, also in die eine deine Datei, nicht in eine andere.. willst du das Programm in jeder Datei haben, musst du es auch in jeder laden.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|