ID:
PW:

     0 ºÐ
     9 ºÐ

¿£Áö´Ï¾î µ¹Á¾
  dolljong
ÇÁ·Î±×·¡¹Ö Tips
ÇÁ·Î±×·¡¹Ö¿¡ °üÇÑ TipÀ» °øÀ¯ÇÏ´Â °÷ÀÔ´Ï´Ù.


[PYTHON] pythonÀ¸·Î ZWCADÅëÁ¦Çϱâ
À̼®Á¾  2021-01-31 06:42:48, Á¶È¸ : 2,284, Ãßõ : 167
- Download #1 : after.png (20.1 KB), Download : 11


¿äÁò Àú°¡ ijµå(´ë¾Èijµå°¡ ¸Â°Ú±º¿ä) ¿¡ °üÇÑ °ü½ÉÀÌ ³ô¾ÆÁö°í ÀÖ½À´Ï´Ù.

¿À´ÃÀº ´ë¾È ijµå Áß ÇϳªÀÎ ZWCAD¸¦ pythonÀ¸·Î ÅëÁ¦ÇÏ´Â °ÍÀ» ÇØº¸°Ú½À´Ï´Ù.

ZWCAD´Â ±âº»ÀûÀ¸·Î lisp, vba µîÀÇ °³¹ßȯ°æÀ» Á¦°øÇϰí ÀÖ½À´Ï´Ù.

ÇÏÁö¸¸ pythonÀ¸·Îµµ °¡´ÉÇÏ¸é ´õ ÁÁ°ÚÁÒ? ±×·¡¼­ °Ë»öÇØºÃ´Âµ¥ pyzwcad°¡ pypi.org¿¡ µî·ÏµÇ¾î ÀÖ¾ú½À´Ï´Ù. ¿ª½Ã zwcad´Â ½ÃÀå ±Ô¸ð°¡ Å« Áß±¹¿¡¼­ °³¹ßÇÏ´Â ¼ÒÇÁÆ®¿þ¾î¶ó¼­ ±×·±Áö ´ëÀÀÀÌ ºü¸¥ °Í °°´Ù´Â »ý°¢À» ÇØºÃ½À´Ï´Ù.

¼³Ä¡¹æ¹ý µîÀº 'pythonÀ¸·Î autocadÅëÁ¦Çϱâ'³»¿ë°ú ¸ðµÎ °°½À´Ï´Ù. ´Ù¸¸ pyautocad¸¦ ¼³Ä¡ÇÏ´Â ´ë½Ã pyzwcad¸¦ ¼³Ä¡ÇÏ´Â °Í¸¸ ´Ù¸£°í import¸í·É ÁÙ¸¸ ´Ù¸¨´Ï´Ù.

ÀÏ´Ü pyzwcad¸¦ ¾Æ·¡ÀÇ ¸µÅ©¸¦ ÂüÁ¶Çؼ­ ¼³Ä¡ÇÕ´Ï´Ù.
https://pypi.org/project/pyzwcad/



¼³Ä¡¹æ¹ýÀº pythonÀ» ½ÇÇàÇÒ ¼ö ÀÖ´Â consoleÀ» ½ÇÇàÇÑ ÈÄ pip install pyzwcad¸¦ ½ÇÇàÇÕ´Ï´Ù.
consoleÀ» ¶ç¿ì´Â ¹æ¹ýÀº À©µµ¿ì¿¡¼­´Â cmdâÀ» ¶ç¿ì¸é µË´Ï´Ù. ¹°·Ð pythonÀÌ ±ò·ÁÀÖ¾î¾ß ÇÕ´Ï´Ù.

pyzwcad°¡ ¼³Ä¡µÈ ÈÄ¿¡ ZWCAD¸¦ ½ÇÇàÇÕ´Ï´Ù. ¹°·Ð console°ú ZWCADÀÇ ½ÇÇà ¼ø¼­´Â °ü°è°¡ ¾ø½À´Ï´Ù. ZWCAD¸¦ ¸ÕÀú ½ÇÇàÇØµµ °ü°è ¾ø½À´Ï´Ù.

