ID:
PW:

     0 분
     1 분

프로그래밍 Tips
프로그래밍에 관한 Tip을 공유하는 곳입니다.


Python으로 AutoCAD 통제하기
이석종  2020-04-23 02:52:00, 조회 : 782, 추천 : 2
- Download #1 : [resize]pyautocad.png (69.4 KB), Download : 2


요즘 프로그래밍 언어 중에 가장 핫한 언어가 Python이 아닌가 싶습니다.
쉽고(?) 컴파일이 필요없어서 쉽게 접근이 가능하고, 라이브러리들이 많다는 장점이 있습니다.

Python으로 autocad를 통제할 수 있는 방법이 있어서 소개하고자 합니다.

pyautocad라는 package가 autocad를 통제하는 걸 도와줍니다.

1. pyautocad 설치
pip install pyautocad  <-- cmd창에서 이렇게 입력해서 pyautocad를 설치합니다.

2.autocad 실행하기

3. pyacad.py 만들기 <-- 캐드를 통제하는 python코드입니다.
아래의 내용을 에디터에 복사해서 붙인 후 pyacad.py로 저장하세요.

---pyacad.py 시작----
from pyautocad import Autocad, APoint
import win32com.client

AutoCAD = win32com.client.Dispatch("AutoCAD.Application")
acad = Autocad(create_if_not_exists = False)

acad.prompt("Hello, Autocad from Python\n")
print(acad.doc.Name)

p1 = APoint(0, 0)
p2 = APoint(50, 25)

for i in range(5):
    text = acad.model.AddText('Hi %s!' % i, p1, 2.5)
    acad.model.AddLine(p1, p2)
    acad.model.AddCircle(p1, 10)
    p1.y += 10

dp = APoint(10, 0)
for text in acad.iter_objects(['Hi']):
    print('text: %s at: %s' % (text.TextString, text.InsertionPoint))
    text.InsertionPoint = APoint(text.InsertionPoint) + dp

for line in acad.iter_objects(dont_cast = True):
    print(line.ObjectName)

AutoCAD.Visible = True
---pyacad.py 끝---

4.pyacad.py실행
cmd창에서
python pyacad.py <-- 이렇게 입력해서 pyacad.py를 실행합니다.

5.Autocad에서 확인 , cmd창에서 확인
AutoCAd에서 제대로 그림이그려졌는지. cmd창에서는 제대로 출력이 됐는지 확인합니다.

첨부 그림처럼 그림이 그려지고 cmd창에 출력이 됐다면 성공한 것입니다.

이제 python코드로 autocad를 통제해보세요~

* 자세한 내용은 https://pypi.org/project/pyautocad/ 를 참고하시기 바랍니다.

*저의 테스트환경은 아래와 같습니다.
운영체계는 윈도우10, anaconda prompt환경에서 실행했습니다. python 버전은 3.7.6입니다. Autocad는 civil3D 2020입니다.


ko youngbae
autocad가 리습과 vba외에 파이썬이 가능한지 몰랐는데 아주 유용해 보입니다. 2020-04-23
11:18:33

 


이석종
@ko youngbae 사실 마이크로소프트가 예전부터 자사 OS내에서 돌아가는 프로그램간 호환이 되도록 하는 기술을 가지고 있었습니다. 이름이 조금씩 바뀌어서 이 pyautocad는 comtype을 적용했다고 되어있습니다. 요즘엔 어떤 프로그램이든 다른 프로그램 자유롭게 소통할 수 있는 기능이 중요한 것 같습니다. API를 공개하는 프로그램들도 많죠. 특히 AutoCAD는 처음부터 AutoLISP, objectARX, 최근에는 .NET 등 스크립트 기능을 탑재함으로서 사용자들이 커스터마이징할 수 있도록 한 전략이 성공을 거두지 않았나 싶습니다. 2020-04-23
12:55:00

 


  추천하기   목록보기

Copyright 1999-2020 Zeroboard / skin by zero
구조설계의 미래를 준비하는 모임 [구조설계미래포럼]