Community
AutoCAD Produktfamilie - Deutsch
Das Forum für alle Fragen zu AutoCAD, LT, Architecture, Electrical, Map 3D, Mechanical, MEP, Plant 3D, Raster Design, Web App, sowie Autodesk Civil 3D und Advance Steel.
abbrechen
Suchergebnisse werden angezeigt für 
Anzeigen  nur  | Stattdessen suchen nach 
Meintest du: 

AutoCAD 2017 Lisp Script : AutoCAD am Ende beenden?

10 ANTWORTEN 10
GELÖST
Antworten
Nachricht 1 von 11
carstenhoppe8585
1250 Aufrufe, 10 Antworten

AutoCAD 2017 Lisp Script : AutoCAD am Ende beenden?

Hallo

 

ich möchte gerne einen automatisierten Workflow mit AutoCAD/Lisp durchführen.

 

Ziel ist es:  AutoCAD beim Aufruf eine DWG mitgeben, und es soll ein LISP SCript abgearbeitet werden. Danach soll sich AutoCAD automatisch wieder beenden.

 

(Alles ohne User, und ohne Displayausgabe)

 

Aktuell habe ich Folgendes:

 

Ich starte AutoCAD manuell, und öffne eine DWG.

Im Moment  habe ich die Lips Commands in die "ACAD2017DOC.lsp" geschrieben.

Damit wird mein "Programm" beim Öffnen der DWG schon automatisch abgearbeitet.

 

Der letzte offene Punkt ist noch: mit welchem Befehl kann ich am Ende das AutoCAD komplett schließen?

Ich habe bisher nur den _close Befehl gefunden, mitdem ich die DWG selbst schließen kann, ohne sie zu speichern:

(command "_close" "_y")

 

 

Gruß

Carsten

 

10 ANTWORTEN 10
Nachricht 2 von 11

Hallo @carstenhoppe8585,

 

ich habe hier ein Programmschnipsel gefunden: 

 

(progn
  (command "_.qsave")
  (command "_.close")
  (while (/= 0 (getvar "CMDACTIVE"))
    (command "_Y")
  )
)

 

Hilft das? 

 

Ich gehöre nicht zur Gruppe der Programmierer, aber könnte man in Lisp eventuell die Tastenkombination "ALT+F4" aufrufen? Diese schließt das aktive Programm. 

 

Lass mich wissen, ob was davon gepasst hat. 

 

Danke dir und viel Erfolg

 

LG

Sofia

Nachricht 3 von 11
Martin_Langolf
als Antwort auf: carstenhoppe8585

Hallo @carstenhoppe8585 und willkommen in unserer Community.

 

du könntest die Funktion (_.close) in deine Lisp einbauen, um AutoCAD zu beenden. Siehe auch >>diesen<< Fremdblogbeitrag in englisch der einige Beispiele zum automatisieren anbietet.

 

Als eine Alternative dazu, könnte dir evtl. >>diese<< AU Präsentation weiterhelfen die über .NET Programierung automatische Abläufe ohne AutoCAD starten zu müssen anbietet. 

 

Hoffe das diese Informationen dir weiterhelfen können.

 

Viele Grüße,

Martin



Martin Langolf
Nachricht 4 von 11
carstenhoppe8585
als Antwort auf: Martin_Langolf

Den Codeschnipsel hatte ich auch bereits gefunden.

Leider schließt (_.close) nur die Drawing selbst, aber nicht das ganze AutoCAD. Daher reicht mir das leider nicht.

 

Gruß

Carsten

Nachricht 5 von 11

Hi,

 

nur im Halbwissen eines Einäugigen ...

 

(command "QUIT")

?

 

Wiewohl in LISP immer alles ein wenig kritisch ist, was außerhalb des Document-Kontexts läuft.

 

- alfred -

------------------------------------------------------------------------------------
Alfred NESWADBA
Ingenieur Studio HOLLAUS ... www.hollaus.at ... blog.hollaus.at ... CDay 2024
------------------------------------------------------------------------------------
(not an Autodesk consultant)
Nachricht 6 von 11
cadffm
als Antwort auf: carstenhoppe8585

