Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Plotdialogfenster über Lisp aus Skript öffnen

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:  Plotdialogfenster über Lisp aus Skript öffnen (1541 mal gelesen)
kurt.trattner
Mitglied
Mechanical Plant Engineer


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

Beiträge: 46
Registriert: 28.05.2014

AutoCAD Mechanical 2012

erstellt am: 19. Aug. 2014 09:38    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 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
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 19. Aug. 2014 10:02    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 kurt.trattner 10 Unities + Antwort hilfreich

Kann gerade schlecht selbst nachsehen, aber schau doch mal für was eine Tilde~ im Script gut ist!

------------------
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


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

Beiträge: 46
Registriert: 28.05.2014

AutoCAD Mechanical 2012

erstellt am: 19. Aug. 2014 10:24    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

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



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

Beiträge: 381
Registriert: 15.07.2011

ACA2020
Windows10

erstellt am: 19. Aug. 2014 12:13    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 kurt.trattner 10 Unities + Antwort hilfreich

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


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

Beiträge: 46
Registriert: 28.05.2014

AutoCAD Mechanical 2012

erstellt am: 19. Aug. 2014 12:25    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.
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



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

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 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 kurt.trattner 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von kurt.trattner:

Jetzt suche ich gerade nach einer Lösung wie man das Skript für eine gewisse Zeit pausieren kann.

PAUSE millisekunden

HTH
Gruß
Thomas

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

kurt.trattner
Mitglied
Mechanical Plant Engineer


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

Beiträge: 46
Registriert: 28.05.2014

AutoCAD Mechanical 2012

erstellt am: 19. Aug. 2014 13:19    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

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


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

Beiträge: 46
Registriert: 28.05.2014

AutoCAD Mechanical 2012

erstellt am: 19. Aug. 2014 15: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

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
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 19. Aug. 2014 23:14    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 kurt.trattner 10 Unities + Antwort hilfreich

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


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

Beiträge: 46
Registriert: 28.05.2014

AutoCAD Mechanical 2012

erstellt am: 22. Aug. 2014 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

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

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