pyautocad를 사용한 AutoCAD 객체 작업

이 블로그 게시물 에서는 몇 가지 매우 일반적인 AutoCAD 작업과 pyautocad를 사용하여 Python 스크립트에서 구현하는 방법을 소개합니다. 개체 복사, 이동/붙여넣기, 삭제, 회전, 오프셋, 크기 조정 및 강조 표시 방법에 대해 설명합니다.

Python 스크립트 및 AutoCAD 모델 설정

먼저 Python의 pyautocad 모듈을 사용하여 AutoCAD 템플릿에서 작업을 수행하기 위한 작업 환경을 설정합니다.

from pyautocad import Autocad, APoint, aDouble
from math import *

acad = Autocad(create_if_not_exists=True)

Python에서 pyautocad를 사용하여 도면 템플릿에 AutoCAD 객체 추가

객체 생성에 대한 이 pyautocad 시리즈의 이전 블로그에서 이미 논의한 것처럼 위에서 언급한 대로 작업을 수행하기 위해 일부 객체를 그릴 것입니다.

c1 = acad.model.AddCircle(APoint(100, 100, 0), 100)
l1 = acad.model.AddLine(APoint(100,100), APoint(300, 350))
el1 = acad.model.AddEllipse(APoint(250, 300), APoint(700, 450), 0.5)

그래서 우리는 원, 선, 타원을 만들었습니다.

“ZoomExtents” 방법을 사용하여 생성된 개체를 확대합니다. 이 명령은 AutoCAD의 기본 “모두 확대/축소” 명령과 동일하게 작동합니다.

acad.app.ZoomExtents()
그림 1: 개체 연습

기본 AutoCAD 작업에 복사, 이동 및 삭제 방법 사용

기본 AutoCAD 개체 를 스케치 했으므로 가장 많이 사용되는 세 가지 명령인 복사, 이동 및 삭제부터 시작하겠습니다.

pyautocad를 사용하는 동안 복사가 작동하는 방식은 기존 개체의 복사본을 만들어 변수에 저장하고 “이동” 방법을 사용하여 원하는 위치에 붙여넣을 수 있습니다.

c2 = c1.Copy()

c2.Move(APoint(100, 100), APoint(300, 300))

여기에서 “c1” 원을 복사하고 그 복제본을 변수 “c2″에 저장합니다. 그런 다음 “이동” 방법을 사용하여 기존 중심점(100, 100, 0)에서 (300, 300, 0)으로 복사합니다.

그림 2.1: 원 c1을 c2로 복사

그림 1과 2에서 볼 수 있듯이 원 1을 새 위치에 복사했습니다. 이제 이전 원 “c1″을 원하지 않으면 삭제할 수 있습니다. 그렇지 않으면 복사하는 대신 Move 메서드를 사용하여 원 “c1″을 이동할 수 있습니다.

이제 원 “c1″을 삭제하겠습니다.

그림 2.2: 삭제된 원 c1

Python에서 pyautocad로 AutoCAD 객체 회전

이제 객체를 회전하는 방법에 대해 설명합니다. 여기서는 l1 선을 복사하고 기존 기준점(100, 100, 0)에서 90도까지 동일하게 회전합니다.

l2 = l1.Copy()

l2.Rotate(APoint(100,100), pi*90/180)
그림 3: l1에서 l2로 회전된 선

pyautocad를 사용하여 AutoCAD에서 개체를 오프셋합니다.

이제 개체의 오프셋을 가져오는 방법에 대해 설명하겠습니다. 해당 오프셋을 원하는 개체에 대해 사용할 Offset 메서드가 필요합니다.

여기에서는 기존 타원 즉 “el1″에 대한 오프셋을 사용합니다.

el2 = el1.Offset(10)
그림 4: 타원 el1의 오프셋

Python에서 AutoCAD 객체 크기 조정

개체의 크기를 늘리거나 줄이려면 크기를 조정하려는 개체에 대해 사용할 “Offset” 메서드가 필요합니다.

기존 원 “c2″를 축소해 보겠습니다.

c3 = c2.ScaleEntity(APoint(300, 300), 0.5)
그림 5.1: 축소된 원 c2

처리할 객체가 많은 경우 “Highlight” 메서드를 사용하여 특정 객체를 강조 표시하고 매개 변수를 “True”로 전달할 수 있습니다.

l2.Highlight(True)  
그림 5.2: 강조 표시된 라인 l2

You May Also Like

Leave a Reply

Leave a Reply

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

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