Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  VLR-DocManager-Reactor

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 Autodesk Produkte
Autor Thema:  VLR-DocManager-Reactor (1739 mal gelesen)
joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 27. Feb. 2007 09:31    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,
ich möchte beim öffen/neu und schließen einer DWG-Datei eine Reactor-Funktion einsetzen, habe aber noch keine Erfahrung damit.

Folgendes habe zum Testen in die acaddoc.lsp eingefügt:

Code:

(defun R:GutenTag ( A B / )
  (alert "Guten Tag"))
(defun R:AufWiedersehen ( A B / )
  (alert "Auf Wiedersehen"))

(vl-load-com)
(VLR-DocManager-Reactor
(vla-get-ActiveDocument (vlax-get-acad-object))
'((:vlr-documentCreated . R:GutenTag)
)
)
(VLR-DocManager-Reactor
(vla-get-ActiveDocument (vlax-get-acad-object))
'((:vlr-documentToBeDestroyed . R:AufWiedersehen)
)
)



Das :vlr-documentToBeDestroyed-Event funktioniert, die Funktion R:AufWiedersehen wird aufgerufen.
Das :vlr-documentCreated-Event funktioniert noch nicht, die Funktion R:GutenTag wird nicht aufgerufen.

Weiß einer was ich da falsch gemacht habe?

------------------
viele Grüße

Jörn

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

tunnelbauer
Ehrenmitglied V.I.P. h.c.
Bauingenieur



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

Beiträge: 7085
Registriert: 13.01.2004

ich hab eh keine Probleme damit...

erstellt am: 27. Feb. 2007 09:49    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 joern bosse 10 Unities + Antwort hilfreich

Funktioniert der create-Reaktor nur beim Öffnen nicht oder bei beiden Befehlen (öffnen und neu) nicht ?

------------------
Grüsse

Thomas

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 27. Feb. 2007 09:55    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 Thomas,
in beiden Fällen funktioniert es nicht.

------------------
viele Grüße

Jörn

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CAD-Huebner
Ehrenmitglied V.I.P. h.c.
Verm.- Ing., ATC-Trainer



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

Beiträge: 9732
Registriert: 01.12.2003

One AutoCAD 2.5 - 2023, Civil 3D, Win10/win11

erstellt am: 27. Feb. 2007 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 Nur für joern bosse 10 Unities + Antwort hilfreich

Der Reaktor :VLR-DOCUMENTCREATED funktioniert nur im Single Document Modus (SDI = 1) und wenn zusätzlich Lispinit = 0, d. h. AutoLISP-Funktionen und -Variablen werden von einer Zeichnung zur nächsten erhalten.
Den Aufruf von _NEW oder _SNEW kann man wohl besser über einen Command-Reaktor auswerten, bevor die neue Zeichnung angelegt wird.
Edit Ansonsten für Neu/Öffen S::Startup benutzen.

------------------
Mit freundlichem Gruß

Udo Hübner

[Diese Nachricht wurde von CAD-Huebner am 27. Feb. 2007 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 27. Feb. 2007 11:49    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 Udo,
danke erstmal für Deine Antwort. Da ich mit auch mit S::Startup noch nichts gemacht habe, habe ich die Forumsuche danach bemüht: und ich glaube ich bin dabei zu einer Lösung gekommen, denn ich bin über eine Bemerkung von CADmium gestolpert: http://ww3.cad.de/foren/ubb/Forum145/HTML/000455.shtml#000010
Zitat:

Nochmal : die acaddoc.lsp wird bei jedem Öffnen einer Zeichnung ausgeführt, dem zufolge auch alle Befehle in derselben!
Warum dann noch eine Startup..?


Das heißt für mich, wenn ich eine Zeichnung starte, dann brauche ich gar keinen Reaktor mehr für den Zeichnungsstart, denn die Funktion die ausgeführt werden soll steht ja sowieso in der acaddoc.lsp, warum einfach wenn es auch umständlich geht

------------------
viele Grüße

Jörn

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CAD-Huebner
Ehrenmitglied V.I.P. h.c.
Verm.- Ing., ATC-Trainer



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

Beiträge: 9732
Registriert: 01.12.2003

One AutoCAD 2.5 - 2023, Civil 3D, Win10/win11

erstellt am: 27. Feb. 2007 11:57    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 joern bosse 10 Unities + Antwort hilfreich

Hallo Jörn, es kann in bestimmten Fällen sinnvoll sein, Befehle aus der ACADDOC.lsp nicht während des Ladevorgangs unverzüglich auszuführen sondern, erst nach dem Abschluss aller Ladevorgänge.
Dann erst wird die Spezialfunktion S::STARTUP ausgeführt.

ich zitier mal aus der Online Hilfe:

Zitat:
Sie können eine S::STARTUP-Funktion definieren, um nach der Zeichnungsinitialisierung benötigte Einrichtungsoperationen durchzuführen.

Die Start-LISP-Dateien (acad.lsp, acaddoc.lsp und MNL) werden in den Speicher geladen, bevor eine Zeichnung vollständig initialisiert ist. Dies stellt normalerweise kein Problem dar, es sei denn, Sie möchten die command-Funktion verwenden. Es kann nicht garantiert werden, dass diese vor der Zeichnungsinitialisierung funktioniert
...



------------------
Mit freundlichem Gruß

Udo Hübner

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


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

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 27. Feb. 2007 12:00    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 Udo,
und wieder was dazu gelernt, in meinem Fall brauche ich aber keine Command-Befehle.

------------------
viele Grüße

Jörn

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

archtools
Mitglied



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

Beiträge: 823
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 27. Feb. 2007 12:43    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 joern bosse 10 Unities + Antwort hilfreich

 
Zitat:
Original erstellt von CAD-Huebner:
[i]Hallo Jörn, es kann in bestimmten Fällen sinnvoll sein, Befehle aus der ACADDOC.lsp nicht während des Ladevorgangs unverzüglich auszuführen sondern, erst nach dem Abschluss aller Ladevorgänge.
Dann erst wird die Spezialfunktion S::STARTUP ausgeführt.
/i]


VORSICHT!!! GEFAHR!!!

Wenn man einem Laien oder einem Publikum, in dem sich auch Laien befinden, die S::STARTUP Funktion erklärt, dann muss man UNBEDINGT darauf hinweisen, dass es eben nur diese eine einzige Funktion gibt, die eventuell aber von vielen Applikationen zur Initialisierung benötigt wird, und dass diese Funktion deshalb so definiert werden muss, dass alle anderen Applikationen sie auch nutzen können.

Wenn jemand in der ACAD.LSP oder einer anderen automatisch geladenen Datei die S::STARUP Datei definiert, dann verhindert er allen zuvor geladenen Applikationen die Nutzung der S::STARTUP Funktion und macht sie damit eventuell unbrauchbar.

Wie geht man also vor?

1. Man prüft, ob vielleicht schon eine S::STARTUP Funktion vorhanden ist
2. Falls nicht, dann darf man beruhig seine eigene definieren. Sie muss aber so definiert werden, dass sie als Liste und nicht als SUBR vorliegt, damit später geladene Applikationen diese auch nutzen können. Dazu verwendet man DEFUN-Q statt DEFUN!
3. Falls schon eine S::STARTUP vorhanden ist, dann prüft man, ob das eine Liste ist oder eine SUBR. Ist es eine SUBR, dann prüft man, von welcher Appluikation die stammt und reicht dem Entwickler diese Applikation zur Nachbesserung zurück und fährt fort wie bei 2).
4. Ist die S::STARTUP vorhanden und korrekt via DEFUN-Q definiert, dann hängt man die eigenen Startfunktionen via APPEND an die bereits vorhandene S::STARTUP dran.

Konkret sieht das am Beispiel der Initialsierung meiner ArchTools so aus:

Code:

(defun-q archtoolsstart ()
  (load "ARCHTOOLS.VLX")
  (archtools-init)
  (prin1)
)

(cond
  ((not S::STARTUP)
  (setq S::STARTUP archtoolsstart)
  )
  ((AND S::STARTUP (listp S::STARTUP))
  (setq S::STARTUP (append S::STARTUP (cdr archtoolsstart)))
  )
  ('T
  (setq S::STARTUP archtoolsstart)
  (princ
    (strcat "\nArchTools Warnung:"
            "\nEine fremde Applikation hat die S::STARTUP Funktion"
            "\nfehlerhaft eingerichtet."
            "\nSie wird u.U. nicht korrekt initialisiert"
    )
  )
  )
)


Tom Berger

[Diese Nachricht wurde von archtools am 27. Feb. 2007 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



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

Beiträge: 2490
Registriert: 02.11.2001

Windows 10 64bit
AutoCAD Architecture 2018/2019 (deu/eng)
AEC-Collection 2019 (Revit und Zeugs)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung (mies implementierter Schrott)

erstellt am: 28. Feb. 2007 10: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 joern bosse 10 Unities + Antwort hilfreich

Klasse Tom, der Einwand hat natürlich noch gefehlt.
Und vor dem Hintergrund ist es vielleicht noch wichtig zu erwähnen, was der Sebastian (cadffm) im FAQ so beiläufig erwähnt hat:
Zitat:

Interessant: Es können mehrere acaddoc.lsp existieren !
AutoCAD sucht anhand der im Bibliothekspfad angegebenen Reihenfolge nach
einer acaddoc.lsp-Datei. Es ist daher durch diese Funktion möglich, über verschiedene
acaddoc.lsp-Dateien in den jeweiligen Zeichnungsverzeichnissen zu verfügen, so dass
bestimmte AutoLISP-Routinen für bestimmte Zeichnungstypen oder Aufgaben geladen
werden können.


Umso wichtiger die S::STARTUP korrekt zu implementieren.

------------------
Ciao,
Marc
Mein AG sucht u.a. Architekten und Bauzeichner!
Mein alter AG sucht 'nen CADMIN

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