In diesem Blogbeitrag werde ich das AutoCAD-Anwendungsobjekt und einige seiner wichtigen Methoden und Eigenschaften diskutieren. Ich werde zeigen, wie das AutoCAD-Anwendungsobjekt in Pyautocad implementiert wird.
Beginnend mit diesem Codierungsbeispiel importiere ich relevante Klassen und Methoden aus Pyautocad. Ich erstelle ein neues Modell im folgenden Code.
from pyautocad import Autocad, APoint, aDouble
acad = Autocad(create_if_not_exists=True)
Abrufen des AutoCAD-Anwendungsobjekts in Python
Damit ich Aktionen für das AutoCAD-Anwendungsobjekt ausführen kann, muss ich dieses Objekt abrufen. In pyautocad verwende ich dafür „acad.app“.
Wenn ich anstelle von Pyautocad Kommunikationsmodule verwenden möchte, kann ich wie unten codiert vorgehen. In diesem Fall verwende ich die Python-Module win32com und pythoncom.
from win32com.client import *
import pythoncom
acad1 = win32com.client.Dispatch("AutoCAD.Application")
In diesem Fall repräsentiert acad1 das Anwendungsobjekt.
Eigenschaften des AutoCAD-Anwendungsobjekts
Viele Anwendungsobjekteigenschaften verbessern die Automatisierung von AutoCAD-Zeichnungen. Ich werde einige der wichtigen Eigenschaften besprechen und sie nacheinander durchgehen.
Um verschiedene Arten von Informationen in Bezug auf das AutoCAD-Anwendungsobjekt zu erhalten, wie z. B. den Namen der Anwendung, den vollständigen Namen der Anwendung oder z. B. den Dokumentnamen, kann ich den Code verwenden.
print(acad.app.Application.Name)
print(acad.app.Caption)
print(acad.app.ActiveDocument.Name)
print(acad.app.Path)
print(acad.app.FullName)
O/p:
AutoCAD
Autodesk AutoCAD 2018 - [Drawing2.dwg]
Drawing2.dwg
C:\Program Files\Autodesk\AutoCAD 2018
C:\Program Files\Autodesk\AutoCAD 2018\acad.exe
Angenommen, ich möchte alle derzeit in der AutoCAD-Anwendung geöffneten Dokumente überprüfen. Dazu kann ich zB die Documents-Eigenschaft verwenden und über diese Eigenschaft iterieren.
Ich werde dies anhand eines einfachen Beispiels in AutoCAD demonstrieren. In seinem Beispiel habe ich zwei Zeichnungen geöffnet, Drawing1 und Drawing2. Der folgende Screenshot zeigt dies.

