ID:
PW:

     0 ºÐ
     28 ºÐ

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

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


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

Entity¼öÁ¤Çϱâ

Áö³­¹ø °­Á¿¡¼­ µµ±¸/ÂüÁ¶¿¡¼­ AutoCAD type library¸¦ Ãß°¡ÇØÁÜÀ¸·Î¼­ ºñ·Î¼Ò AutoCAD¿Í ExcelVBA°¡ ¿ÏÀüÈ÷ ¿¬°áµÇ¾ú´Ù°í ¼³¸íµå·È´Âµ¥¿ä. ±×·¸´Ù¸é ÀÌ·¸°Ô ÂüÁ¶¸¦ ÇÏ´Â °Í°ú ¾ÈÇÏ´Â °ÍÀÇ Â÷ÀÌ´Â ¾î¶² °ÍÀÌ ÀÖÀ»±î¿ä? ÀÏ´Ü AutoCADÀÇ °³Ã¼¸¦ »ç¿ëÇÏ´õ¶ó°í ¸í½ÃÀûÀ¸·Î »ç¿ëÇϱ⠶§¹®¿¡ ¿©·¯ÀÕÁ¡ÀÌ ÀÖ½À´Ï´Ù. ÂüÁ¶¿¡¼­ AutoCAD type library¸¦ Ãß°¡ÇÑ ´ÙÀ½¿¡ ¾Æ·¡¿Í °°ÀÌ ÄÚµùÀ» Çغ¸µµ·Ï ÇÏ°Ú½À´Ï´Ù. mspace¶ó°í ÀÔ·ÂÇÑ ´ÙÀ½¿¡ as ÇÏ°í ºóÄ­ÀÏ ÀÔ·ÂÇÒ ¶§ ÀÚµ¿À¸·Î Æ˾÷â Çϳª°¡ ¶å´Ï´Ù.
  
ÇöÀç ÀÔ·ÂÇÏ°í ÀÖ´Â ºÎºÐ¿¡ µé¾î°¥ ¼ö ÀÖ´Â °ÍµéÀ» ¾Ë·ÁÁִ âÀÔ´Ï´Ù. ÇöÀç´Â º¯¼ö¸¦ ¼±¾ðÇÏ°í ÀÖ°í, as¶ó°í ÀÔ·ÂÇÑ ´ÙÀ½À̱⠶§¹®¿¡ º¯¼öÇüŵéÀÌ ³ª¿É´Ï´Ù. ÀÌâÀº VB¸¦ ÄÚµùÇÏ´Â µ¥ ¸¹Àº µµ¿òÀÌ µÇ´Âµ¥, ±× ¸¹Àº ¼Ó¼º°ú ¸Þ¼­µåµéÀ» ´Ù ¿Ü¿ï ¼ö ¾ø±â ¶§¹®¿¡ ÇöÀç ÀÔ·ÂÁßÀÎ ±¸¹®¿¡ °¡´ÉÇÑ º¯¼öÇüÅÂ, ¸Þ¼­µå, ¼Ó¼ºµîÀ» ³ª¿­ÇØÁÖ°í °ñ¶ó ¾µ ¼ö ÀÖ°Ô ÇØÁִ âÀÔ´Ï´Ù.
¿ÞÂÊ ±×¸²ÀÌ AutoCAD type library¸¦ ÂüÁ¶ÇßÀ» °æ¿ìÀÌ°í ¿À¸¥ÂÊ ±×¸²ÀÌ ÂüÁ¶ÇÏÁö ¾Ê¾ÒÀ» ¶§ÀÔ´Ï´Ù. ¾î¶²°¡¿ä? ÂüÁ¶ÇÑ °æ¿ì¿¡´Â AutoCAD¿Í °ü·ÃµÈ º¯¼öÇüŵéÀÌ ³ª¿­µË´Ï´Ù. ÇÏÁö¸¸ ¿À¸¥ÂÊ ±×¸²Àº ÀϹÝÀûÀÎ VB¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Â º¯¼öÇüŵéÀÌ ¶å´Ï´Ù.
¿ì¸®´Â Áö±Ý mspace¶õ À̸§À» °¡Áø º¯¼ö´Â model space°³Ã¼À̶ó°í ¸í½ÃÀûÀ¸·Î ¼±¾ðÇÏ°í ½Í½À´Ï´Ù. ¹°·Ð ¾Õ¼± °­Á¿¡¼­¿Í °°ÀÌ objec·Î Çصµ µÇÁö¸¸ È®½ÇÈ÷ Çϸé ÀÌÁ¡ÀÌ ¸¹±â ¶§¹®¿¡ ÀÌ·¸°Ô ¸í½ÃÀûÀ¸·Î model space°³Ã¼¶ó´Â °ÍÀ» ¼±¾ðÇÏ´Â °ÍÀÔ´Ï´Ù. ¸ñ·ÏÁß¿¡¼­ ¾Æ·¡ ±×¸²°ú °°ÀÌ Acadmodelspace¸¦ ã¾Æ¼­ ¼±ÅÃÇØÁÝ´Ï´Ù.


