|  |  | 
|  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | 
|  |  | 
|  | Von Digital Twins bis Hochleistungs-Computing: PNY präsentiert seine Zukunftstechnologien für die Industrie von morgen, eine Pressemitteilung 
 | 
| Autor | Thema:  Was sind Reaktoren? (2584 mal gelesen) | 
 | GeorgK Mitglied
 
 
    
 
      Beiträge: 619Registriert: 06.06.2001
 Inventor 2017Siemens NX 8.5 - 12.0
 Autocad Mechanical 2017
 Catia V5R19
 3,4 GHz; 64 GB RAM
 Windows 10
 openSUSE Leap 42.3
 Visual Studio 2010 - 2017
 Windows 2012 R2
 Vault 2017
 |    erstellt am: 27. Mai. 2004 09:49  <-- editieren / zitieren -->    Unities abgeben:            | 
                        | Brischke Moderator
 CAD on demand GmbH
 
         
 
  
 
      Beiträge: 4201Registriert: 17.05.2001
 AutoCAD 20XX, defun-tools (d-tools.eu) |    erstellt am: 27. Mai. 2004 11:26  <-- editieren / zitieren -->    Unities abgeben:           Nur für GeorgK   
  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
 
 
    
 
      Beiträge: 619Registriert: 06.06.2001
 |    erstellt am: 27. Mai. 2004 11:37  <-- editieren / zitieren -->    Unities abgeben:            
  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
 
         
 
  
 
      Beiträge: 4201Registriert: 17.05.2001
 AutoCAD 20XX, defun-tools (d-tools.eu) |    erstellt am: 27. Mai. 2004 11:45  <-- editieren / zitieren -->    Unities abgeben:           Nur für GeorgK   
  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
 
 
    
 
      Beiträge: 619Registriert: 06.06.2001
 |    erstellt am: 27. Mai. 2004 11:53  <-- editieren / zitieren -->    Unities abgeben:            
  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
 
  
 
      Beiträge: 12Registriert: 22.09.2003
 |    erstellt am: 27. Mai. 2004 12:17  <-- editieren / zitieren -->    Unities abgeben:           Nur für GeorgK   | 
                        | Brischke Moderator
 CAD on demand GmbH
 
         
 
  
 
      Beiträge: 4201Registriert: 17.05.2001
 AutoCAD 20XX, defun-tools (d-tools.eu) |    erstellt am: 27. Mai. 2004 12:30  <-- editieren / zitieren -->    Unities abgeben:           Nur für GeorgK   
  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
 
 
    
 
      Beiträge: 619Registriert: 06.06.2001
 |    erstellt am: 27. Mai. 2004 12:45  <-- editieren / zitieren -->    Unities abgeben:            | 
                        | mapcar Mitglied
 CADmin
 
 
  
 
      Beiträge: 1250Registriert: 20.05.2002
 Time flies like an arrow, fruit flies like a banana (Groucho Marx) |    erstellt am: 29. Mai. 2004 08:51  <-- editieren / zitieren -->    Unities abgeben:           Nur für GeorgK   
  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 / zitieren -->     
 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
 
 
  
 
      Beiträge: 78Registriert: 20.01.2005
 Acad 2010Windows XP SP3
 |    erstellt am: 30. Nov. 2005 12:48  <-- editieren / zitieren -->    Unities abgeben:           Nur für GeorgK   
  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
 
 
     
 
      Beiträge: 1059Registriert: 09.10.2004
 Entwickler für AutoCAD, BricsCAD u.a., alle Systeme |    erstellt am: 30. Nov. 2005 20:16  <-- editieren / zitieren -->    Unities abgeben:           Nur für GeorgK   
 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 |