Aktuell ist die Zeichnung „Drawing2.dwg“ ausgewählt. Aus meiner vorherigen Ausgabe und dem obigen Bild geht hervor, dass diese Zeichnung als ActiveDocuments abgerufen wird. Aber lassen Sie mich prüfen, ob es auch Drawing1.dwg zurückgibt. Dies sollte der Fall sein, da diese Datei ebenfalls geöffnet ist.
print(acad.app.Documents)
for i in acad.app.Documents:
print(i.Name)
O/p:
Drawing1.dwg
Drawing2.dwg
MenuGroups- und MenuBar-Attribute
Jetzt erhalte ich die aktuell verwendeten Menüleisten- und Menügruppenobjekte. Ich mache das im folgenden Code:
print(acad.app.MenuBar)
print(acad.app.MenuGroups)
for i in acad.app.MenuGroups:
print(i.Name)
O/p:
<comtypes.client.lazybind.Dispatch object at 0x0000021BBCA23EB0>
ACAD
CUSTOM
MODELDOC
EXPRESS
AUTODESKSEEK
Hier kann ich sehen, dass der erste Code von MenuBar ein Dispatch-Objekt zurückgegeben hat, das eine aktive Menüleiste aus der AutoCAD-Zeichnung ist. Ich werde das MenuBar-Objekt in einem anderen Artikel besprechen.
WindowState-Eigenschaft des AutoCAD-Anwendungsobjekts
Um den Status der AutoCAD-Anwendung oder des AutoCAD-Dokumentfensters anzupassen oder anzuzeigen, kann ich das WindowState-Attribut verwenden. WindowState ist mit ganzzahligen Werten codiert. Kurz gesagt repräsentieren die ganzen Zahlen Fensterzustände zB auf folgende Weise:
- acMin(1): Das Fenster wird minimiert.
- acMax(2): Das Fenster wird maximiert.
- acNorm(3): Das Fenster ist normal (nicht minimiert oder maximiert).
print(acad.app.WindowState)
O/p:
1
AutoCAD-Anwendungsobjektmethoden
Jetzt werde ich einige wichtige Pyautocad-Methoden für den Umgang mit AutoCAD-Anwendungen diskutieren. Eigentlich sollte es jeder wissen, wenn er Operationen mit dem AutoCAD-Anwendungsobjekt durchführt.
Immer wenn ich einen Code schreibe, muss ich prüfen, ob sich die Anwendung in einem Ruhezustand (inaktiv) befindet oder nicht. Um dies zu überprüfen, verwende ich die IsQuiescent-Methode. Hier ist ein Beispiel:
print(acad.app.GetAcadState().IsQuiescent)
O/p:
False
Da ich die Anwendung nach dem Ausführen dieses Codes verwendet habe, wird die Anwendung als aktiv angezeigt (dh falsch).
Wenn ich das aktuelle Dokument schließen möchte, kann ich auch die Quit-Methode verwenden. Dies schließt natürlich nur das gerade aktive Dokument und nicht die gesamte Anwendung, die einen Nullwert zurückgibt.
acad.app.Quit()
Um die Anwendung nach dem Anwenden des Codes zu aktualisieren, kann ich schließlich die Update-Methode verwenden, die ebenfalls null zurückgibt.
acad.app.Update()
Schlussbemerkungen und zugehörige Inhalte
Weitere informative Artikel zur AutoCAD -Automatisierung finden Sie in meinen anderen Artikeln zu pyautocad und pywin32 . Bitte kommentieren Sie Ihre Fragen im Kommentarbereich. Fühlen Sie sich frei, mich für eine technische Beratung zu kontaktieren. Sie können dafür das Kontaktformular verwenden .
Hier sind einige verwandte Artikel zur AutoCAD-Automatisierung und AutoCAD-Skripterstellung in Python:
- Link : Python für AutoCAD pyautocad-Modul
- Link : add()-Methode in Pyautocad
- Link : Gelöster Anruf wurde vom Angerufenen in Pythoncom abgelehnt
- Link : Baumdatenstruktur für AutoCAD-Objekte mit Python
- Link : Erweitern der Objekte in AutoCAD mit pyautocad in Python
- Link : Python-Listen und -Wörterbüchern zum Arbeiten mit AutoCAD-Objekten mit Pyautocad
- Link : Schraffieren von Objekten auf einer AutoCAD-Vorlage mit pywin32 in Python
- Link : Rasterbildobjekt in AutoCAD mit pyautocad in Python
- Link : Arbeiten mit 3D-Mesh-Objekt in AutoCAD mit pyautocad in Python
- Link : Erstellen eines doppelten Konstruktors mit pywin32 in Python
- Link : Apoint-Methode mit pywin32 in Python erstellen
- Link : Python-Integration mit AutoCAD mit pywin32 und win32com
- Link : Löschen von Objekten in einer AutoCAD-Vorlage mit pyautocad und pywin32 in Python
- Link : Objekt auf einer 2D-Ebene mit Pyautocad in Python spiegeln
- Link : Arbeiten mit Texten in Autocad mit pyautocad in Python
- Link : Polare Arrays in AutoCAD mit Pyautocad in Python
- Link : Rechteckige Arrays in AutoCAD mit Pyautocad in Python
- Link : Operationen mit AutoCAD-Objekten mit pyautocad in Python
- Link : Solide Objekte in AutoCAD mit pyautocad in Python
- Link : Arbeiten mit Spiralen in AutoCAD mit pyautocad in Python
- Link : Zeichnen von Splines in AutoCAD mit pyautocad in Python
- Link : Polylinien in Pyautocad zum Zeichnen von AutoCAD-Polygonen in Python
- Link : Zeichnen von Ellipsenbögen in AutoCAD mit Pyautocad in Python
- Link : Zeichnen von Bögen in AutoCAD mit Pyautocad in Python
- Link : Nahezu gleichzeitige Fabrikplanung und Prozessoptimierung mit Promodel AutoCAD Edition
- Link : Python für AutoCAD pyautocad-Modul
- Link : Region-Objekt in AutoCAD mit Python

Leave a Reply