Excel VBA, AutoCAD ActiveX ¸Àº¸±â °ÁÂ(20) |
AutoCAD °³Ã¼ÀÇ ±¸¼º
¾îÁ¦´Â AutoCAD°³Ã¼ Áß ¸î°³¸¦ Å×½ºÆ®Çغ¸¾Ò½À´Ï´Ù. Å×½ºÆ®Çغ¼ ¶§ Á÷Á¢½ÇÇàâÀ» »ç¿ëÇϸé Âü ÆíÇÕ´Ï´Ù. subÀ¸·Î ¸¸µé¾î¼ ÇÏ·Á¸é ¹ø°Å·ÓÁÒ.. ¿À´ÃÀº ÀÌ AutoCADÀÇ °³Ã¼´Â ¾î¶»°Ô
±¸¼ºµÇ¾îÀÖ´ÂÁö ¾Ë¾Æº¸µµ·Ï ÇÏ°Ú½À´Ï´Ù. AutoCADÀÇ °³Ã¼¿¡ ´ëÇؼ °¡Àå Àß ¾Ë·ÁÁÙ¸¸ÇÑ »ç¶÷ÀÌ °ú¿¬ ´©±¼±î¿ä? ¾î¶²ÀÌ°¡ °¡Àå Àß ¾Ë°í ÀÖÀ»±î¿ä? ¹°·Ð..
AutoCAD¸¦ ¸¸µç »ç¶÷µéÀÔ´Ï´Ù. ÇÏÁö¸¸ ±×»ç¶÷µé¿¡°Ô Á÷Á¢ Áú¹®Àº ÇÒ ¼ö ¾ø°í.. °¡Àå ÁÁÀº ¹æ¹ýÀº ±× »ç¶÷µéÀÌ ¸¸µé¾îµÐ helpÆÄÀϵéÀ» µÚÁ®º¸´Â °ÍÀÔ´Ï´Ù.
Á¦´Â help´Â ¾î¼¸é ÇÁ·Î±×·¥ ÀÚüº¸´Ù ´õ Áß¿äÇÒÁöµµ ¸ð¸¥´Ù°í »ý°¢ÇÏ´Â »ç¶÷Àä.. ÇÏµå µð½ºÅ© ÇÑÆí¿¡¼ µ¹¾Æ´Ù´Ï´Â ÇÁ·Î±×·¥ *.exe¸¸ ÀÖ°í ¸Þ´º¾óµµ
¾ø´Â ÇÁ·Î±×·¥Àº ÇÁ·Î±×·¥ÀÌ ¾Æ´Ï¶ó ±×³É ¾²·¹±âÅë¿¡ ºÒ°úÇÑ °ÍÀÌ°ÚÁö¿ä. ±×·¡¼ Àú´Â ÇÁ·Î±×·¥À» ¸¸µå´Â ½Ã°£º¸´Ù ¸Þ´º¾óÀ» ¸¸µå´Âµ¥ ´õ °øÀ» µéÀÌ´Â
°Í °°½À´Ï´Ù.
¾ÏÆ° °¢¼³ÇÏ°í helpÆÄÀÏÀ» µÚÁ®º¸µµ·Ï ÇÏ°Ú½À´Ï´Ù. ijµå¿¡¼ help¸Þ´º¸¦ ¼±ÅÃÇϰųª F1À» ´·¯¼ help¸¦ ¶ç¿ì¸é ¾Æ·¡¿Í °°Àº Ç׸ñÀÌ ³ª¿Ã°ÍÀÔ´Ï´Ù.
ÀÌÁß¿¡¼ VBA & ActiveX AutomationÀ» ¼±ÅÃÇÕ´Ï´Ù.
AutoCAD¹öÁ¯¿¡ µû¶ó Á¶±Ý¾¿ Â÷ÀÌ°¡ ÀÖÀ» ¼ö ÀÖÁö¸¸ ¾Æ¸¶µµ ºñ½ÁÇÑ ±¸¼ºÀ» °¡Áö°í ÀÖÀ» °ÍÀ̶ó »ý°¢µË´Ï´Ù. VBAÇ׸ñÀ» ¼±ÅÃÇÏ¸é »õ·Î¿î help°¡ ¶ß°ÔµÇ´Âµ¥
ÀÌ°ÍÀº AutoCAD ActiveX»Ó¸¸ ¾Æ´Ï¶ó Visual LISPµµ Æ÷ÇÔÇÏ´Â AutomationÀü¹Ý¿¡ °üÇÑ helpÆÄÀÏÀÎ °Í °°½À´Ï´Ù. ¿©±â¼ ¿ì¸®°¡ ã¾Æº¸¾Æ¾ß ÇÒ Ç׸ñÀº ¾Æ·¡
±×¸²Ã³·³ ActiveX & VBA reference¾Æ·¡ÀÇ object modelÀÔ´Ï´Ù.
±×·¯¸é AutoCADÀÇ object¸ðµ¨À» ¸ð¿©ÁÝ´Ï´Ù.
AutoCADÀÇ ¸ðµç °³Ã¼ÀÇ ±¸¼ºÀ» ÇÑ´«À¸·Î º¸¿©Áִ ȸéÀε¥ ±×¸²ÀÌ Á»Ä¿¼ ²Ë Â÷´Â±º¿ä. Àß º¸ÀÏ·±Áö ¸ð¸£°Ú½À´Ï´Ù. ½ºÅ©·Ñ¹Ù¸¦ ÀÌ¿ëÇؼ Çѹø ÂÞ¿í ÈȾî
º¸¼¼¿ä.. ¸Ç ¾Æ·¡ÀÇ regend¸¦ ¸ÕÁ®º¸´Â °ÍÀÌ ÁÁÀ» °Í °°½À´Ï´Ù. ¸ð¾ç¿¡ ÀÖ¾î¼ ³×¸ð³°ÍÀº collectionÀÌ°í Æ®·¢ÇüÀº object¶ó°í µÇ¾îÀÖ½À´Ï´Ù. collectionÀº
¸» ±×´ë·Î ¾î¶² °ÍµéÀÌ ¸ðÀÎ °ÍÀÌ°ÚÁÒ. ¿¹¸¦ µéÀÚ¸é document¶ó´Â ³à¼®ÀÌ Àִ°¡Çϸé documents¶ó´Â ³à¼®ÀÌ ÀÖ½À´Ï´Ù. µÑ´Ù document°°Àºµ¥ Çѳ༮Àº
s°¡ ºÙ¾îÀÖ°í ³×¸ð¹Ú½º·Î ½×¿©ÀÖ°í Çѳ༮Àº Æ®·¢¾È¿¡ µé¾î°¡ ÀÖ½À´Ï´Ù. °á±¹ "documents´Â documentÀÇ ÁýÇÕÀÌ´Ù"¶ó´Â °ÍÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù.
layers¶ó´Â ³à¼®µµ ¸¶Âù°¡Áö·Î layer¸¦ °Å´À¸®°í ÀÖ½À´Ï´Ù. ±×·¸´Ù¸é ÇöÀç ¿·ÁÀÖ´Â ÆÄÀÏ¿¡ layer°¡ ¸î°³ ÀÖ´ÂÁö¸¦ ¾Ë·Á¸é ¾î¶»°Ô ÇؾßÇÒ±î¿ä?
¿ØÁö count¶ó´Â ¼Ó¼ºÀ» »ç¿ëÇÏ¸é µÉ°Í °°Áö¿ä? ±×·¸´Ù¸é ¾î¶² °³Ã¼¿¡´Ù count¸¦ Àû¿ë½ÃÅ°¸é µÉ±î¿ä? Á¦ÀÏ »óÀ§ °³Ã¼ºÎÅÍ Â÷±ÙÂ÷±Ù µû¶ó°¡º¸¸é..
ÀÏ´Ü getobject(."autocad.application")Àº ´ç¿¬È÷ ÀÖ¾î¾ß°ÙÁö¿ä? ±×´ÙÀ½¿¡ ÇöÀç È°¼ºÈµÈ dwgÆÄÀÏÀ» ¼±ÅÃÇؾ߰ÚÁÒ? activedocument·Î¿ä.. ±×·¯¸é
getobject(."autocad.application").activedocument ±îÁö µÇ¾ú½À´Ï´Ù. ¿©±â¼ Àá½Ã À§ÀÇ ±¸¼ºµµ¸¦ º¸µµ·ÏÇÏÁö¿ä. layers collectionÀº ¹Ù·Î document°³Ã¼
¾Æ·¡¿¡ ÀÖ½À´Ï´Ù. µû¶ó¼ getobject(."autocad.application").activedocument.layesÇϸé layers collection¿¡ Á¢±ÙÀÌ °¡´ÉÇÏ°ÚÂî¿ä? ±×´ÙÀ½¿¡ ¹Ù·Î count
¼Ó¼ºÀ» »ç¿ëÇϸé ÇöÀç ¿·ÁÀÖ´Â ÆÄÀÏ¿¡ Á¤ÀÇµÈ layerÀÇ °¹¼ö¸¦ ¾Ë¾Æ³¾ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. ¾Æ·¡ ±×¸²Ã³·³ ¸»ÀÌÁÒ..
±×·¸´Ù¸é ù¹ø° ·¹À̾îÀÇ À̸§Àº ¹«¾ùÀϱî¿ä? name¼Ó¼ºÀ» ÀÌ¿ëÇÏ¸é µÉ °Í °°´Ù´Â ´À³¦ÀÌ ÆÅ! ¿À½ÃÁÒ? ±×·¸´Ù¸é °³Ã¼°¡ ¹®Á¦Àε¥.. layers collection
Áß¿¡¼ ù¹ø° layer¸¦ Âó¾î³»¾ß Çϴµ¥... ¾î¶»°Ô ÇϸéµÉ±î¿ä? ¾ó¸¶Àü¿¡ itemÀ̶õ ¸Þ¼µå¿¡ ´ëÇؼ ¸»¾¸µå¸° ÀûÀÌ ÀÖ¾úÁö¿ä? ¿©·¯°³ÀÇ °³Ã¼Áß Æ¯Á¤¹ø°
°³Ã¼¸¦ µ¹·ÁÁÖ´Â ¸Þ¼µåÀÔ´Ï´Ù. layers collection¿¡µµ ¾î±è¾øÀÌ ÀÌ item¸Þ¼µå¸¦ Áö¿øÇÏ°í ÀÖ½À´Ï´Ù. layers collection¸¦ ¸¶¿ì½º·Î Ŭ¸¯Çغ¸¸é layer
collection¿¡ ´ëÇÑ µµ¿ò¸»À» º¼ ¼ö Àִµ¥, item¸Þ¼µå°¡ ÀÖ´Â °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. µµ¿ò¸»À» Çѹø º¸µµ·ÏÇϱ¸¿ä. ÇöÀç ¿·ÁÀÖ´Â dwgÆÄÀÏ¿¡ Á¤ÀǵÈ
layerÁß ´Ù¼¸¹ø° layerÀÇ À̸§Àº ¾Æ·¡¿Í °°ÀÌ È®ÀÎ ÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.
basic¿¡¼´Â ±âº»ÀûÀ¸·Î ù¹ø° ¿ä¼Ò´Â 0ÀÔ´Ï´Ù. Áï ù¹ø° ¿ä¼Ò´Â layers.item(1)À¸·Î Á¢±ÙÇÏ´Â°Ô ¾Æ´Ï¶ó layers.item(0)À¸·Î Á¢±ÙÇÏÁÒ. ±×¸®°í itemÀ̶õ
¸Þ¼µå ´ë½Å¿¡ layers(0)°ú °°ÀÌ Á÷Á¢ Á¢±Ùµµ °¡´ÉÇÕ´Ï´Ù. layers(0)°ú layers.item(0)Àº °°Àº ¶æÀÔ´Ï´Ù. ¾Æ·¡±×¸²Ã³·³ ¸»ÀÌÁÒ.
¿À´ÃÀº AutoCAD °³Ã¼ÀÇ ±¸¼º¿¡ ´ëÇؼ ¾Ë¾Æº¸¾Ò½À´Ï´Ù. ³»ÀϺÎÅÍ´Â »õ·Î¿î ¿£Æ¼Æ¼¸¦ ¸¸µé°í ¼öÁ¤ÇÏ´Â º»°ÝÀûÀÎ AutoCAD Activex·Î µé¾î°¡µµ·Ï ÇÏ°Ú½À´Ï´Ù.
[ÀÌÀü °ÁÂ]
[´ÙÀ½ °ÁÂ]
|