¾î¶²°¡¿ä? ¾ÆÁÖ °£´ÜÇÏÁö¿ä? ÀÌ·¸°Ô ÂüÁ¶¸¦ Çسõ°í »ç¿ëÇÏ¸é ½Ç¼ö¸¦ ÇÒ È®·üµµ ÁÙÀÏ ¼ö ÀÖ½À´Ï´Ù. ¹°·Ð acadmodelspace¶ó°í Á÷Á¢ÀÔ·ÂÇصµ µË´Ï´Ù. °°Àº ¿ä·ÉÀ¸·Î cobj¶ó´Â ÀϹÇÀ¸·Î Acadcircle objectµµ Çϳª ¼±¾ðÇϵµ·Ï ÇÕ´Ï´Ù. ±×·¯¸é ¾Æ·¡¿Í °°ÀÌ µÉ °ÍÀÔ´Ï´Ù.

Sub text()
  acad As Object
  mspace As AcadModelSpace
  cobj As AcadCircle
End Sub

´«¿©°Ü º¸½Ã¸é ¾Æ½Ã°ÚÁö¸¸ type library¿¡ Á¤ÀÇµÈ º¯¼öÇüŵéÀº ´ë¹®ÀÚ¿Í ¼Ò¹®ÀÚ¸¦ ¼¯¾î°¡¸é¼­ Ç¥½ÃµÇ±â ¶§¹®¿¡ ÀбⰡ ½±°í »ç¿ëÀÚ°¡ ŸÀÌÇÎÇÑ°Í°ú ½±°Ô ±¸ºÐÀÌ µË´Ï´Ù. °è¼ÓÇؼ­ AutoCAD¿Í ¿¬°áÇÏ°í circleÇϳª¸¦ ±×¸®´Â ÄÚµùÀ» ÇÕ´Ï´Ù. ¾Õ°­ÁµéÀ» º¸½ÅºÐÀº ¹«³­È÷ Çسª½Ã¸®¶ó »ý°¢µË´Ï´Ù.

Sub test()

  acad As Object
  mspace As AcadModelSpace
  Dim cobj As AcadCircle
  
  Dim c(2) As Double
  Dim r As Double
  
  c(0) = 0: c(1) = 0: c(2) = 0
  r = 10

  Set acad = GetObject(, "Autocad.application")
  Set mspace = acad.ActiveDocument.ModelSpace
  Set cobj = mspace.AddCircle(c, r)  
End Sub

