Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  BricsCAD
  AutoLisp Programme Laden

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
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 (540 / mal gelesen)
Tinkerboy
Mitglied
techn.Assist. für Informatik


Sehen Sie sich das Profil von Tinkerboy an!   Senden Sie eine Private Message an Tinkerboy  Schreiben Sie einen Gästebucheintrag für Tinkerboy

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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



Sehen Sie sich das Profil von T.Moses an!   Senden Sie eine Private Message an T.Moses  Schreiben Sie einen Gästebucheintrag für T.Moses

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Tinkerboy 10 Unities + Antwort hilfreich

> 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


Sehen Sie sich das Profil von Tinkerboy an!   Senden Sie eine Private Message an Tinkerboy  Schreiben Sie einen Gästebucheintrag für Tinkerboy

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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.
良い精神



Sehen Sie sich das Profil von cadffm an!   Senden Sie eine Private Message an cadffm  Schreiben Sie einen Gästebucheintrag für cadffm

Beiträge: 21533
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 11. Feb. 2022 11:17    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Tinkerboy 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von Tinkerboy an!   Senden Sie eine Private Message an Tinkerboy  Schreiben Sie einen Gästebucheintrag für Tinkerboy

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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.
良い精神



Sehen Sie sich das Profil von cadffm an!   Senden Sie eine Private Message an cadffm  Schreiben Sie einen Gästebucheintrag für cadffm

Beiträge: 21533
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 11. Feb. 2022 11:33    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Tinkerboy 10 Unities + Antwort hilfreich

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 >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz