Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Was sind Reaktoren?

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:  Was sind Reaktoren? (2115 mal gelesen)
GeorgK
Mitglied



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

Beiträge: 619
Registriert: 06.06.2001

erstellt am: 27. Mai. 2004 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

Hallo,

wer kann mir erklären was Reaktoren sind. Suche gute Doku.

Vielen Dank

Georg

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 27. Mai. 2004 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 GeorgK 10 Unities + Antwort hilfreich

Hallo Georg,

Reactoren sind Programme, die nicht durch einen bestimmten Befehl gestartet werden, sondern durch irgendein Ereignis.

Es gibt verschiedene Reactoren.
Eine Auswahl zum Verständnis:
Systemvariablen-Editor -> springt an ... wenn Änderungen an irgendeiner SysVar vorgenommen werden.
Befehlsreaktoren -> springt z.B. an ... wenn ein Befehl gestartet, abgebrochen oder beendet wird.
Objektreaktoren -> springt z.B. an ... wenn ein Objekt erzeugt, geändert oder gelöscht wird.
es gibt noch einige mehr, die du aber in der Hilfe nachlesen kannst.

Die Reactoren können fest in der Zeichnung gespeichert werden, dann sind diese persistent oder eben nicht (transient

Einen Reactor zu programmieren ist ansich keine Schwierigkeit. Das sind nur ein paar Zeilen.
Ereignis festlegen (Reactortyp) und dann die aufzurufende Lispfunktion dafür benennen.

Die Schwierigkeit besteht darin, das Verhalten der Reactoren zu erfassen und auch zu berücksichtigen. Es kann sehr leicht geschehen, dass man sich mit den Reactoren ganz schnell in eine Endlosschleife begibt. Z.B. dann, wenn man einem Objekt mehrere Reactoren verpasst, deren Verhalten zueinander nicht sauber programmiert wurde.

Dieses Wissen/Erfahrungen allerdings, wirst du kaum irgendwo nachlesen können. Das Erstellen der Reaktoren ist in der Hilfe (für meine Begriffe) sehr gut beschrieben.

Hast du ein konkretes Problem? dann beschreib das mal, dann kann man auch gezielt darauf eingehen.

Grüße Holger

------------------
Holger Brischke
(defun - Lisp over night!
AutoLISP-Programmierung für AutoCAD
Da weiß man, wann man's hat!

Treffen Sie (defun auf dem Autodesk Anwendertreffen am 15.06. in Steyr/Österreich!

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

GeorgK
Mitglied



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

Beiträge: 619
Registriert: 06.06.2001

erstellt am: 27. Mai. 2004 11:37    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 Holger,

folgendes Problem: Habe eine Zeichnung. In dieser werden die Einstellungen für Plotter etc. gespeichert. Bei einem Absturz werden die Reaktoren beschädigt. Wie kann ich diese wieder auf einen bestimmten Stand zurücksetzen?

Danke

Georg

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 27. Mai. 2004 11:45    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 GeorgK 10 Unities + Antwort hilfreich

Hallo Georg,

was heißt beschädigt?
Rücksetzen geht nicht. Du kannst die Reactoren entfernen und neu dranbauen .. aber was für einen Zwischenstand soll es denn da geben?

Wie ist (wenn vorhanden) die Fehlermeldung?

Grüße Holger

------------------
Holger Brischke
(defun - Lisp over night!
AutoLISP-Programmierung für AutoCAD
Da weiß man, wann man's hat!

Treffen Sie (defun auf dem Autodesk Anwendertreffen am 15.06. in Steyr/Österreich!

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

GeorgK
Mitglied



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

Beiträge: 619
Registriert: 06.06.2001

erstellt am: 27. Mai. 2004 11:53    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 Holger,

die Zeichnung läßt sich wiederherstellen (nach Absturz). Beim anschließenden Speichern stürzt Autocad 2004 Mechanical ab.

Wie kann ich alle Reaktoren löschen bzw. auslesen?

Danke

Georg

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

valerich
Mitglied
Programmierer


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

Beiträge: 12
Registriert: 22.09.2003

erstellt am: 27. Mai. 2004 12: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 GeorgK 10 Unities + Antwort hilfreich

Hallo Georg,

so kannst du alle Reactoren löschen
(vlr-remove-all).

Gruß Serghei

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools (d-tools.eu)

erstellt am: 27. Mai. 2004 12:30    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 GeorgK 10 Unities + Antwort hilfreich

Naja, die von Adesk gebastelten bleiben von diesem Aufruf allerdings unberührt.(Soweit meine Erfahrung.) Deshalb ist es schwierig dazu jetzt eine verlässliche Auskunft zu geben.
Kommen denn keine Fehlermeldungen, die du hier mal posten könntest?


Grüße Holger

------------------
Holger Brischke
(defun - Lisp over night!
AutoLISP-Programmierung für AutoCAD
Da weiß man, wann man's hat!

Treffen Sie (defun auf dem Autodesk Anwendertreffen am 15.06. in Steyr/Österreich!

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

GeorgK
Mitglied



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

Beiträge: 619
Registriert: 06.06.2001

erstellt am: 27. Mai. 2004 12:45    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

Leider kommen keine Fehlermeldungen. Ich habe herausgefunden, daß es an den Plotreaktoren liegen muss.

Wie kann ich mir die gesetzten Reaktoren anzeigen lassen?

Gruß

Georg

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

mapcar
Mitglied
CADmin



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

Beiträge: 1250
Registriert: 20.05.2002

Time flies like an arrow, fruit flies like a banana (Groucho Marx)

erstellt am: 29. Mai. 2004 08:51    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 GeorgK 10 Unities + Antwort hilfreich

Ich bring mal eine etwas andere Definition: Reaktoren in AutoCAD sind das, was man in anderen Sprachen Eventhandler nennt. Stimmt schon, sie reagieren auf Ereignisse - das Problem ist aber, dass sie auch Ereignisse verursachen: AutoCAD-Abstürze.

Ich habe so einige Reaktor-Programme geschrieben, die nach einer Probezeit dann doch wieder eingestampft wurden. Ein Beispiel: Vollautomatisches Setzen eines Bem-Layers, spart einem ja eine Menge Arbeit im Laufe der Zeit. Niemand, der sich den Code angesehen hat, konnte irgendeinen Fehler oder eine Unsauberkeit entdecken. Nach zwei oder drei Monaten Einsatz konnte der Fehler reproduzierbar festgemacht werden: Wurde nach einer Bemaßung im übernächsten Befehl ein bestimtes Entity gezeichnet (ich glaube, es war ein Ray), hat sich Acad ziemlich eilig verabschiedet. Ich hab's jedenfalls noch immer nicht geschafft, irgendein sinnvolles Reaktorprogramm zu schreiben, das dann auch über einen längeren Zeitraum ohne Stabilitätsprobleme benutzt werden konnte.

Zurück zur Definition: Reaktoren in AutoCAD sind das, was man in anderen Sprachen Eventhandler nennt. In AutoCAD heissen sie aber Reaktoren, weil sie einem das Gefühl vermitteln, direkt neben einem solchen zu wohnen;-)

Gruß, Axel

------------------

Meine AutoLisp-Seiten
Meine private Homepage
Mein Angriff auf dein Zwerchfell
Mein Lexikon der Fotografie
Mein gereimtes Gesülze
Meine Überzeugung...

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


Ex-Mitglied

erstellt am: 29. Mai. 2004 12:58    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Zitat:
Original erstellt von mapcar:
Ich habe so einige Reaktor-Programme geschrieben, die nach einer Probezeit dann doch wieder eingestampft wurden. Ein Beispiel: Vollautomatisches Setzen eines Bem-Layers, spart einem ja eine Menge Arbeit im Laufe der Zeit. Niemand, der sich den Code angesehen hat, konnte irgendeinen Fehler oder eine Unsauberkeit entdecken. Nach zwei oder drei Monaten Einsatz konnte der Fehler reproduzierbar festgemacht werden: Wurde nach einer Bemaßung im übernächsten Befehl ein bestimtes Entity gezeichnet (ich glaube, es war ein Ray), hat sich Acad ziemlich eilig verabschiedet. Ich hab's jedenfalls noch immer nicht geschafft, irgendein sinnvolles Reaktorprogramm zu schreiben, das dann auch über einen längeren Zeitraum ohne Stabilitätsprobleme benutzt werden konnte.

Es stimmt - Autodesk hat da einigen Murks gemacht. Die Sache mit Abstürzen bei speziellen Befehlen (z.B. auch ABSTAND als ersten Befehl nach der Initialisierung der Reaktoren, Deinen Hinweis auf RAY muss ich noch prüfen) habe ich auch oft erlebt, und ich habe herausgefunden, dass es für diesen Bug in AutoCAD eine Umgehung gibt. Folgendes musst Du dabei beachten:

1. ein Editor-Reaktor (also z.B. Command-Ended) muss solche Befehle explizit abfangen, eine "globale" Falle in einem COND Abschnitt genügt nicht.

2. Die Reaktorfunktion muss für diese Befehle "gar nichts" zurück geben, also z.B. (prin1). Die Rückgabe von NIL erzeugt einen Fehler.

Beispiel für die Editor-Reaktor-Funktion bei Command-Ended, der auf SCHIEBEN rreagieren soll:

so ist es u.U. fehlerhaft:
...
(COND
  ((= callingcommand "MOVE")
    (dowhatiwantformove)
  )
  (T (princ "\nother command"))
)

und so geht's ohne Absturz:
...
(COND
  ((= callingcommand "MOVE")
    (dowhatiwantformove)
  )
  ((= callingcommand "DIST")
    (princ "\nDIST ended")
    (prin1)
  )
  (T (princ "\nother command"))
)

Eine andere Fehlerquelle scheinen Timing-Probleme zu sein, die Abstürze beim Öffnen einer Zeichnung verursachen. Ich vermute, dass S::STARTUP die AutoCAD-Initialisierung nicht mehr vollständig abwartet (Autodesk soll praktisch keine LISP-Programmierer mehr haben, so dass S::STARTUP nicht an neuere Anforderungen angepasst wurde). Das konnte ich lösen, indem ich vor der Initialisierung der Reaktoren von meinem Programm ein Dummy-Objekt erzeugen und gleich wieder löschen lasse. Das Objekt wartet mit seiner Erzeugung nämlich solange, bis das möglich ist, und danach kann man auch gefahrlos die Reaktoren initialisieren.

Ganz schlimm ist es auch, wenn Leute im Single-Document-Mode mehrere AutoCAD-Sitzungen parallel geöffnet haben, und zwischen diesen Zeichnungen dann Copy&Paste machen.

Da ist also viel Ausprobiererei nötig, und die Umgehungen der Bugs sind nicht unbedingt straightforward und logisch. Und nach AutoCAD Updates geht u.U. alles wieder von vorne los. Aber immerhin verwende ich in meinen ArchTools schon seit längerer Zeit Reaktoren, die allermeistens auch ganz zufriedenstellend arbeiten.

Gruß
Tom Berger

------------------
Architekturwerkzeuge für AutoCAD: http://www.archtools.de

kist
Mitglied



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

Beiträge: 78
Registriert: 20.01.2005

Acad 2010
Windows XP SP3

erstellt am: 30. Nov. 2005 12:48    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 GeorgK 10 Unities + Antwort hilfreich

Hallo

Bin gerade dabei mich mit Reaktoren zu beschäftigen und zu lernen.

Jetzt bin ich auf meiner Suche nach Info über diesen etwas älteren Beitrag gestolpert.

Die letzten beiden Postings sind ja nicht gerade viel versprechend,
allerdings auch schon ein Zeit`l her.

Haben sich die Probleme in ACAD2006 verbessert?
Macht es überhaupt Sinn sich mit Reaktoren überhaupt zu beschäftigen?

------------------
schöne Grüsse

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: 30. Nov. 2005 20:16    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 GeorgK 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von kist:
Hallo

Bin gerade dabei mich mit Reaktoren zu beschäftigen und zu lernen.

Jetzt bin ich auf meiner Suche nach Info über diesen etwas älteren Beitrag gestolpert.

Die letzten beiden Postings sind ja nicht gerade viel versprechend,
allerdings auch schon ein Zeit`l her.

Haben sich die Probleme in ACAD2006 verbessert?
Macht es überhaupt Sinn sich mit Reaktoren überhaupt zu beschäftigen?



Klar macht das Sinn. Aber unter allen Umständen sauber arbeitende Programme mit Reaktoren zu programmieren, kostet schon eine ganze Menge Blut, Schweiss und Tränen. Sieh' mal in das ArchTools Forum - da wirst Du einige Berichte von Anwendern über Abstürze finden, die ich bei mir partout nicht nachvollziehen konnte. Ich hab' sogar eine Umfrage bei meinen Anwendern darüber gamcht - bei etwa 30% gab's diese Abstürze, bei den anderen nicht. Das Problem hat sich schließlich als Timing-Problem heraus gestellt, wobei es auf die Netzwerkkonfiguration der Rechner ankam ...

Inzwischen läuft ArchTools mit seinen Reaktoren sehr stabil - jedenfalls auch nicht instablier als AutoCAD ohne ArchTools :-)

Tom Berger

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