¿©±â ±îÁö°¡ modelspaceÀÇ 0,0,0ÁÂÇ¥¿¡ ¹ÝÁö¸§ 10ÀÎ ¿øÀ» Ãß°¡ÇÏ´Â ÄÚµåÀÔ´Ï´Ù. À§Äڵ带 ÀÔ·ÂÇÒ ¶§µµ »óȲ¿¡ µû¶ó popupâÀÌ ¶°¼­ ±æÀ» ÀÒÁö ¾Êµµ·Ï ±æÀ» ÀεµÇØÁÝ´Ï´Ù. Set cobj = mspace.¶ó°í Ä¡¸é mspace¿¡ »ç¿ë°¡´ÉÇÑ ¸Þ¼­µå,¼Ó¼ºµéÀÌ ³ª¿­µË´Ï´Ù. ¾Æ·¡ ±×¸²Ã³·³¿ä.



addcircleÀ» ¼±ÅÃÇÏ°í (¸¦ ÀÔ·ÂÇϸé addcircle¿¡ ÇÊ¿äÇÑ ÀÎÀÚµéÀÇ ¼³¸íÀÌ ³ª¿É´Ï´Ù. ¾Æ·¡±×¸²Ã³·³ Ä£ÀýÇÏ°Ô center¿Í radius°¡ ÇÊ¿äÇÏ´Ù°í ¾Ë·ÁÁÝ´Ï´Ù.



±×¸®°í ÇÑ°³´õ circleÀ» Ãß°¡Çϵµ·Ï ÇÕ´Ï´Ù, µÎ¹øÀç circleÀº À§Ä¡¸¦ 30,0,0À» ¿øÁ¡À¸·Î ÇÏ´Â r=10ÀÎ »¡°£»ö ¿øÀ» ±×·Áº¸µµ·Ï ÇÏ°Ú½À´Ï´Ù.

Sub test()

  acad As Object
  mspace As AcadModelSpace
  Dim cobj As AcadCircle
  
  Dim c(2) As Double
  Dim r As Double
  
  c(0) = 0: c(1) = 0: c(2) = 0
  r = 10

  Set acad = GetObject(, "Autocad.application")
  Set mspace = acad.ActiveDocument.ModelSpace
  Set cobj = mspace.AddCircle(c, r)  
  c(0) = 30: c(1) = 0: c(2) = 0
  r = 10
  Set cobj = mspace.AddCircle(c, r)    
  
End Sub

¿©±â±îÁö °¡ ¿øÁ¡ 0,0,0°ú 30,0,0¿¡ r=10ÀÎ ¿øÀ» ±×¸®´Â ÄÚµåÀÔ´Ï´Ù. µÎ¹ø° ±×¸° ¿øÀº »öÀ» »¡°£»öÀ¸·Î ÇÏ°í ½Í´Ù¸é ¾î¶»°Ô ÇÒ±î¿ä? ¹°·Ð ÇöÀçÄ÷¯¸¦ »¡°£»öÀ¸·Î ¹Ù²Ù°í ³­´ÙÀ½¿¡ addcircleÀ» ½ÇÇàÇÏ¸é »¡°£»ö ¿øÀÌ ¸¸µé¾îÁöÁö¸¸ ¿©±â¼­´Â addcircleÀÌ µ¹·ÁÁØ object¸¦ ¼±ÅÃÇÏ¿© color¼Ó¼ºÀ» ¹Ù²ã¼­ »öÀ» ¹Ù²Ù¾îº¸µµ·Ï ÇÏ°Ú½À´Ï´Ù.
ÀÏ´Ü cobj´Â AcadCircle object·Î ¼±¾ðµÇ¾îÀֱ⠶§¹®¿¡ »õÁÙÀÇ Ã³À½¿¡ cobj.À» ÀÔ·ÂÇϸé AcadCircle object¿¡ Àû¿ëÇÒ ¼ö ÀÖ´Â ¸Þ¼­µå¿Í ¼Ó¼º ¸ñ·ÏµéÀÌ ³ªÅ¸³³´Ï´Ù. ÀÌÁß¿¡¼­ »öÀ» ¹Ù²Ù´Â ¼Ó¼ºÀ» ¼±ÅÃÇÏ¸é µÇ°ÚÁö¿ä? cobj.À» ÀÔ·ÂÇßÀ» ¶§ ¾Æ·¡±×¸²°ú °°ÀÌ ¸Þ¼­µå¿Í ¼Ó¼ºµéÀÌ ³ªÅ¸³³´Ï´Ù. ÀÌÁß¿¡¼­ color¸¦ ¼±ÅÃÇÏ°í =À» ÀÔ·ÂÇÏ¸é »öÀ» ¼±ÅÃÇÒ ¼ö ÀÖ´Â ¸ñ·ÏÀÌ ³ªÅ¸³³´Ï´Ù.

  

±×·¡¼­ ¼±ÅÃµÈ °³Ã¼ÀÇ »ö¼Ó¼ºÀ» »¡°£»öÀ¸·Î ¹Ù²Ù´Â ÄÚµåÀÎ cobj.Color = acRed¸¦ Ãß°¡ÇÏ¸é »¡°£»ö ¿ø±×¸®±â°¡ ¿Ï¼ºµÈ °ÍÀÔ´Ï´Ù. VB editor°¡ ÇÁ·Î±×·¥À» ¸¸µå´Â »ç¶÷µéÀÌ ±æÀ» ÀÒ±â ¾Ê°Ô Àß ÀεµÇÏ°í ÀÖ´Â °ÍÀ» º¼ ¼ö ÀÖ½À´Ï´Ù. ¿¹ÀüÀÇ µµ½ºÇÁ·Î±×·¥½ÃÀýÇÏ°í´Â ³Ê¹«³ª ´Ù¸¥ ȯ°æÀÌÁö¿ä?
ÀÌ·± ÀÏÀÌ °¡´ÉÇÑ ÀÌÀ¯´Â? ¹°·Ð ?AutoCAD type library¸¦ ÂüÁ¶Ç߱⠶§¹®¿¡ °¡´ÉÇÕ´Ï´Ù. »ç½Ç acRed¶ó´Â °ÍÀº AutoCAD type library¿¡ ¼±¾ðµÇ¾îÀÖ´Â »ó¼öÀÔ´Ï´Ù. ¾Æ¸¶µµ const acRed = 1À̶ó°í ¼±¾ðµÇ¾îÀÖÀ» °ÍÀÔ´Ï´Ù. »ç½Ç acRedÀÇ °ªÀº 1ÀÔ´Ï´Ù. ÇÏÁö¸¸ 1À̶ó°í ¾²´Â °Íº¸´Ù´Â acRed¶ó°í ¾²´Â °ÍÀÌ ÈξÀ ´õ ÀÌÇØÇϱ⠽±½À´Ï´Ù. Á¤¸» acRed°¡ 1À̶ó´Â ¼ý°¡Àϱî¿ä? Å×½ºÆ®¸¦ Çغ¸½Ã¸é µË´Ï´Ù. Á÷Á¢½ÇÇàâ¿¡¼­ ?acRed¶ó°í ÀÔ·ÂÇغ¸¼¼¿ä..¾Æ·¡±×¸²°ú °°Àº °á°ú¸¦ º¸¿©ÁÙ °ÍÀÔ´Ï´Ù. ¸¸ÀÏ ¿À¸¥ÂÊ ±×¸²°°ÀÌ ¾Æ¹« º¯È­°¡ ¾ø´Ù¸é AutoCAD type library¸¦ ÂüÁ¶ÇÏÁö ¾Ê¾Ò±â ¶§¹®ÀÏ °ÍÀÔ´Ï´Ù.
ÀÌÁ¦ ¿Ö Á¦°¡ "AutoCAD type library¸¦ ÂüÁ¶ÇßÀ» ¶§ ºñ·Î¼Ò Excel°ú AutoCAD°¡ ¿ÏÀüÈ÷ ¿¬°áµÈ °ÍÀ̶ó"¶ó°í À̾߱â ÇÑ ÀÌÀ¯¸¦ Àß ¾Æ½Ã°ÚÁÒ?

  

±×·³ ³»ÀÏ °è¼ÓÇϵµ·Ï ÇÏ°Ú½À´Ï´Ù.

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


dolljong@gmail.com