I dette blogindlæg vil jeg diskutere AutoCAD Application-objektet og nogle af dets vigtige metoder og egenskaber. Jeg vil vise, hvordan man implementerer AutoCAD Application-objektet i pyautocad.
Ved at starte dette kodningseksempel importerer jeg relevante klasser og metoder fra pyautocad. Jeg opretter en ny model i koden nedenfor.
from pyautocad import Autocad, APoint, aDouble
acad = Autocad(create_if_not_exists=True)
Henter AutoCAD-applikationsobjektet i Python
For at jeg kan udføre nogen handlinger på AutoCAD Application-objektet, skal jeg hente dette objekt. I pyautocad bruger jeg “acad.app” til dette.
Hvis jeg vil bruge kommunikationsmoduler i stedet for pyautocad, kan jeg fortsætte som kodet nedenfor. I så fald bruger jeg win32com og pythoncom Python-moduler.
from win32com.client import *
import pythoncom
acad1 = win32com.client.Dispatch("AutoCAD.Application")
I dette tilfælde repræsenterer acad1 applikationsobjektet.
Egenskaber for Application AutoCAD-objektet
Mange applikationsobjektegenskaber forbedrer automatiseringen af AutoCAD-tegninger. Jeg vil diskutere nogle af de vigtige egenskaber, gennemgå dem én efter én.
For at få forskellige former for information relateret til AutoCAD Application objektet, såsom f.eks. applikationens navn, applikationens fulde navn, eller f.eks. dokumentnavnet, kan jeg bruge koden.
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
Lad os sige, at jeg vil kontrollere alle de dokumenter, der i øjeblikket er åbnet i AutoCAD-applikationen. Til dette kan jeg fx bruge egenskaben Dokumenter og iterere over denne egenskab.
Jeg vil demonstrere dette med et simpelt eksempel i AutoCAD. I hans eksempel har jeg to tegninger åbne, Tegning1 og Tegning2. Skærmbilledet nedenfor viser dette.
Tegningen “Drawing2.dwg” er i øjeblikket valgt. Fra mit tidligere output og billedet ovenfor er det tydeligt, at denne tegning er hentet som ActiveDocuments. Men lad mig tjekke, om det også returnerer Drawing1.dwg. Dette burde være tilfældet, da den fil også er åben.
print(acad.app.Documents)
for i in acad.app.Documents:
print(i.Name)
O/p:
Drawing1.dwg
Drawing2.dwg
MenuGroups og MenuBar attributter
Nu får jeg menulinjen og menugruppeobjekterne i brug. Det gør jeg i koden nedenfor:
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
Her kan jeg se, at den første kode i MenuBar returnerede et afsendelsesobjekt, som er en aktiv menulinje fra AutoCAD-tegningen. Jeg vil diskutere MenuBar-objektet i en anden artikel.
AutoCAD-applikationsobjekt WindowState-egenskab
For at justere eller se tilstanden af AutoCAD-applikationen eller AutoCAD-dokumentvinduet kan jeg bruge WindowState-attributten. WindowState er kodet med heltalsværdier. Kort fortalt repræsenterer de heltal vinduestilstande på fx følgende måde:
- acMin(1): Vinduet er minimeret.
- acMax(2): Vinduet er maksimeret.
- acNorm(3): Vinduet er normalt (ikke minimeret eller maksimeret).
print(acad.app.WindowState)
O/p:
1
AutoCAD Application objekt metoder
Nu vil jeg diskutere et par vigtige pyautocad-metoder til håndtering af AutoCAD-applikationer. Faktisk burde alle vide det, mens de udfører operationer med AutoCAD-applikationsobjektet.
Når jeg skriver en kode, skal jeg kontrollere, om applikationen er i en stille (inaktiv) tilstand eller ej. For at tjekke at jeg bruger IsQuiescent metoden. Her er et eksempel:
print(acad.app.GetAcadState().IsQuiescent)
O/p:
False
Da jeg brugte applikationen efter at have kørt denne kode, viser den applikationen som aktiv (dvs. Falsk).
Hvis jeg vil lukke det aktuelle dokument, kan jeg også bruge Afslut-metoden. Dette lukker naturligvis kun det aktuelt aktive dokument og ikke hele applikationen, der returnerer en nulværdi.
acad.app.Quit()
Til sidst, for at opdatere applikationen efter at have anvendt koden, kan jeg bruge opdateringsmetoden, som også returnerer null.
acad.app.Update()
Afsluttende bemærkninger og relateret indhold
For andre informative artikler, der dækker AutoCAD -automatisering, tjek mine andre artikler relateret til pyautocad og pywin32. Kommenter venligst de spørgsmål, du har, i kommentarfeltet. Du er velkommen til at kontakte mig for enhver teknisk rådgivning. Du kan bruge kontaktformularen til det samme.
Her er nogle relaterede artikler, der dækker AutoCAD-automatisering og AutoCAD-scripting i Python:
- Link : Python til AutoCAD pyautocad-modul
- Link : add() metode i pyautocad
- Link : Løst opkald blev afvist af callee i pythoncom
- Link : Trædatastruktur for AutoCAD-objekter ved hjælp af Python
- Link : Udvidelse af objekterne i AutoCAD ved hjælp af pyautocad i Python
- Link : Brug af Python-lister og ordbøger til at arbejde med AutoCAD-objekter med pyautocad
- Link : Skravering af objekter på AutoCAD-skabelon ved hjælp af pywin32 i Python
- Link : Rasterbilledobjekt i AutoCAD med pyautocad i Python
- Link : Arbejde med 3D-mesh-objekt i AutoCAD ved hjælp af pyautocad i Python
- Link : Oprettelse af en dobbeltkonstruktør ved hjælp af pywin32 i Python
- Link : Oprettelse af apoint-metode ved hjælp af pywin32 i Python
- Link : Python-integration med AutoCAD ved hjælp af pywin32 og win32com
- Link : Sletning af objekter i en AutoCAD-skabelon med pyautocad og pywin32 i Python
- Link : Spejlobjekt på et 2D-plan med pyautocad i Python
- Link : Arbejde med tekster i Autocad ved hjælp af pyautocad i Python
- Link : Polære arrays i AutoCAD ved hjælp af pyautocad i Python
- Link : Rektangulære arrays i AutoCAD ved hjælp af pyautocad i Python
- Link : Operationer med AutoCAD-objekter ved hjælp af pyautocad i Python
- Link : Faste objekter i AutoCAD ved hjælp af pyautocad i Python
- Link : Arbejde med helixer i AutoCAD ved hjælp af pyautocad i Python
- Link : Tegning af splines i AutoCAD med pyautocad i Python
- Link : Polylinjer i pyautocad til tegning af AutoCAD-polygoner i Python
- Link : Tegning af ellipsebuer i AutoCAD ved hjælp af pyautocad i Python
- Link : Tegn buer i AutoCAD ved hjælp af pyautocad i Python
- Link : Nær samtidig fabriksdesign og procesoptimering med Promodel AutoCAD-udgave
- Link : Python til AutoCAD pyautocad-modul
- Link : Regionsobjekt i AutoCAD med Python
Leave a Reply