Hallo Carsten,

 

ich helfe gerne, möchte dafür aber weitere Informationen haben um die beste Möglichkeit auszuzeigen.

Dennoch gehe ich auch direkt auf die Frage ein: Der Befehl lautet EXIT

Dann schau nach einem Weg das ganze "silent" auszuführen Google: "run program silent"

 

 

Falls mehr Interesse an Unterstützung besteht:

 

Die Datei "ACAD2017DOC.lsp"zum Beispiel ist nicht dafür gedacht vom Benutzer angepasst zu werden, dies ist eine Systemdatei welche nicht angepasst werden sollte.

Die Benutzer-Variante davon ist eine ACADDOC.lsp welche ggf. selbst erstellt werden muß.

 

1. Was soll überhaupt gemacht werden, was wird in den Dateien gemacht?

    Bist du selbst "Herr der Dinge" was die Bearbeitungsroutine angeht oder wird nur ein Fremdprogramm gestartet?

 

2. Warum soll dies "von außerhalb Acad" angestoßen werden?

    Wäre es innerhalb von Acad gestartet "per Knopfdruck" auch eine Option? falls Nein, warum nicht?

 

 

Je nach Auskunft würde man auch die Befehlszeilenversion von AutoCAD nutzen können, diese ist jedoch

eingeschränkt und daher meine Frage nach dem "was passiert bei dem Vorgang".

- Sebastian -
Nachricht 7 von 11
cadffm
als Antwort auf: cadffm

Ergänzend zu deiner Acad(2017)doc.lsp Methode:

Man kann AutoCAD auch dazu veranlassen beim Start eine *.scr Datei auszuführen,

darin könntest du dann die Anweisung schreiben:

Lade MeineDatei.lsp

Führe XY aus.

 

So wäre man ganz frei von dieser *doc.lsp Methode.

 

http://help.autodesk.com/view/ACD/2017/DEU/?guid=GUID-8E54B6EC-5B52-4F62-B7FC-0D4E1EDF093A

 

https://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=6&ved=0ahUKEwjK7PnEpNnWAhXRhrQKHWsVDsgQ...

 

 

 

- Sebastian -
Nachricht 8 von 11
carstenhoppe8585
als Antwort auf: cadffm

Hallo zusammen

 

danke erstmal für die verschiedenen Tipps.

Ich habe die ACAD2017DOC.lsp erstmal genommen, um zu testen. Ich bin selbst Admin.

Der gesamte Ablauf soll später nicht von einem User ausgeführt werden, sondern auf einem Server in einem Workflow ablaufen.

 

Das Thema ist insgesamt etwas ausufernd.

 

Es gibt 2 Blöcke:

Zum einen möchte ich aus einer XREF-Struktur die Postionsinformationen der XREFs auslesen (EntityID, X Y Z, ScaleFactor X Y Z , Rotation)

 

Zum anderen möchte ich ein JT von dem DWG erzeugen.

Da AutoCAD das selbst leider nicht kann (nur Inventor kann das), und wir aber ein Zusatzprodukt von Siemens PLM haben, genannt FactoryCAD, welches wiederum eine Funktion beinhaltet, um JT's zu erstellen, habe ich mir ein LISP geschrieben, womit genau das JT erstellt werden kann, und hinterher auch noch die dem DWG entsprechende UNIT setzt.

 

(es gibt zwar in einem Inventor Server Verzeichnis eine jttk71.dll, aber ich wüsste nicht, wie ich damit eine JT-Erstellungsfunktion erstellen kann. Das geht bestimmt in die .NET Programmierung, die ich nicht kann)

 

Gestartet im AutoCAD funktioniert das. Wir müssen das später aber automatisiert ablaufen lassen.

 

Mit der Info von Martin habe ich nun die

AcCoreConsole.exe gefunden.

 

"C:\Program Files\Autodesk\AutoCAD 2017\accoreconsole.exe" /i "C:\Temp\test.dwg" /s "C:\temp\test.scr"

Das startet "AutoCAD" ohne Grafikmodus".

Eigentlich genau das, was ich wollte, richtig für einen Silent-Mode auf einem Server.

 

