| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY WIRD VON NVIDIA ZUM HÄNDLER DES JAHRES GEWÄHLT, eine Pressemitteilung
|
Autor
|
Thema: Save-Methode und Reactor (1544 mal gelesen)
|
Andreas Kraus Mitglied Elektrotechniker
Beiträge: 1455 Registriert: 11.01.2006 WIN 10 ACAD 2022 BricsCAD V23
|
erstellt am: 01. Okt. 2010 16:37 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich hab hier noch was fürs Wochenende: Wenn ich (dos_saveall) aus der DOS-Lib verwende wird dieser Reactor in jedem Plan ausgelöst. (vlr-editor-reactor nil '((:vlr-savecomplete . k_work_save)) ) Das soll auch so sein . Wen ich das hier mache: (vlax-for document (vla-get-documents (vlax-get-acad-object)) (print (vla-get-name document)) (vlax-invoke-method document "save") ) interessiert das den Reactor gar nicht. SCHADE aber verständlich !!! Wie kann ich nur mit Lisp (ohne DOS-Lib) jeden Plan speichern UND den Reactor starten ?
------------------ Gruß Andreas http://kraus-cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas Kraus Mitglied Elektrotechniker
Beiträge: 1455 Registriert: 11.01.2006 WIN 10 ACAD 2022 BricsCAD V23
|
erstellt am: 06. Jul. 2011 15:43 <-- editieren / zitieren --> Unities abgeben:
Ich hol den Beitrag mal wieder vor weil ich (endlich ) mal wieder dazu komme daran zu arbeiten. Gibts vielleicht eine Möglichkeit alle geöffneten Dokument "durchzublättern" ? Also sowas wie STRG+TAB ? Kann man sowas mit nem Schript machen ? Wenn ja, wie ist das Tastaturkürzel ? \t geht nicht Oder geht das ganz anders ? Oder verlang ich zuviel ? ------------------ Geht nicht, gibts nicht Gruß Andreas http://kraus-cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dorfy Mitglied Double-Dipl.-Ing. Bleistiftanspitzer
Beiträge: 900 Registriert: 21.07.2006 AutoCad2007, ProE, HiCad
|
erstellt am: 06. Jul. 2011 15:56 <-- editieren / zitieren --> Unities abgeben: Nur für Andreas Kraus
??? was willst du denn jetzt machen? ;; for each drawing (vlax-for dwg (vla-get-documents (vlax-get-acad-object))... ;mach was so in der Art? ------------------ Mfg Heiko Elefantenjagd in Afrika "... LISP-Programmierer bauen einen Irrgarten aus Klammern und hoffen, dass sich der Elefant darin verirrt..." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas Kraus Mitglied Elektrotechniker
Beiträge: 1455 Registriert: 11.01.2006 WIN 10 ACAD 2022 BricsCAD V23
|
erstellt am: 06. Jul. 2011 16:18 <-- editieren / zitieren --> Unities abgeben:
Ja, so in der Art Im Moment möchte ich jede Zeichnung speichern. ABER !!! Bei mir hängt am Speichern noch ein Reactor der die Datenerfassung startet. Der soll natürlich auch laufen. Geplant ist auch Zoom und Pan der geöffneten Zeichnungen zu synchronisieren. Das wäre praktisch bei Bearbeitung von Steigeschächten. Wenn das funktioniert fällt mir sicher noch mehr ein . ------------------ Geht nicht, gibts nicht Gruß Andreas http://kraus-cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
Beiträge: 2154 Registriert: 02.05.2005 CAD: AutoCAD 2.6 bis 2014 ADT 2005 - 2014 Arcibem System: Windows 2000, XP, NO VISTA Internet-Startseite: http://www.archi.de
|
erstellt am: 06. Jul. 2011 16:39 <-- editieren / zitieren --> Unities abgeben: Nur für Andreas Kraus
Also IMHO wird das - mit Lisp - nicht funktionieren. Lisp läuft innerhalb der Zeichnungsebene, und nicht in der Programmebene. Du kannst zwar mit vla-activate noch eine andere Zeichnung in den Fokus setzen, dann läuft aber das Lisp aus der Zeichnung, in der es gestartet wurde nicht mehr weiter. Grüsse, Henning ------------------ Henning Jesse VoxelManufaktur Computer-Dienstleistungen für Architekten und Ingenieure http://www.voxelman.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas Kraus Mitglied Elektrotechniker
Beiträge: 1455 Registriert: 11.01.2006 WIN 10 ACAD 2022 BricsCAD V23
|
erstellt am: 06. Jul. 2011 16:52 <-- editieren / zitieren --> Unities abgeben:
Ja, die Antwort hatte ich bei einer ähnlichen Frage schonmal bekommen. Das wäre mir ja auch Wurscht weil ja dann sowieso die "nächste" Zeichnung drann wäre. Aber ich hab so das Gefühl daß das Lisp dass nicht weiterlaufen kann die weitere Ausführung blockiert. Deshalb kam ich auf die Idee das in ein Script zu packen. Vielleicht geht ja damit was ? Scripte können ja Dateien nacheinander bearbeiten. Geht da auch was mit bereits geöffneten ? Wenn nicht überleg ich weiter. (Ich bin bekannt für verrückte Ideen) ------------------ Geht nicht, gibts nicht Gruß Andreas http://kraus-cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADwiesel Moderator CAD4FM UG
Beiträge: 1989 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 07. Jul. 2011 07:08 <-- editieren / zitieren --> Unities abgeben: Nur für Andreas Kraus
Wie du schon gesagt bekommen hast: Es geht nicht, das ein Lisp Zeichnungsübergreifend weiterläuft. Ich hab's zwar noch nie getestet, aber vielleicht kannst du noch einen Befehl in einer anderen Zeichnung ausführen - das wäre dann eine in dieser Zeichnung geladene Funktion. So könntest du evtl. erst alle anderen geöffneten Zeichnungen nacheinander schließen und am Ende dann die, aus der gestartet wurde. Also keine Ahnung, ob's wirklich geht... ok, geht so nicht, nach Aktivieren der Zeichnung geht nix mehr. was du machen könntest wäre: do speicherst und schließt alle offenen zeichnungen - der geht per 'vl. dann öffnest du die Zeichnungen per odbx im Hintergrund und führst das aus, was dein Reaktor auch machen soll. Ist ja alles ohne command. Außerdem musst du alle (vla-get-activedocument(vlax-get-acad-object)) durch den odbx ermittelten Objektnamen ersetzen. ------------------ Gruß CADwiesel Besucht uns im CHAT
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas Kraus Mitglied Elektrotechniker
Beiträge: 1455 Registriert: 11.01.2006 WIN 10 ACAD 2022 BricsCAD V23
|
erstellt am: 07. Jul. 2011 09:32 <-- editieren / zitieren --> Unities abgeben:
Scripts laufen so wie es aussieht auch nur pro Datei und nicht übergreifend . Was läuft denn übergreifend ? Muss ich da auf C oder C# ausweichen oder gibts da sonst noch was ? Am liebsten etwas das nicht Versionsabhängig ist. ------------------ Geht nicht, gibts nicht Gruß Andreas http://kraus-cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
gerd3012 Mitglied Planung Haustechnik
Beiträge: 111 Registriert: 24.07.2002
|
erstellt am: 07. Jul. 2011 09:46 <-- editieren / zitieren --> Unities abgeben: Nur für Andreas Kraus
|
Andreas Kraus Mitglied Elektrotechniker
Beiträge: 1455 Registriert: 11.01.2006 WIN 10 ACAD 2022 BricsCAD V23
|
erstellt am: 07. Jul. 2011 10:04 <-- editieren / zitieren --> Unities abgeben:
Hab ich schon versucht. Aus Lisp : Zeichnung wird aktiviert. Lisp stoppt und macht erst weiter wenn die "Startzeichnung" wieder aktiv ist. Aus Script : Zeichnung wird aktiviert. Script stoppt und macht erst weiter wenn die "Startzeichnung" wieder aktiv ist. Ich kann zwar in der aktivierten Zeichnung arbeiten aber eben nichts automatisiertes was ich ins Programm schreib (egal ob Lisp oder Script) Ich hab ja auch schon versucht über einen Reactor der bei Dateiaktivierung "anspringt" zu arbeiten aber weil in der "Startzeichnung" noch das Lisp läuft gehts nicht. Vielleicht versuch ich mal die Kombination Script und Reactor (ich bin ja für alle Schandtaten zu haben) ------------------ Geht nicht, gibts nicht Gruß Andreas http://kraus-cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |