Python의 AutoCAD 응용 프로그램 객체 클래스

이 블로그 게시물 에서는 AutoCAD 응용 프로그램 개체와 몇 가지 중요한 메서드 및 속성에 대해 설명합니다. pyautocad에서 AutoCAD Application 객체를 구현하는 방법을 보여드리겠습니다.

이 코딩 예제를 시작하면서 pyautocad에서 관련 클래스와 메서드를 가져옵니다. 아래 코드에서 새 모델을 만듭니다.

from pyautocad import Autocad, APoint, aDouble
acad = Autocad(create_if_not_exists=True)

Python에서 AutoCAD 응용 프로그램 개체 가져오기

AutoCAD 응용 프로그램 개체에 대한 작업을 수행하려면 해당 개체를 가져와야 합니다. pyautocad에서는 이를 위해 “acad.app”을 사용합니다.

pyautocad 대신 통신 모듈을 사용하려면 아래 코드대로 진행할 수 있습니다. 이 경우 win32com 및 pythoncom Python 모듈을 사용합니다.

from win32com.client import *
import pythoncom

acad1 = win32com.client.Dispatch("AutoCAD.Application")

이 경우 acad1은 Application 객체를 나타냅니다.

응용 프로그램 AutoCAD 개체의 속성

많은 응용 프로그램 개체 속성은 AutoCAD 도면의 자동화를 향상시킵니다. 몇 가지 중요한 속성에 대해 하나씩 살펴보겠습니다.

예를 들어 응용 프로그램 이름, 응용 프로그램의 전체 이름 또는 예를 들어 문서 이름과 같은 AutoCAD 응용 프로그램 개체와 관련된 다양한 종류의 정보를 얻기 위해 코드를 사용할 수 있습니다.

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

AutoCAD 응용 프로그램에서 현재 열려 있는 모든 문서를 확인하고 싶다고 가정해 보겠습니다. 이를 위해 Documents 속성을 사용하고 해당 속성을 반복할 수 있습니다.

AutoCAD에서 간단한 예를 들어 설명하겠습니다. 그의 예에는 Drawing1과 Drawing2라는 두 개의 도면이 열려 있습니다. 아래 스크린샷이 이를 보여줍니다.

AutoCAD 응용 프로그램 객체 튜토리얼

도면 “Drawing2.dwg”가 현재 선택되어 있습니다. 이전 출력과 위의 이미지에서 이 그림이 ActiveDocuments로 가져온 것이 분명합니다. 그러나 Drawing1.dwg도 반환하는지 확인하겠습니다. 해당 파일도 열려 있으므로 이 경우여야 합니다.

print(acad.app.Documents)
for i in acad.app.Documents:
    print(i.Name)

O/p:
Drawing1.dwg
Drawing2.dwg

MenuGroups 및 MenuBar 속성

이제 현재 사용 중인 메뉴 표시줄과 메뉴 그룹 개체를 가져옵니다. 아래 코드에서 그렇게 합니다.

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

여기에서 MenuBar의 첫 번째 코드가 AutoCAD 드로잉의 활성 메뉴 표시줄인 디스패치 개체를 반환했음을 알 수 있습니다. 다른 기사에서 MenuBar 개체에 대해 설명하겠습니다.

AutoCAD 응용 프로그램 개체 WindowState 속성

AutoCAD 응용프로그램 또는 AutoCAD 문서 창의 상태를 조정하거나 보기 위해 WindowState 특성을 사용할 수 있습니다. WindowState는 정수 값으로 인코딩됩니다. 간단히 말해서 정수는 예를 들어 다음과 같은 방식으로 창 상태를 나타냅니다.

  • acMin(1): 창이 최소화됩니다.
  • acMax(2): 창이 최대화됩니다.
  • 아크노르m(3): 창이 정상입니다(최소화 또는 최대화되지 않음).
print(acad.app.WindowState)

O/p:
1

AutoCAD 응용 프로그램 개체 메서드

이제 AutoCAD 응용 프로그램을 처리하기 위한 몇 가지 중요한 pyautocad 방법에 대해 설명하겠습니다. 실제로 AutoCAD 응용 프로그램 개체로 작업을 수행하는 동안 모든 사람이 알아야 합니다.

코드를 작성할 때마다 애플리케이션이 Quiescent(비활성) 상태인지 여부를 확인해야 합니다. IsQuiescent 메서드를 사용하는지 확인합니다. 다음은 예입니다.

print(acad.app.GetAcadState().IsQuiescent)

O/p:
False

이 코드를 실행한 후 응용 프로그램을 사용하고 있었기 때문에 응용 프로그램이 활성(예: False)으로 표시됩니다.

또한 현재 문서를 닫고 싶다면 Quit 메서드를 사용할 수 있습니다. 물론 이는 현재 활성 문서만 닫고 null 값을 반환하는 전체 응용 프로그램은 닫지 않습니다.

acad.app.Quit()

마지막으로 코드를 적용한 후 애플리케이션을 업데이트하기 위해 null을 반환하는 Update 메서드도 사용할 수 있습니다.

acad.app.Update()

맺음말 및 관련 내용

AutoCAD 자동화 를 다루는 다른 유익한 기사  는 pyautocad 및 pywin32와 관련된 다른 기사를 확인하십시오. 댓글 섹션에 있는 질문을 댓글로 남겨주세요. 기술 상담이 필요하시면 언제든지 연락주세요. 동일한 연락처 양식 을 사용할 수 있습니다 .

다음은 Python에서 AutoCAD 자동화 및 AutoCAD 스크립팅을 다루는 몇 가지 관련 문서입니다.

You May Also Like

Leave a Reply

Leave a Reply

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.