ÀÌÁ¦ test.py¶ó´Â ÆÄÀÏÀ» ¸¸µì´Ï´Ù. ÀÌ ÆÄÀÏÀ» ½ÇÇàÇϸé ZWCAD¿¡ ±×¸²ÀÌ ±×·ÁÁö´Â ¿¹Á¦ÀÔ´Ï´Ù. text editor¸¦ ½ÇÇàÇÏ°í ¾Æ·¡ÀÇ ³»¿ëÀ» ÀÔ·ÂÇÑ ÈÄ test.py¶ó´Â À̸§À¸·Î ÀúÀåÇÕ´Ï´Ù.

ÀÌÁ¦ console¿¡¼­ python test.py¸¦ ½ÇÇàÇÕ´Ï´Ù.
±×·¯¸é ZWCAD¿¡ ±×¸²ÀÌ ±×·ÁÁý´Ï´Ù. ±×¸®°í console¿¡µµ ¿©·¯°¡Áö Á¤º¸µéÀÌ Ãâ·ÂµË´Ï´Ù. ÀÌÇÁ·Î±×·¥ÀÌ ¾î¶² ±â´ÉÀ» ÇÏ´Â °ÍÀÎÁö´Â ¼³¸íµå¸®°Ú½À´Ï´Ù.



test.pyÀÇ ³»¿ëÀ» °£·«ÇÏ°Ô ¼³¸íÇÏÀÚ¸é,
from pyzwcad import ZwCAD, APoint



ÀÌ ÁÙÀº ¾Æ±î ¼³Ä¡ÇÑ pyzwcad ÆÑŰÁö¸¦ importÇÏ´Â °ÍÀÔ´Ï´Ù.

acad = ZwCAD()

ÀÌ ÁÙÀº ZWCAD¸¦ acad¶ó´Â À̸§À¸·Î ºÎ¸£°Ú´Ù´Â ¶æÀÔ´Ï´Ù.
ÀÌ ÁÙÀÌ ½ÇÇàµÈ ÈÄ¿¡´Â ZWCAD´Â acad¶ó´Â À̸§À¸·Î ÅëÁ¦°¡ °¡´ÉÇÏ°Ô µË´Ï´Ù.

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

ÀÌ ÁÙÀº ZWCAD ¿¡ ¹®ÀÚ¿­À» Ãâ·ÂÇÏ´Â ¸í·ÉÀÔ´Ï´Ù.

print acad.doc.Name

ÀÌ ¸í·ÉÀº consoleâ¿¡ ZWCADÀÇ ÆÄÀϸí(doc.Name)À» Ãâ·ÂÇÏ´Â ³»¿ëÀÔ´Ï´Ù.
ZWCADÀÇ Á¤º¸¸¦ pythonÀ¸·Î ºÒ·¯¿Ã ¼ö ÀÖ´Â °ÍÀÌÁÒ.

p1 = APoint(0, 0)

APointÇÔ¼ö¸¦ ÀÌ¿ëÇØ¼­ p1À̶ó´Â º¯¼ö¸í¿¡ 0,0À̶ó´Â ÁÂÇ¥¸¦ ÇÒ´çÇÕ´Ï´Ù.

for i in range(5):

pythonÀÇ for ¹Ýº¹¹®ÀÔ´Ï´Ù. range(5)´Â 0,1,2,3,4 ¶ó´Â °ªÀ» ¸¸µé¾î¼­ i¿¡ ´ëÀÔÇϸ鼭 ¼ø¼­´ë·Î ¹Ýº¹Ç϶ó´Â ¶æÀÔ´Ï´Ù.

    text = acad.model.AddText('Hi %s!' % i, p1, 2.5)

model space¿¡ text¸¦ Ãß°¡ÇÏ´Â ¸í·ÁÀÔ´Ï´Ù.
'Hi %s!'% i  --> À̺κÐÀº i¸¦ %s¿¡ ´ëÀÔÇØ¼­ Ãâ·ÂÇ϶ó´Â °ÍÀ̱¸¿ä.
p1 --> »ðÀÔÁ¡À» Á¤ÇØÁÖ´Â °ÍÀ̰í
2.5 --> ±ÛÀÚÅ©±âÀÔ´Ï´Ù. ÀϹÝÀûÀ¸·Î ÅØ½ºÆ®¸¦ ¾µ ¶§ ÇÊ¿äÇÑ Á¤º¸ÀÔ´Ï´Ù.

    acad.model.AddLine(p1, p2)

¼±À» ±×¸®´Â ¸í·ÉÀÔ´Ï´Ù. ¸¶Âù°¡Áö·Î acad.modelÀ» ÁöÁ¤ÇØÁÖ°í AddlineÀ» Çß½À´Ï´Ù. p1,p2´Â ½ÃÀÛÁ¡ ³¡Á¡À̰ÚÁÒ.

    acad.model.AddCircle(p1, 10)

´ÙÀ½Àº ¿øÀ» ±×¸®´Â ¸í·ÉÀÔ´Ï´Ù. p1ÀÌ ¿øÁ¡ÁÂÇ¥, 10ÀÌ ¿øÀÇ ¹ÝÁö¸§ÀÔ´Ï´Ù.

¿©±â±îÁö°¡ ÅØ½ºÆ®,¶óÀÎ,¿øÀ» ±×¸®´Â ¸í·ÉÀÔ´Ï´Ù.

    p1.y += 10

ÀÌ ¹®ÀåÀº ´ÙÀ½ ¼¼Æ®¸¦ ±×¸®±â À§Çؼ­ yÁÂÇ¥¿¡ 10À» ´õÇØÁÖ´Â ¸í·ÉÀ̱¸¿ä

ÀÌ·¸°Ô ÇØ¼­ 5°³ÀÇ ÅØ½ºÆ®, ¶óÀÎ, ¿øÀ» ±×¸®µµ·Ï µÇ¾îÀÖ½À´Ï´Ù.

¿©±â±îÁö°¡ »õ·Î¿î °³Ã¼¸¦ ¸¸µå´Â ¿¹Á¦¿´´Ù¸é
ÀÌ ÀÌÈÄÀÇ ÄÚµå´Â ZWCAD¿¡¼­ Á¤º¸¸¦ °¡Á®¿À´Â ¿¹Á¦ÀÔ´Ï´Ù.

ÀÌ¹Ì ¸¸µé¾îÁø ÅØ½ºÆ®ÀÇ À§Ä¡¸¦ ¿À¸¥ÂÊÀ¸·Î 10¸¸Å­ ¿òÁ÷À̰í
¼±°ú ¿øÀÇ objectÀ̸§À» Ãâ·ÂÇØÁÖ´Â ±â´ÉÀÔ´Ï´Ù.

ÇÑ ÁÙ¾¿ º¸°Ú½À´Ï´Ù.

dp = APoint(10, 0)

¿ì¼± delta pÁï ¿òÁ÷ÀÏ ¾çÀ» ¼³Á¤ÇØÁÝ´Ï´Ù. ¿À¸¥ÂÊÀ¸·Î 10¸¸Å­ÀÔ´Ï´Ù.

for text in acad.iter_objects('Text'):

pythonÀÇ for¹®À» ÀÌ¿ëÇØ¼­ ¹Ýº¹Çϴµ¥ iter_objects±â´ÉÀ» ÀÌ¿ëÇÕ´Ï´Ù. 'Text'µéÀ» ¸ðµÎ °ñ¶ó³»¼­ text¶õ À̸§À¸·Î ºÎ¿©Çؼ­ Â÷·Ê´ë·Î ¹º°¡ Çϰڴٴ ¶æÀÔ´Ï´Ù. ¹«¾ùÀ» ÇÒ °ÍÀÎÁö´Â ¾Æ·¡¿¡ ³ª¿À°ÚÁÒ?

    print('text: %s at: %s' % (text.TextString, text.InsertionPoint))

pythonÀÇ print±â´ÉÀ» ÀÌ¿ëÇÕ´Ï´Ù. %¸¦ ÀÌ¿ëÇØ¼­ fortmattingÀ» Çϰí ÀÖ±¸¿ä.
ù¹øÂ° %s¿£ text.TextStringÀ» ³Ö°Ú´Ù´Â °ÍÀ̰í
µÎ¹øÂ° %s¿¡´Â text.InsertionPoint¸¦ ³Ö°Ú´Ù´Â ¶æÀÔ´Ï´Ù.
text¶ó´Â °´Ã¼ÀÇ TextStringÀº text³»¿ë, InsertionPoint´Â »ðÀÔÁ¡À̶ó´Â ¶æÀ̰ÚÁÒ?
ÀÌ ¹®ÀåÀ» ½ÇÇàÇϸé python console¿¡ ÀÌ·¸°Ô Ãâ·ÂÀÌ µË´Ï´Ù.
text: Hi 0! at: (0.0, 0.0, 0.0)

    text.InsertionPoint = APoint(text.InsertionPoint) + dp

ÀÌ ¹®ÀåÀº textÀÇ InsertionPoint¸¦ º¯°æÇÏ´Â ¹®ÀåÀÔ´Ï´Ù. Apoint(text.InsertionPoint)¿¡ dp¸¸Å­ ´õÇϰí ÀÖ½À´Ï´Ù. dp´Â 10,0À̾ú½À´Ï´Ù. ¿À´ÃÂÊÀ¸·Î 10¸¸Å­ ¿òÁ÷ÀÌ´Â °ÍÀÌÁÒ.

ÀÌ·¸°Ô ÇØ¼­ ¸ðµç ¶óÀΰú ¿øÀÇ ÁÂÇ¥¸¦ Ãâ·ÂÇß°í ÅØ½ºÆ®µéÀ» ¿À¸¥ÂÊÀ¸·Î 10¸¸Å­ À̵¿½ÃÄ×½À´Ï´Ù.

´ÙÀ½ ±â´Éµµ À§ÀÇ ±â´É°ú ºñ½ÁÇÕ´Ï´Ù.
À̹ø¿¡´Â objectµéÀÇ À̸§À» Ãâ·ÂÇØÁÖ´Â ±â´ÉÀÔ´Ï´Ù.
for¹®Àº ¾ÕÀÇ °Í°ú °°Àºµ¥ ¾î¶² objectµéÀ» ¼±ÅÃÇÒ °ÍÀΰ¡¸¸ ´Ù¸¨´Ï´Ù.

for obj in acad.iter_objects(['Circle', 'Line']):

[ ]·Î ¹­¾î¼­ 'Circle'°ú 'Line'À» ¸ðµÎ ¼±ÅÃÇϵµ·Ï Çß½À´Ï´Ù. ¼±ÅÃµÈ objectµéÀ» obj¶ó´Â º¯¼ö¿¡ ÇÒ´çÇß±¸¿ä.

    print(obj.ObjectName)

objÀÇ ObjectNameÀ» print¹®À¸·Î Ãâ·ÂÇß½À´Ï´Ù.

ÀÌ·¸°Ô ÇØ¼­ »õ·Î¿î ¶óÀÎ,¿ø,ÅØ½ºÆ®¸¦ »ý¼ºÇϰí,
¸¸µé¾îÁø ojbectµéÀÇ ÁÂÇ¥¸¦ Ãâ·ÂÇϰí, ¿Å±â°í, objectµéÀÇ À̸§À» Ãâ·ÂÇÏ´Â ÇÁ·Î±×·¥À» ¼³¸íÇØµå·È½À´Ï´Ù.

--- test.py --

from pyzwcad import ZwCAD, APoint

acad = ZwCAD()
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('Text'):
    print('text: %s at: %s' % (text.TextString, text.InsertionPoint))
    text.InsertionPoint = APoint(text.InsertionPoint) + dp

for obj in acad.iter_objects(['Circle', 'Line']):
    print(obj.ObjectName)

-- test.py --





À̼®Á¾
ÀÌ ±â´ÉÀº ZWCAD¸¸ µÇ´Â °ÍÀÌ ¾Æ´Ï°í AutoCADµµ µË´Ï´Ù. pythonÀ¸·Î AutoCADÅëÁ¦Çϱâ´Â ÀÌ °Ô½ÃÆÇ¿¡ ¿Ã·ÁÁ®ÀÖ½À´Ï´Ù. ¾Æ·¡ ¸µÅ©¸¦ Âü°íÇϼ¼¿ä.
http://www.gumifo.org/zeroboard/view.php?id=devtips&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=15
2021-01-31
11:27:39

 


À̼®Á¾
pyzwcadÀÇ ÀÚ¼¼ÇÑ ±â´ÉÀº pyautocad¸¦ ÂüÁ¶ÇϽñ⠹ٶø´Ï´Ù.
http://pyautocad.readthedocs.io/en/latest/index.html
2021-01-31
13:37:00

 


  ÃßõÇÏ±â   ¸ñ·Ïº¸±â

Copyright 1999-2023 Zeroboard / skin by zero
±¸Á¶¼³°èÀÇ ¹Ì·¡¸¦ ÁغñÇÏ´Â ¸ðÀÓ [±¸Á¶¼³°è¹Ì·¡Æ÷·³]