Excel VBA, AutoCAD ActiveX ¸Àº¸±â °ÁÂ(19) |
AutoCAD °³Ã¼ ¸Àº¸±â
¾îÁ¦±îÁö ÇÑ AutoCAD¿ÍÀÇ ¿¬°áÁß¿¡¼ °¡ÀåÁß¿äÇÑ ³»¿ëÀº ¿ª½Ã set acad = getobject(,"autocad.application") ¹®ÀÔ´Ï´Ù. acad¶ó´Â º¯¼ö(objectÇü)¿¡
autoCAD¸¦ Àâ¾Æ ³Ö´Â ¹®ÀåÀÌ¿´Áö¿ä. ÀÌÁ¦ acad¶ó´Â ³à¼®Àº °ð AutoCAD°¡ µÇ´Â °ÍÀÔ´Ï´Ù.
ÇÁ·Î±×·¥À» ¸¸µé¾îº¸±â Àü¿¡ Á÷Á¢½ÇÇàâ¿¡¼ ÀÌ°Í Àú°Í Å×½ºÆ®¸¦ Çغ¸µµ·ÏÇÏÁÒ. ¿ª½Ã ÇÁ·Î±×·¥À» ¸¸µå´Â °Íº¸´Ù °£´ÜÇÏ°Ô Å×½ºÆ®ÇÏ´Â °ÍÀº Á÷Á¢½ÇÇàâÀÌ
ÃÖ°íÀÔ´Ï´Ù. Á÷Á¢½ÇÇàâÀ» ¶ç¿ì°í ¾Æ·¡ ±×¸²°ú °°ÀÌ ÀÔ·ÂÇغ¸¼¼¿ä. ¾î¶² °á°ú°¡ ³ª¿À´ÂÁö¿ä?
¹°·Ð AutoCAD°¡ ½ÇÇàµÇ¾îÀÖ´Â »óÅ¿¡¼ Çغ¸¾Æ¾ß°ÚÁö¿ä? Á¤»óÀûÀÎ µ¿ÀÛÀº ¾Æ·¡±×¸²Ã³·³ ³ª¿ÔÀ» °ÍÀÔ´Ï´Ù.
¿ì¸®°¡ ÀÔ·ÂÇÑ ³»¿ë¿¡ ´ëÇؼ ¶â¾îº¸¸é.. ?getobject(,"AutoCAD.application").name Àε¥.. ?´Â print¹®ÀÔ´Ï´Ù. ¸¶Áö¸·¿¡ nameÀ̶ó´Â °ÍÀº ¾Æ¹«·¡µµ
nameÀ̶ó´Â ¼Ó¼ºÀÌ ÀÖ´Â ¸ð¾çÀ̳׿ä. getobject·Î AutoCAD¸¦ Àâ¾Æ¼ ±× À̸§À» º¸¿©ÁÖ¶ó´Â °ÍÀ̾úÁÒ. °á±¹ À̸§Àº AutoCAD¶ó°í °á°ú¸¦
º¸¿©ÁÖ°í ÀÖ½À´Ï´Ù.
¸î°¡Áö ´õ Çغ¸µµ·Ï ÇÒ±î¿ä? ¾Æ·¡¿Í °°ÀÌ ÀÔ·ÂÇغ¾´Ï´Ù.
¾î¶²°¡¿ä? ´ëÃæÀº °¨ÀÌ ¿ÀÁö¿ä? Excel¿¡¼ activesheet°¡ ÀÖµíÀÌ AutoCAD¿¡´Â activedocument¶ó´Â ¼Ó¼ºÀÌ ÀÖ´Â ¸ð¾çÀÌÁö¿ä? ±×¸®°í ±× document¿¡´Â
nameÀ̶õ ¼Ó¼ºÀÌ Àִ°¡º¾´Ï´Ù. °á±¹ getobject(,"AutoCAD.applicaton").activedocument ´Â drawing1.dwg¶ó´Â ÇöÀç È°¼ºÈ µÇ¾îÀÖ´Â dwgÆÄÀÏÀ» °¡¸£Å²´Ù´Â
°ÍÀ» ¾Ë¼ö ÀÖ½À´Ï´Ù. activedocument°¡ ÇöÀç ÆÄÀÏÀ̶ó¸é ±×³à¼® ¾Æ·¡¿¡ ÀÖ´Â ¸ðµç objectµé¿¡ Á¢±ÙÇÒ ¼ö ÀÖÀ» °Í °°Àº ´À³¦ÀÌ µì´Ï´Ù.
°£´ÜÇÏ°Ô Å×½ºÆ®Çغ¸µµ·ÏÇÒ±î¿ä? ACAD¿¡¼ lineÇÑ°³¿Í circleÇÑ°³¿Í textÇÑ°³¸¦ ±×·Áº¸µµ·ÏÇÏ°Ú½À´Ï´Ù. Àú´Â ¾Æ·¡¿Í °°Àº ±×¸²À» ±×·Áº¸¾Ò½À´Ï´Ù.
±×¸®°í Á÷Á¢½ÇÇàâ¿¡¼ ¾Æ·¡¿Í °°ÀÌ ÀÔ·ÂÇغ¸µµ·Ï ÇÏ°Ú½À´Ï´Ù.
modelspace¶ó´Â ³à¼®ÀÌ Á» »ý¼ÒÇÏÁö¿ä? ijµå¸¦ óÀ½ ¹è¿ï¶§¸¦ ¶°¿Ã¸®½Ã¸é ijµå¿¡´Â model space¿Í paper space°¡ ÀÖ´Ù´Â °ÍÀÌ ¾î·ÅDzÀÌ ±â¾ï³ª½Ç °ÍÀÔ´Ï´Ù.
±â¾ïÀÌ ¾È³ªµµ ±¦Âú±¸¿ä. model space¿¡ ±×¸° µµ¸éÀ» paper space¿¡ ¿øÇÏ´Â view·Î Àç ¹èÄ¡ÇÒ ¼ö ÀÖÁö¿ä? ¿ì¸®´Â ´ëºÎºÐ modelspace¿¡ ±×¸²À» ±×¸³´Ï´Ù.
°á±¹ modelspace´Â drawing1.dwg¶õ À̸§À» °¡Áø activedocument¾Æ·¡¿¡ ÀÖ´Â °³Ã¼¶ó´Â °ÍÀ» ÁüÀÛÇÏ½Ç ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. ´ëºÎºÐÀÇ objectµéÀº ÀÌ ¾Æ·¡¿¡
ÀÖÀ» °ÍÀÔ´Ï´Ù. ÀÌ modelspace¿¡ ÀÖ´Â entityÀÇ °¹¼ö°¡ ¸î°³Àϱî? ¶ó°í ¹°¾îº¸´Â ¹®ÀåÀÌ ¹Ù·Î À§¿¡¼ ÀÔ·ÂÇÑ ?getobject(,"autocad.application").activedocument.modelspace.count
ÀÎ °ÍÀÔ´Ï´Ù. count¶õ ¼Ó¼ºÀº ¾ÈºÁµµ ºñµð¿ÀÁÒ?
ÀÌÁ¦ ¾î´ÀÁ¤µµ autocadÀÇ object¿¡ Á¢±ÙÇÏ´Â ¹æ¹ýÀ» ¾Ë°Ô µÇ¾ú½À´Ï´Ù. µüÇÑ°¡Áö¸¸ ¿¬½ÀÇغ¸±â·Î ÇÏ°Ú½À´Ï´Ù. À̹ø¿¡´Â itemÀ̶õ ¸Þ¼µå¸¦ »ç¿ëÇغ¸µµ·Ï ÇÏ°Ù½À´Ï´Ù.
itemÀ̶õ ¸Þ¼µå´Â ¾î´À objectÀÇ ÇÏÀ§ object¿¡ Á¢±ÙÇÏ´Â ¹æ¹ýÀε¥ ±× ¼ø¹øÀ» ÀÌ¿ëÇؼ Á¢±ÙÇÕ´Ï´Ù.
¾Õ¿¡¼ ÀÔ·ÂÇÑ ¹®ÀåÀ» ´ÙÀ½°ú °°ÀÌ °íÄ¡Ãļ ?getobject(,"autocad.application").activedocument.modelspace.item(0).objectnameÀ̶ó°í ÀÔ·ÂÇϸé.. ´ÙÀ½±×¸²°ú °°ÀÌ modelspace¾È¿¡ Àִ ù¹ø°
objectÀÇ À̸§À» º¸¿©ÁÝ´Ï´Ù. item¸Þ¼µåÀÇ ±â´ÉÀ» ´ëÃæ ¾Æ½Ã°ÚÁÒ?
ÀÌÁ¦ modelspace¿¡ ¼¼°³ÀÇ entity°¡ ÀÖ´Ù´Â °ÍÀ» ¾Ë¾Ò°í item¸Þ¼µå¸¦ ÀÌ¿ëÇÏ¿© °¢ object¿¡ Á¢±ÙÇÏ´Â ¹æ¹ýÀ» ¾Ë¾ÒÀ¸´Ï for¹®À» ÀÌ¿ëÇÏ¿© °¢ entityÀÇ
À̸§À» Ãâ·ÂÇØÁÖ´Â °£´ÜÇÑ ÇÁ·Î±×·¥À» ¸¸µé¾îº¼±î¿ä? sub·Î ¸¶µéÁö¸»°í Á÷Á¢½ÇÇàâ¿¡¼ Çغ¸µµ·Ï ÇÏÁö¿ä. ¾Æ·¡±×¸²ÀÇ Ã¹ÁÙ°ú °°ÀÌ ÀÔ·ÂÇÏ°í enter¸¦
Ä¡¸é modelspace¿¡ ÀÖ´Â 3°³ entityÀÇ À̸§µéÀ» º¸¿©ÁÝ´Ï´Ù.
VB¿¡¼ :´Â ¿©·¯ÁÙÀ» ÇÑÁÙ¿¡ Ç¥½ÃÇÒ¶§ ÁÙÀ» ±¸ºÐÇÏ´Â ±¸ºÐÀÚÀÔ´Ï´Ù. Á÷Á¢½ÇÇàâ¿¡¼´Â ÇÑÁÙ¹Û¿¡ ÀÔ·Â
¸øÇϱ⠶§¹®¿¡ ±¸ºÐÀÚ·Î ±¸ºÐÇؼ ¼¼ÁÙÀ» ÀÔ·ÂÇÑ °ÍÀÔ´Ï´Ù.
¿À´ÃÀº ¿©±â±îÁö ÇÏ°í ³»ÀϺÎÅÍ´Â »õ·Î¿î ¿£Æ¼Æ¼¸¦ ¸¸µé°í ¼öÁ¤ÇÏ´Â º»°ÝÀûÀÎ AutoCAD Activex·Î µé¾î°¡µµ·Ï ÇÏ°Ú½À´Ï´Ù.
[ÀÌÀü °ÁÂ]
[´ÙÀ½ °ÁÂ]
|