| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Reaktor für Publizieren (1668 mal gelesen)
|
Dundee Mitglied
Beiträge: 69 Registriert: 13.06.2005 Win XP SP2 ADT 2009 SP3 dt. ET 2009 NVIDIA Quadro FX 1500
|
erstellt am: 13. Dez. 2010 15:21 <-- editieren / zitieren --> Unities abgeben:
Hi, bin gerade dabei das Link4Plotstyles-Programm nach- bzw. neu zuprogrammieren. Nur beim Publizieren komme ich irgendwie nicht weiter. Welchen Befehl muß ich mit einem Reaktor abfangen, um vor dem eigentlichen Publiziervorgang die Plotstyles zu kopieren? Der Befehl PUBLIZIEREN reicht da leider nicht, da AutoCAD nach dem Publizier-Auswahlfenster einen anderen Befehl startet, sieht aus wie der Plotfortschritt es steht nur Publiziern oben drüber. Über jeden Hinweis wäre ich sehr dankbar. Ciao Norbert Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 .
|
erstellt am: 13. Dez. 2010 15:47 <-- editieren / zitieren --> Unities abgeben: Nur für Dundee
|
Dundee Mitglied
Beiträge: 69 Registriert: 13.06.2005 Win XP SP2 ADT 2009 SP3 dt. ET 2009 NVIDIA Quadro FX 1500
|
erstellt am: 13. Dez. 2010 16:50 <-- editieren / zitieren --> Unities abgeben:
Hi, Danke für Deinen Hinweis. Der Befehl PUBLISH wird auch brav vor dem Öffnen des Auswahlfensters ausgegeben, nur vor dem Publizier-Auftragsfortschritt wird nichts ausgegeben. Das Löschen der Plotstyles wird auch direkt nach Schließen ds Auswahlfensters ausgeführt. Daher meine Vermutung, daß für den Auftragsfortschritt eine anderer Befehl zuständig ist. Ciao Norbert Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 .
|
erstellt am: 13. Dez. 2010 19:27 <-- editieren / zitieren --> Unities abgeben: Nur für Dundee
|
Dundee Mitglied
Beiträge: 69 Registriert: 13.06.2005 Win XP SP2 ADT 2009 SP3 dt. ET 2009 NVIDIA Quadro FX 1500
|
erstellt am: 14. Dez. 2010 09:07 <-- editieren / zitieren --> Unities abgeben:
Moinsen, ok, wäre wahrscheinlich auch zu einfach Gibt es vielleicht bzw. kennt jemand einen anderen Weg? Meine Notlösung würde über generelles Kopieren beim Öffnen einer DWG sein. Danke für Deine Hilfe. Ciao Norbert Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADchup Ehrenmitglied V.I.P. h.c.
Beiträge: 3329 Registriert: 14.03.2001 Sicher ist, dass nichts sicher ist. Selbst das nicht. Joachim Ringelnatz
|
erstellt am: 14. Dez. 2010 10:53 <-- editieren / zitieren --> Unities abgeben: Nur für Dundee
|
Dundee Mitglied
Beiträge: 69 Registriert: 13.06.2005 Win XP SP2 ADT 2009 SP3 dt. ET 2009 NVIDIA Quadro FX 1500
|
erstellt am: 14. Dez. 2010 13:28 <-- editieren / zitieren --> Unities abgeben:
Hi, zum Hintergrund: Wir benutzten das Programm "LinkPlotstyles4", um projektspezifische ctb-/ stb-Dateien verwenden zu können. Das Programm kopiert beim Befehlsaufruf "PLOTTEN" aus einem festen Projekt-Verzeichnis die ctb's/ stb's in das AutoCAD Plotstyles-Verzeichnis. Beim Beenden von "PLOTTEN" werden die vorher kopierten gelöscht. Super Programm ! Danke Markus! Diese Funktionalität benötigen wir auch beim Befehlsaufruf "LAYER" und "PUBLIZIEREN". Bei "LAYER", um bei Verwendung von stb's die Plotstile zuweisen zu können. Der Command-Reaktor für Layer läuft einwandfrei. Nach Beendigung des Layer-Managers werden auch alle ctb's/ stb's sauber gelöscht. (Ich weiß die Layerpalette arbeitet anders. ) Fürs "PLOTTEN" fuktioniert es auch einwandfrei. Für's Publizieren soll es ebenso laufen. Der springende Punkt ist hier, wann lösche ich die ctb's/ stb's wieder raus? Wenn der Publizieren-Befehl beendet ist läuft der Auftragfortschritt noch und die ctb's werden noch gebraucht. Basis für meinen (ersten) Reaktorversuch ist das Beispiel aus dem Kochbuch.
Code:
; Funktion zum Setzen des Reaktors (defun add-cmd-reactors( / ) (vl-load-com) (if(not *cmd-reactor-added*) (progn (vlr-command-reactor nil '( (:vlr-commandWillStart . cmd-start-callback)) ) (vlr-command-reactor nil '( (:vlr-commandEnded . cmd-end-callback)) ) (setq *cmd-reactor-added* 'T) ) ; progn ) ; if ) (defun cmd-start-callback (reactor argslist / befehls_liste) (if befehls_liste (progn (setq befehls_liste (reverse (cons argslist (reverse befehls_liste)))) ; **** (schreib_log befehls_liste) ) ; progn (progn (setq befehls_liste (list argslist)) ; **** (schreib_log befehls_liste) ) ; progn ) ; if (cond ( (=(car argslist) "PLOT") (layer-start-callback) ) ( (=(car argslist) "LAYER") (layer-start-callback) ) ( (=(car argslist) "PUBLISH") (layer-start-callback) ) ) )
(defun cmd-end-callback(reactor argslist / ) (cond ( (=(car argslist) "PLOT") (layer-end-callback) ) ( (=(car argslist) "LAYER") (layer-end-callback) ) ( (=(car argslist) "PUBLISH") (layer-end-callback) ) ) )
Ciao Norbert Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADchup Ehrenmitglied V.I.P. h.c.
Beiträge: 3329 Registriert: 14.03.2001 Sicher ist, dass nichts sicher ist. Selbst das nicht. Joachim Ringelnatz
|
erstellt am: 14. Dez. 2010 15:40 <-- editieren / zitieren --> Unities abgeben: Nur für Dundee
Hi, Zitat: Original erstellt von Dundee: ...Bei "LAYER", um bei Verwendung von stb's die Plotstile zuweisen zu können...
Kann sein, dass ich das falsch verstehe, aber wenn ihr die Plostile in Layern verwendet, braucht ihr sie doch nicht nur während des LAYER-Befehls, sondern auch zur gesamten Laufzeit der Zeichnung, weil die Layereigenschaften eigentlich irgendwo immer angezeigt werden, oder nicht? In diesem Fall wäre dein Programm vielleicht sogar performanter, wenn du die Plotstile gleich beim Start der DWG kopieren lässt und am Ende wieder entfernst. Damit wärst du dann auch die Publish-Sorgen los. Ich habe das aktuelle Verhalten des LinkPlotStyles-Tools beim Publizieren nicht getestet, im damaligen 2002-2006 lief es IMHO problemlos, soll heißen die Plotstiltabellen wurden erst nach Ende des Publizierens wieder entfernt. Wenn das in späteren Versionen nicht mehr so ist, bleibt eigentlich nur die kopierten Plotstiltabellen in einer Liste zu halten und beim Beenden der DWG wieder zu entfernen. Stichwort :vlr-beginClose Code:
(vlr-dwg-reactor nil '((:vlr-beginClose . My-close-callback)) )
Gruß CADchup ------------------ CADmaro.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dundee Mitglied
Beiträge: 69 Registriert: 13.06.2005 Win XP SP2 ADT 2009 SP3 dt. ET 2009 NVIDIA Quadro FX 1500
|
erstellt am: 14. Dez. 2010 16:50 <-- editieren / zitieren --> Unities abgeben:
|
Wolfgang S Mitglied CADaver
Beiträge: 270 Registriert: 06.03.2006 AC 2009, C3D 2009, AC 2010, C3D 2010, AC 2011, C3D 2011, RVT 2010, RVT 2011, ASD 2011 und alles darunter bis R14 + Win XP, Win XP64, Win 7/64
|
erstellt am: 18. Jan. 2011 07:55 <-- editieren / zitieren --> Unities abgeben: Nur für Dundee
Servus! Hab solche Software auch schon programmiert, mein Ansatz war ein wenig anders: + in der DWG wird gespeichert wo die Plotstile liegen + beim "Verlinken" werden nicht alle Dateien hin- und herkopiert sondern nur ein Link zum Ordner erstellt. Das spart Zeit und erhöht die Performance + Beim Öffnen einer Datei werden die Plotstile verlinkt, ebenso beim Wechsel zwischen geöffneten Dokumenten - etransmit kann Elemente in verlinkten Ordnern nicht finden, nur über die DIREKT in den Supportpfaden angegebenen Ordnern, da ist Deine Version definitiv besser - publish "Plotten oder Publizieren im Hintergrund" öffnet eine neue acad.exe - auf die hast Du mit den üblichen Tools keinen Zugriff. Beim Publizieren würden dann also die Plotstile verwendet werden die in der gerade aktuell geöffneten Datei verlinkt sind. + wenn nicht im Hintergrund geplottet/publiziert wird dann klappt es auch mit dem Verlinken. vlg Wolfgang S
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dundee Mitglied
Beiträge: 69 Registriert: 13.06.2005 Win XP SP2 ADT 2009 SP3 dt. ET 2009 NVIDIA Quadro FX 1500
|
erstellt am: 18. Jan. 2011 10:02 <-- editieren / zitieren --> Unities abgeben:
Hallo Wolfgang, vielen Dank für Deine sehr interessanten Hintergründe zu dem Thema. Für solche Zusammenhänge muß man wohl "Vollzeit-Programmierer" sein? Dein Ansatz mit dem "verlinken" hört sich für einige Bereiche echt gut an. Mir ist nur nicht ganz klar was Du mit "verlinken" genau meinst. Wenn Du dazu noch ein paar Infos hättest die Du los werden möchtest, ich würd' sie nehmen. Ciao Norbert Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 Alles
|
erstellt am: 18. Jan. 2011 10:21 <-- editieren / zitieren --> Unities abgeben: Nur für Dundee
|
Wolfgang S Mitglied CADaver
Beiträge: 270 Registriert: 06.03.2006 AC 2009, C3D 2009, AC 2010, C3D 2010, AC 2011, C3D 2011, RVT 2010, RVT 2011, ASD 2011 und alles darunter bis R14 + Win XP, Win XP64, Win 7/64
|
erstellt am: 18. Jan. 2011 10:46 <-- editieren / zitieren --> Unities abgeben: Nur für Dundee
Servus! Zitat: Für solche Zusammenhänge muß man wohl "Vollzeit-Programmierer" sein?
nöö, 15-20 Stunden täglich reichen völlig ... Nee, tatsächlich bin ich CAD-Admin. Zitat: Dein Ansatz mit dem "verlinken" hört sich für einige Bereiche echt gut an. Mir ist nur nicht ganz klar was Du mit "verlinken" genau meinst.
AutoCAD (und auch Civil3D und Architecture, bin nicht sicher bei den Maschinenbauprogrammen) durchsuchen bei einigen Ordnern auch enthaltene Links zu anderen Dateien und Verzeichnissen. beispielsweise klappt das für PC3, CTB, STB Dateien, auch bei PMPs klappt es. für XRefs geht´s z.B. nicht. Ich hänge als Screenshot mal ein Beispiel dran was alles funktioniert, dazu gibt´s hier im Forum aber auch schon Threads - mir fehlen nur die Stichwörter. mfg Wolfgang
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dundee Mitglied
Beiträge: 69 Registriert: 13.06.2005 Win XP SP2 ADT 2009 SP3 dt. ET 2009 NVIDIA Quadro FX 1500
|
erstellt am: 18. Jan. 2011 13:28 <-- editieren / zitieren --> Unities abgeben:
Hallo Wolfgang, Danke für Deinen Screenshot und Deine Infos. Diese Funktion/ Möglichkeit von AutoCAD kannte ich bisher noch überhaupt nicht. Werde die Möglichkeiten für uns mal durchgehen. Vielen Dank nochmal. Ciao Norbert Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |