이 블로그 게시물에서는 pyautocad를 사용하여 AutoCAD에서 영역 개체를 만들고 조작하는 방법을 보여줍니다. 나는 pyautocad에서 AddRegion()-메서드를 사용하여 그렇게 할 것입니다. pyautocad는 AutoCAD용 여러 Python 모듈 중 하나입니다. 저는 이미 이 블로그에서 Python 으로 AutoCAD 스크립팅 을 광범위하게 다루었습니다 .
AutoCAD의 지역 객체
AutoCAD 영역 객체는 2D 닫힌 영역을 나타냅니다 . AutoCAD 영역 객체는 연결되어 닫힌 엔티티를 형성하는 한 폴리선, 원, 호, 스플라인, 직사각형 등이 될 수 있습니다.
AutoCAD 영역 개체를 결합하여 단일 영역으로 사용할 수 있습니다. 이는 몇 가지 방법을 사용하여 수행할 수 있습니다. 여기에는 Union , Intersection 또는 Subtraction 과 같은 메서드가 포함됩니다 .
통칭하여 이러한 방법을 AutoCAD 부울 방법이라고 합니다.
AutoCAD에서 영역 개체 만들기(win32com 등)
pyautocad를 사용하여 AutoCAD에서 영역 객체를 생성할 수 없습니다. 이는 일부 모듈 제한 때문입니다. 따라서 이 기사에서는 win32com 및 pythoncom Python 모듈 을 사용하여 AddRegion() 메서드를 사용합니다 .
AutoCAD 영역 개체 를 만들기 전에 응용 프로그램을 부트스트랩했습니다. 이렇게 하면 AutoCAD에 쉽게 연결할 수 있습니다. 또한 모델 공간을 가져올 수 있습니다.
아래 그림에서는 겹치는 원이 있는 닫힌 AutoCAD 폴리라인 객체를 표시합니다.
아래 코드를 사용하여 위 그림의 개체를 만들었습니다.
pl1 = acad.AddPolyline(ad(0,0,0,1000,0,0,1000,500,0,750,500,0,750,1000,0,250,1000,0,250,500,0,0,500,0,0,0,0))
c1 = acad.AddCircle(ap(500, 1000, 0), 250)
이제 영역을 만들려면 포함된 AutoCAD 개체의 배열을 AddRegion() 메서드에 전달해야 합니다. 저는 아래와 같이 합니다.
acad.AddRegion(win32com.client.VARIANT(VT_ARRAY | VT_DISPATCH, (pl1, c1)))
여기서 개체가 영역으로 변환된 것을 볼 수 있습니다. 폴리라인도 마찬가지입니다. 영역 개체는 원본 개체입니다.
지역 개체에 대한 부울 연산 수행
부울 연산은 AutoCAD 영역 객체 뿐만 아니라 3D 솔리드에서도 수행할 수 있습니다 .
지역 개체를 사용하려면 반복을 사용하여 AutoCAD 템플릿에서 동일한 항목을 가져와야 합니다. 이는 AddRegion() 메서드가 AutoCAD 객체 배열만 반환하기 때문입니다.
아래 표시된 Python 코딩 예제에서는 사전을 사용하여 내가 만든 AutoCAD 영역 객체 를 저장 합니다.
regions = {}
i=0
for l in acad1.iter_objects_fast(object_name_or_list="Region"):
print(str(l.ObjectID) + ": " + l.ObjectName)
key = "reg" + str(i)
regions[key] = l
i+=1
이 게시물의 앞부분에서 언급했듯이 세 가지 유형의 부울 연산을 수행하여 영역의 단일 합집합을 만들 수 있습니다.
- 유니온 (0)
- 교차로 (1)
- 빼기 (2).
위에 나열된 방법의 괄호 안에 언급된 숫자를 입력 매개변수로 사용하겠습니다. Boolean() 메서드를 호출할 때 수행하려는 부울 연산 유형을 선언합니다. 동시에 영역 개체를 오른쪽으로 이동합니다. 이렇게 하면 차이가 더 명확해집니다.
regions["reg1"].Boolean(2, regions["reg0"])
for l in acad1.iter_objects_fast(object_name_or_list="Region"):
print(str(l.ObjectID) + ": " + l.ObjectName)
l.Move(APoint(0, 0, 0), APoint(1500, 0, 0))
새 객체가 상위 영역에서 통합된 단일 영역으로 만들어지는 것이 분명합니다.
맺음말 및 관련 내용
AutoCAD 자동화 를 다루는 추가 블로그 게시물 은 pyautocad 및 pywin32 와 관련된 다른 블로그 게시물을 확인하십시오 . 궁금한 사항은 아래 댓글로 남겨주세요. 기술 지원이 필요하면 언제든지 저에게 연락하십시오. 문의 양식을 사용하여 그렇게 할 수 있습니다.
다음은 Python에서 AutoCAD 자동화 및 AutoCAD 스크립팅 을 다루는 관련 문서입니다.
- 링크 : AutoCAD pyautocad 모듈용 Python
- 링크 : pyautocad의 add() 메서드
- 링크 : 해결된 호출이 pythoncom의 피호출자에 의해 거부되었습니다.
- 링크 : Python을 사용하는 AutoCAD 객체의 트리 데이터 구조
- 링크 : Python에서 pyautocad를 사용하여 AutoCAD에서 개체 확장
- 링크 : Python 목록 및 사전을 사용하여 pyautocad로 AutoCAD 객체 작업하기
- 링크 : Python에서 pywin32를 사용하여 AutoCAD 템플릿에서 개체 해칭
- 링크 : AutoCAD의 래스터 이미지 개체와 Python의 pyautocad
- 링크 : Python에서 pyautocad를 사용하여 AutoCAD에서 3D 메쉬 개체 작업
- 링크 : Python에서 pywin32를 사용하여 이중 생성자 만들기
- 링크 : Python에서 pywin32를 사용하여 apoint 메서드 만들기
- 링크 : pywin32 및 win32com을 사용하여 AutoCAD와 Python 통합
- 링크 : Python에서 pyautocad 및 pywin32를 사용하여 AutoCAD 템플릿에서 개체 삭제
- 링크 : Python에서 pyautocad를 사용하여 2D 평면에서 객체 미러링
- 링크 : Python에서 pyautocad를 사용하여 Autocad에서 텍스트 작업
- 링크 : Python에서 pyautocad를 사용하는 AutoCAD의 극좌표 배열
- 링크 : Python에서 pyautocad를 사용하는 AutoCAD의 직사각형 배열
- 링크 : Python에서 pyautocad를 사용하여 AutoCAD 객체로 작업
- 링크 : Python의 pyautocad를 사용하여 AutoCAD의 솔리드 객체
- 링크 : Python에서 pyautocad를 사용하여 AutoCAD에서 나선 작업
- 링크 : Python에서 pyautocad를 사용하여 AutoCAD에서 스플라인 그리기
- 링크 : Python에서 AutoCAD 폴리곤을 그리기 위한 pyautocad의 폴리라인
- 링크 : Python에서 pyautocad를 사용하여 AutoCAD에서 타원 호 그리기
- 링크 : Python에서 pyautocad를 사용하여 AutoCAD에서 호 그리기
- 링크 : Promodel AutoCAD 에디션을 사용한 거의 동시적인 공장 설계 및 프로세스 최적화
- 링크 : AutoCAD pyautocad 모듈용 Python
Leave a Reply