ABER: wenn ich AutoCAD nicht über das Original-Start-Icon aufrufe, lädt er nicht die  (ich nenne es) Zusatzbibliotheken von FactoryCAD (dem Fremd-AddOn von SiemensPLM)

Ich habe keine Idee, was AutoCAD da im Hintergrund macht. Es ist ein Unteschied, ob ACAD.exe aus dem Start-Menu aufgerufen wird, oder ob ich den exakt gleichen Aufruf aus dem Start-Icon rauskopiere, und im CMD aufrufe.

 

Eigentlich ware das aber ein eigenes Thema , oder?

Denn mit dem AcCoreConsole.exe hätte ich eine Möglichkeit, das .scr und eine DWG auszuführen, und hinterher beendet sich der Befehl automatisch.

 

 

Soll ich den Thread hier jetzt schließen? und einen neuen eröffnen mit entsprechender Überschrift, dass Fremd-Bibliotheken nicht geladen werden, wenn nicht über das Original-Start-Icon gestartet wird?

 

Gruß

Carsten

 

Nachricht 9 von 11
Martin_Langolf
als Antwort auf: carstenhoppe8585

Hallo @carstenhoppe8585

 

es freut mich sehr, dass die accoreconsole genau das tut was du dir vorgestellt hast.

 

Für das weitere Thema mit dem Laden der Siemens Applikation, solltest du am besten einen neuen Beitrag öffnen und es genauer dokumentieren, damit wir es uns separat ansehen können.

 

Sobald du es getan hast, markiere bitte diesen Beitrag als gelöst, falls dir die Rückmeldung geholfen hat, damit auch andere Benutzer davon profitieren können.

 

Viele Grüße,

Martin 



Martin Langolf
Nachricht 10 von 11
cadffm
als Antwort auf: carstenhoppe8585

Danke für die zusätzlichen Informationen.

 

ACAD vs ACCORECONSOLE

In deinem Fall würde ich also zunächst wie geplant mit der ACAD.exe arbeiten, die Console lassen wir mal links liegen.

(ACC: ob die Aufgabe mit den Fremd-Funktionen und eigene Lisp-Sachen in der Console funktionieren KANN muß man selbst testen und Hilfe dazu wäre ein eigener Thread)

 

Auch die (meine) Frage ob es nicht sinnvoll wäre AutoCAD nur einmal zu starten und dann "alles" abzuarbeiten lassen wir mal außer acht,

ich gehe aktuell davon aus das später dieser Vorgang auf viele Dateien "in einem Rutsch" erfolgen soll?

Also sind wir genau bei dem was du angesteuert hast, ungeachtet ob dieser Weg zu optimieren ist oder nicht.

 

Wenn die die Antwort EXIT also die Lösung darstellt auf die Eingangsfrage, dann kannst du den Thread gerne als gelöst markieren.

 

PS: Es gibt einfach zuviel Wissen was man zu dem Thema vermitteln könnte, aber dafür benötigt man eben auch die Hintergrundinformationen.

Also erst einmal eine recht simple Umsetzung, die sollte dir nun gelingen.

- Sebastian -
Nachricht 11 von 11
carstenhoppe8585
als Antwort auf: cadffm

Danke an alle.

 

@cadffm : EXIT war irgendwie nicht erfolgreich.

                     Aber ich habe das Schließen von AutoCAD mit (command "quit" "_y") erreicht.

 

Um noch auf deine Frage einzugehen, ob einmal Starten, und alles abarbeiten besser wäre: das geht nicht. Die Anwender arbeiten an ihren DWG's. Und immer, wenn der Anwender eine Zeichnung abspeichert, oder freigibt (das ist noch nicht entschieden), muss der Vorgang gestartet werden.

Somit gibt es keine "Sammelaufträge".

 

Ich werde hiermit diesen Thread schließen , vielen Dank an alle.

 

Gruß

Carsten

 

Sie finden nicht, was Sie suchen? Fragen Sie die Community oder teilen Sie Ihr Wissen mit anderen.

In Foren veröffentlichen  

Autodesk Design & Make Report