| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Plotdialogfenster über Lisp aus Skript öffnen (1541 mal gelesen)
|
kurt.trattner Mitglied Mechanical Plant Engineer
Beiträge: 46 Registriert: 28.05.2014 AutoCAD Mechanical 2012
|
erstellt am: 19. Aug. 2014 09:38 <-- editieren / zitieren --> Unities abgeben:
Hallo Leute, da sich mein Programm dank eurer Hilfe nun bereits in der aktiven Testphase befindet habe ich mich einer neuen Aufgabe zugewandt. Ich automatisiere gerade die Zeichnungsdokumentation. Dazu habe ich ein .bat geschrieben, dass nach der Reihe für jedes .dwg im aktuellen Verzeichnis ein AutoCAD Fenster öffnet und ein ein AutoCAD Skript ausführt. In diesem Skript werden 2 Lisps aufgerufen und ein PDF der aktuellen zeichnung erstellt. Da ich für das Erstellen des PDF ja die Layoutgröße benötige und diese von Zeichnung zu Zeichnung unterschiedlich sein kann muss ich vor dem Erstellen des PDFs einmal kurz das PLOT Dialogfenster öffnen und wieder schließen. Das habe ich auch schon folgendermaßen geschafft: Code: (setq app "U:\\04_KNOWLEDGE (BIBLIO)\\400_Mechanical_Plant_Engineering_PDe\\200_Engineering software\\AUTOCAD\\6_Tools\\AutoDocumentation\\Systemfiles\\ESC.vbs") (startapp "WSCRIPT.EXE" (strcat "\"" app "\"")) (initdia) (command ".plot")
Das .vbs Skript schließt das Dialogfenster wieder mit ESC. Diese Code Zeilen befinden sich in einem Lisp das über das Skript aufgerufen wird. Führe ich das Lisp alleine aus funktioniert der Ablauf ganz normal. Rufe ich das Lisp aber über das Skript auf lädt er nicht das Dialogfenster sondern führt den Befehl -PLOT aus welcher über die Befehlszeile abgearbeitet wird. Also so als wenn ich im Lisp kein (initdia) davor hätte. Ich muss aber zwingend das Dialogfenster öffnen, damit er sich für den anschließenden -PLOT Befehl die Einstellungen merkt. Ich hoffe jemand weiß wie ich das bewerkstelligen kann. Oder wie ich das Dialogfenster und das .vbs Skript direkt aus dem AutoCAD Skript öffnen kann. Schon mal jetzt vielen Dank für jede Hilfe Lg. Kurt Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 Alles
|
erstellt am: 19. Aug. 2014 10:02 <-- editieren / zitieren --> Unities abgeben: Nur für kurt.trattner
|
kurt.trattner Mitglied Mechanical Plant Engineer
Beiträge: 46 Registriert: 28.05.2014 AutoCAD Mechanical 2012
|
erstellt am: 19. Aug. 2014 10:24 <-- editieren / zitieren --> Unities abgeben:
Code: (~(command "PLOT"))
bringt leider auch keinen Erfolg. Weißt du vielleicht woher der Plotdialog seine Einstellungen nimmt? Dann könnte ich diese aus der selben Quelle entnehmen? Der Plotdialog wird nämlich von alleine richtig eingestellt wenn ich ihn öffne. Wenn ich dann anschließend den -PLOT Befehl im Skript ausführe muss ich dann nur noch alles mit einem ENTER bestätigen. Nur der Drucker und der Speicherort müssen noch angegeben werden. Lg. Kurt Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Meldin Mitglied
Beiträge: 381 Registriert: 15.07.2011 ACA2020 Windows10
|
erstellt am: 19. Aug. 2014 12:13 <-- editieren / zitieren --> Unities abgeben: Nur für kurt.trattner
Hallo das Skript arbeitet doch nur ab und bei Eingabe "-PLOT" in die Befehlszeile siehst du doch alle Einstellungen wenn du noch die darauffolgende Frage mit ja beantwortest "Detaillierte Plotkonfiguration? [Ja/Nein]" oder was benötigst du noch? ------------------ Gruß Wolfgang Alias: Rabbit007 und Wolli1 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
kurt.trattner Mitglied Mechanical Plant Engineer
Beiträge: 46 Registriert: 28.05.2014 AutoCAD Mechanical 2012
|
erstellt am: 19. Aug. 2014 12:25 <-- editieren / zitieren --> Unities abgeben:
Hallo. Wenn ich das ganze in der Befehlszeile aufrufe werden die Standard Einstellungen als Default geladen. Zum Beispiel ist als Layoutgröße "Letter" eingestellt. Da die Layoutgröße von Zeichnung zu Zeichnung unterschiedlich ist kann ich hier nicht einfach eine Größe über das Skript festlegen. Wenn ich jedoch zuerst das Plot Fenster öffne und wieder schließe, sind in der Befehlseingabe schon fast alle Werte richtig enthalten. Also muss ich das Skript nur noch immer wieder ENTER drücken lassen. Irgendwie erkennt das Plotfenster die Größe, die Orientierung, usw automatisch und schreibt sie in diese "Variablen". Inzwischen bin ich aber schon etwas weiter. Ich öffne das Plotfenster nun über das .vbs Skript. Das funktioniert auch ganz gut. Er öffnet es und schließt es 500 Millisekunden später wieder.
Aber dabei arbeitet das AutoCAD Skript im Hintergrund weiter. Jetzt suche ich gerade nach einer Lösung wie man das Skript für eine gewisse Zeit pausieren kann. Lg. Kurt Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
spider_dd Mitglied
Beiträge: 1111 Registriert: 27.11.2003 Win 10Pro Intel(R) Core(TM) i7-7700 NVIDIA Quadro P1000 ACAD, Civil-3D 2018
|
erstellt am: 19. Aug. 2014 13:06 <-- editieren / zitieren --> Unities abgeben: Nur für kurt.trattner
|
kurt.trattner Mitglied Mechanical Plant Engineer
Beiträge: 46 Registriert: 28.05.2014 AutoCAD Mechanical 2012
|
erstellt am: 19. Aug. 2014 13:19 <-- editieren / zitieren --> Unities abgeben:
PAUSE funktioniert irgendwie nicht. Code: Command: pause Unknown command "PAUSE". Press F1 for help.
Zur Info ich versuche es mit einem .scr Skript zu lösen. Und der Befehl 'DELAY Millisekunden unterbricht das ganze AutoCAD. Da kann man währenddessen nichts tun. Lg. Kurt [Diese Nachricht wurde von kurt.trattner am 19. Aug. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
kurt.trattner Mitglied Mechanical Plant Engineer
Beiträge: 46 Registriert: 28.05.2014 AutoCAD Mechanical 2012
|
erstellt am: 19. Aug. 2014 15:30 <-- editieren / zitieren --> Unities abgeben:
Ich baue das ganze Skript nun in VBS auf. Eine andere Lösung habe ich nicht gefunden. Aber hier habe ich ein wirklich sehr seltsames Problem. Ich weiß das passt jetzt nicht mehr in den Lisp Bereich aber vielleicht hat jemand eine Lösung. Wenn ich folgenden Code eingebe kommt im AutoCAD nur DG To PDF.pc3 an. fsShell.SendKeys "DWG To PDF.pc3" Egal was ich mache er verschluckt das W. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 21533 Registriert: 03.06.2002 Alles
|
erstellt am: 19. Aug. 2014 23:14 <-- editieren / zitieren --> Unities abgeben: Nur für kurt.trattner
Zitat: Original erstellt von kurt.trattner:
Code: (~(command "PLOT"))
bringt leider auch keinen Erfolg.
Das kann ich mir denken (habe zu wenig Zeit in deine eigentliche Problematik einzusteigen / das würde ich eh lieber komplett in Lisp/Vba/.NETmachen statt vbs zu beteiligen), Die öffnende Klammer leitet einen Lispausdruck ein und als nächstes wird eine Lispfunktion erwartet, diese gibst du mir ~ an, was "Bitwise not" entspricht. Mein Hinweis mit der Tilde bezog sich auf die Befehlszeileneingabe, also im Command oder im Script außerhalb einer (Klammer). Da du nicht weiter gekommen bist habe ich noch einmal nachgesehen und muß leider sagen das dir die Tilde auch bei richtiger Anwendung nicht geholfen hätte. Die Tilde erzwingt nur die Dateiwahl-Dialoge von Acadbefehlen <in Makro,Script,Befehlszeile>. Da niemandem so richtig bekannt ist wo die wundersamen Einstellungen in deinen DWGs herkommen, kann man auch nicht so richtig helfen. PS: Mein AutoCAD kann die notwendigen Einstellungen nicht selbstständig ermitteln, deines wird das auch nicht können. Daher ist es entweder purer Zufall oder Voodoo, aber wie erwähnt, leider habe ich keine Zeit dich zu unterstützen. PPS: Wenn im -Plot Dialog etwas anderes steht vor bzw. nach öffnen des Plot Dialoges, dann ist die (vorher) "aktuelle Seiteneinrichtung" ungültig. Mehr sagt das nicht aus. und ab hier wird es mir schon wieder zuviel/Zeit. Kurz: Man könnte das sicher auch professionell erledigen, aber statt "einfach nur machen" würde ich in dem Fall auch nach dem Vorher und Nachher nachfragen, nicht das man vorhandene Infos unnötig löscht, oder ermittelte Daten wieder unnötig verwirft. ------------------ CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
kurt.trattner Mitglied Mechanical Plant Engineer
Beiträge: 46 Registriert: 28.05.2014 AutoCAD Mechanical 2012
|
erstellt am: 22. Aug. 2014 12:30 <-- editieren / zitieren --> Unities abgeben:
Hallo Ich habe es inzwischen komplett in .vbs gelöst. Ich musste damit es funktioniert vor der Eingabe mit dem "DWG To PDF.pc3" einfach einen 500ms sleep einbauen. Irgendwie war sonst die Eingabe zu schnell Ich bedanke mich für die Hilfe Lg. Kurt Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |