ID:
PW:

     0 ºÐ
     21 ºÐ

¿£Áö´Ï¾î µ¹Á¾
  dolljong

Áö½ÄÀº °øÀ¯µÇ¾úÀ» ¶§ ±× ÈûÀ» ¹ßÈÖÇÑ´Ù.


Excel VBA, AutoCAD ActiveX ¸Àº¸±â °­ÁÂ(22)

Model space¿¡ EntityÃß°¡Çϱâ(2)

¾îÁ¦´Â ¿£Æ¼Æ¼ Ãß°¡Çϱ⸦ ÇÑ´Ù°í Çسõ°í ±×³É ¹®Åο¡¼­ ÁÖÀú¾É°í ¸»¾ÒÁÒ. Á¡½É½Ã°£À» ÀÌ¿ëÇÏ´Ùº¸´Ï ½Ã°£ÀÌ Á» ªÀº °¨ÀÌ ¾øÁö ¾Ê¾Æ ÀÖ½À´Ï´Ù. ¿À´ÃÀº Á¤¸»·Î ¿£Æ¼Æ¼¸¦ Ãß°¡Çغ¸µµ·Ï ÇÏ°Ú½À´Ï´Ù. ¿£Æ¼Æ¼¸¦ Ãß°¡Çϱâ À§Çؼ­´Â º¯¼ö¸¦ ¼³Á¤ÇØ¾ß ÇÕ´Ï´Ù. entity¸¦ Ãß°¡ÇÏ´Â ¸Þ¼­µå´Â ´ëºÎºÐ add·Î ½ÃÀÛÇÕ´Ï´Ù. µû¶ó¼­ getobject(,"autocad.application")À¸·Î ÀâÀº AutoCAD°³Ã¼Áß activedocumentÀÇ modelspace¿¡ circleÀ» Ãß°¡Çϱâ À§Çؼ­´Â addcircle¸Þ¼­µå¸¦ »ç¿ëÇÏ¸é µË´Ï´Ù. Áï acad¶ó´Â objectÇüº¯¼ö¿¡ autocad°³Ã¼°¡ ÀâÇôÀÖ´Ù¸é, acad.activedocument.modelspace.addcircle.. ÀÌ·±½ÄÀ¸·Î circleÀ» Ãß°¡ÇÏ´Â °ÍÀÔ´Ï´Ù.

±×·¸´Ù¸é µµ¿ò¸»ÀÇ µµ¿òÀ» ¹Þ¾Æ¼­ circleÀ» Ãß°¡ÇÏ´Â addcircle¸Þ¼­µå¶õ ³ð¿¡ ´ëÇؼ­ ¾Ë¾Æº¸±â·Î ÇÏ°Ú½À´Ï´Ù. À̹ø¿¡´Â ¾Æ·¡±×¸²°ú °°ÀÌ mehod¸¦ Á÷Á¢ ¼±ÅÃÇؼ­ methodµé Áß¿¡¼­ addcircleÀ» ã¾Æº¸´Â ¹æ½ÄÀ¸·Î µµ¿ò¸»À» »ç¿ëÇغ¸°Ú½À´Ï´Ù.



method¸¦ ¼±ÅÃÇÏ¸é ¾Æ·¡ ±×¸²°°Àº È­¸éÀÌ ³ª¿Ã °ÍÀÔ´Ï´Ù. ¸ðµç ¸Þ¼­µå¸¦ ¾ËÆĺª¼øÀ¸·Î ´Ù º¸¿©ÁÖ°í ÀÖ½À´Ï´Ù. ±×·±µ¥ ¾î´À °³Ã¼ÀÇ ¸Å¼­µå³Ä±¸¿ä? Àú¹ø¿¡µµ Çѹø ¸»¾¸µå¸° ÀûÀÌ Àִµ¥ A¶ó´Â ¸Þ¼­µå°¡ ÀÖÀ» ¶§ ±× ¸Þ¼­µå°¡ ¾î´À ƯÁ¤ °³Ã¼¿¡¸¸ ¼ÓÇØÀÖ´Â °ÍÀº ¾Æ´Õ´Ï´Ù. µû¶ó¼­ ¸Þ¼­µå ¸ñ·ÏÀ» º¸¸é ¸Þ¼­µå¸¸ ³ª¿Ã»ÓÀÔ´Ï´Ù.




addcircle¸Þ¼­µå¸¦ ã¾Æ¼­ Ŭ¸¯À» Çغ¸¸é ¾Æ·¡¿Í °°Àº È­¸éÀÌ ³ª¿Ã °ÍÀÔ´Ï´Ù. º¸Åë ¸Þ¼­µå¿¡ ´ëÇÑ µµ¿ò¸»Àº ¾Æ·¡¿Í °°Àº Çü½ÄÀ» ÃëÇÏ°í Àִµ¥ ÇÑÁÙ ÇÑÁÙ »ìÆ캸¸é...
RetVal = object.AddCircle(Center, Radius) ÀÌÁÙÀº ÀÌ ¸Þ¼­µå¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁÖ°í ÀÖ½À´Ï´Ù. °¢°¢ÀÇ ÀÎÀÚ³ª º¯¼ö¿¡ ´ëÇÑ ¼³¸íÀº ¾Æ·¡ÂÊ¿¡ ³ª¿ÍÀÖÁÒ. ¿©±â¼­ object¿¡ ´ëÇÑ ¼³¸íÀ» º¸¸é modelspace, paperspace, blockÀ̶ó°í µÇ¾îÀÖ½À´Ï´Ù. blockÀ» ´ë»óÀ¸·Î ÇÏ¸é ºí·° Á¤ÀÇ¿¡ addcircle¸Þ¼­µå¸¦ ÅëÇÏ¿© ¿øÀ» »ðÀÔÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸»ÇÏÀÚ¸é model space¿¡ ¿£Æ¼Æ¼¸¦ ±×¸®µíÀÌ blockµµ Á¤ÀÇÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù.
¿©±â¼­ RetVal¿¡ ´ëÇÑ ¼³¸íÀ» º¸¸é »õ·Î ¸¸µé¾îÁø circle object¸¦ µ¹·ÁÁØ´Ù°í µÇ¾îÀÖ½À´Ï´Ù. ¸¸ÀÏ circleÀ» ±×¸®°í ¸»°ÍÀ̶ó¸é ÀÌ return value¸¦ ¹ÞÀ» ÇÊ¿ä°¡ ¾øÁö¸¸ ¸¸ÀÏ »õ·Î±×¸° circleÀÇ »öÀ» ¹Ù²Û´Ùµç°¡ ¹ÝÁö¸§À» ¹Ù²Û´Ùµç°¡ ÇÏ·Á¸é ÀÌ ¸Þ¼­µå°¡ µ¹·ÁÁÖ´Â circle object¸¦ ¹Þ¾Æ¼­ º¯¼ö¿¡ ÀúÀåÇصξú´Ù°¡ ³ªÁß¿¡ ½á¸ÔÀ» ¼ö ÀÖ´Â °ÍÀÔ´Ï´Ù.
±×¸®°í cicleÀ» ±×¸®´Âµ¥ Á¦ÀÏ Áß¿äÇÑ Áß½ÉÁ¡°ú ¹ÝÁö¸§Àº ¾î¶»°Ô ¾Ë·ÁÁÖ³ª¸é, center¶ó´Â ÀÎÀÚ¿Í radius¶ó´Â ÀÎÀÚ¸¦ ÅëÇؼ­ ¾Ë·ÁÁÖ°Ô µÇ¾îÀÖ½À´Ï´Ù. ±×·±µ¥ Á» Àǹ®ÀÌ °¡Áö¿ä? ºÐ¸í Áß½ÉÁ¡ÀÇ ÁÂÇ¥¸¦ ¾Ë·ÁÁÖ±â À§Çؼ­´Â x,y,z ¼¼°³ÀÇ °ªÀÌ ÇÊ¿äÇÒ °Í °°Àºµ¥ ¶³·· center¶ó´Â ÀÎÀÚ¹Û¿¡ ¾øÀ¸´Ï ¸»ÀÌÁÒ. radius´Â ¹ÝÁö¸§À̴ϱî ÇÑ°³¸¸ ÀÖÀ¸¸é µÉ °Í °°°í....
center¿¡ ´ëÇÑ ¼³¸íÀ» Çѹø Àо¼¼¿ä.. three-element array of doubles À̶ó°í µÇ¾îÀÖÁÒ. doubleÇüÀÇ ¼¼°³ÀÇ ¿ä¼Ò¸¦ °¡Áø array¶ó´Â ¸»ÀÌ ÀÖ½À´Ï´Ù. Áï ÀÌ center¶ó´Â º¯¼öÀÇ ÇüÀº integerµµ ¾Æ´Ï°í doubleµµ ¾Æ´Ñ doubleÇüÀ̸鼭 ¼¼°³ÀÇ ¿ä¼Ò¸¦ °¡Áø ¹è¿­À̶õ °ÍÀÔ´Ï´Ù.
¹è¿­À» Á¤ÀÇÇÏ´Â ¹æ¹ýÀº Àß ¾Æ½Ã°í °è½Ã°ÚÁÒ? È®½ÇÈ÷ ÇÏ´Â Àǹ̿¡¼­.. dim center(2) as double¶ó°í Á¤ÀÇÇÏ¸é µË´Ï´Ù. basic¿¡¼­´Â Ưº°È÷ ¼±¾ðÇÏÁö ¾ÊÀ¸¸é ¹è¿­ÀÇ Ã·ÀÚ´Â 0ºÎÅÍ ½ÃÀÛÇÕ´Ï´Ù. µû¶ó¼­ ¼¼°³ÀÇ ¿ä¼Ò¸¦ °¡Áö´Â array´Â center(2)¶ó°í ¼±¾ðÇÕ´Ï´Ù.
ÀÌÁ¦ addcircle¸Þ¼­µå¸¦ »ç¿ëÇϱâ À§Çؼ­´Â dim center(2) as double¶ó°í ¹Ì¸® centerÁ¡ÀÇ Á¤º¸¸¦ ³Ö¾îµÑ array¸¦ ¼±¾ðÇؾßÇÑ´Ù´Â ¾Ë¾Ò½À´Ï´Ù. ÀÌÁ¦ circleÀ» Ãß°¡ÇÏ´Â sub¸¦ º»°ÝÀûÀ¸·Î ¸¸µéµµ·Ï ÇÕ´Ï´Ù.

Sub Macro1()
  Dim acad As Object      'AutoCAD°³Ã¼¸¦ ³Ö¾îµÑ º¯¼ö
  Dim c As Object         'circle object¸¦ ³Ö¾îµÑ º¯¼ö
  Dim center(2) As Double '¿øÀÇ Áß½ÉÁ¡À» ³Ö¾îµÑ ¹è¿­
  
  center(0) = 0  'xÁÂÇ¥
  center(1) = 0  'yÁÂÇ¥
  center(2) = 0  'zÁÂÇ¥
  
  Set acad = GetObject(, "AutoCAD.application")
  Set c = acad.activedocument.modelspace.addcircle(center, 10)

End Sub

À§ÀÇ Äڵ带 ½ÇÇà½ÃÅ°¸é ijµå¿¡ Áß½ÉÁ¡ÀÌ 0,0,0ÀÌ°í ¹ÝÁö¸§ÀÌ 10ÀÎ ¿øÀÌ ±×·ÁÁö°Ô µË´Ï´Ù. ÇÑÁÙ ÇÑÁÙ ¼³¸íÀ» Çغ¼±î¿ä? ÀÏ´Ü dim acad as object´Â ¿©·¯¹ø º¸¼ÌÀ¸´Ï ¾Æ½ÇÅ×ÁÒ? AutoCAD°³Ã¼¸¦ ´ã¾ÆµÎ±â À§ÇÑ º¯¼ö¸¦ ¼±¾ðÇÏ´Â °ÍÀÔ´Ï´Ù. ±×¸®°í c¶ó´Â º¯¼ö¸¦ objectÇüÀ¸·Î ¼±¾ðÇߴµ¥, ÀÌ°ÍÀº addcircle¸Þ¼­µå°¡ µ¹·ÁÁÖ´Â »õ·Î¸¸µé¾îÁø circle°³Ã¼¸¦ ´ã¾ÆµÎ±â À§ÇÑ º¯¼öÀÔ´Ï´Ù. addcircle¸Þ¼­µå·Î ¸¸µé¾îÁø circle°³Ã¼¸¦ ³ªÁß¿¡ Áß½ÉÁ¡À» ¹Ù²Û´Ùµç°¡, ¹ÝÁö¸§À» ¹Ù²Ù´Â µî ¼öÁ¤À» °¡ÇÏ·Á¸é ±× °³Ã¼¿¡ Á¢±ÙÇØ¾ß Çϴµ¥ ÀÌ·¸°Ô ´ã¾ÆµÎ¾ú´Ù°¡ Á¢±ÙÇؼ­ °íÄ¡°Ô µÇ´Â °ÍÀÔ´Ï´Ù. center(0)Àº xÁÂÇ¥¸¦ ÀǹÌÇÏ°í, center(1)°ú center(2)´Â °¢°¢ yÁÂÇ¥¿Í zÁÂÇ¥¸¦ ÀǹÌÇÕ´Ï´Ù.
¾î¶²°¡¿ä? ù¿£Æ¼Æ¼¸¦ ±×·Áº» ´À³¦ÀÌ.. ÀÌÁ¦ ¿©·¯ºÐµéÀº ´Ù¸¥ ¿£Æ¼Æ¼µµ ¾ó¸¶µçÁö ±×¸± ¼ö ÀÖ½À´Ï´Ù. add... ¸Þ¼­µåµéÀÇ Ã£¾Æº¸¸é ¿©·¯°¡Áö entity¸¦ model space¿¡ Ãß°¡ÇÏ´Â ¹æ¹ýµéÀÌ ³ª¿É´Ï´Ù. µµ¿ò¸»¿¡ ¿¹Á¦µµ ÀÖÀ¸´Ï±î ±×°É Çѹø ÂÞ¿í ÈȾ¸é ½±°Ô ÀÌÇØ°¡ °¡°ÚÁö¿ä?
±×·³ ³»ÀÏ °è¼ÓÇϵµ·Ï ÇÏ°Ú½À´Ï´Ù.

[ÀÌÀü °­ÁÂ]     [´ÙÀ½ °­ÁÂ]


dolljong@gmail.com