ä»æ¥ãAutoCADã人é掻åã®å€ãã®åéã§äœ¿çšãããŠããæã人æ°ã®ããCADã·ã¹ãã ã§ããããšã¯åšç¥ã®äºå®ã§ãã åºæ¬çãªäŸçµŠã§ã¯ãéåžžã®æ段ã®ã¿ã䜿çšããŠãããããç®çã®æç»äœæ¥ãå®è¡ã§ããŸãã
ãã ããåºæ¬æ§æã®ã°ã©ãã£ãã¯ã¹ã³ã¢ãšããŠã®çŽç²ãªAutoCADã¯ããã®é¢é£æ§ãåŸã
ã«å€±ãããŠããŸãã ããã¯ããŠãŒã¶ãŒããµããžã§ã¯ããšãªã¢ã®çžäºæ¥ç¶ãªããžã§ã¯ãïŒå£ãééãããã¡ã€ã«ãè»èŒªãªã©ïŒãèšèšããããšãéèŠã§ãããå³é¢å
ã®ã°ã©ãã£ãã¯ããªããã£ãïŒç¹ãç·ãåãªã©ïŒãèšèšããããšãéèŠã ããã§ãã ããã«ãç¹å®ã®åœããã³æ¥çã§æœè¡ãããŠããåºæºã«åŸã£ãŠãè¿
éãã€å¹ççã«èšèšããŸãã
åœç¶ãAutodeskã¯AutoCADã·ã¹ãã ã®ãã¹ãŠã®åœã®ãšã³ããŠãŒã¶ãŒãå¿
èŠãšãããã¹ãŠãå«ããããšãã§ããªãã£ããããAutoCADã¯ãŠãŒã¶ãŒãèªåã®ããŒãºã«é©å¿ã§ããããã°ã©ãã³ã°ããŒã«ãå°å
¥ããŸãã[1]ã
AutoCADéçºããŒã«ã ãããã®è³éã¯ã次ã®ã°ã«ãŒãã«åé¡ã§ããŸãã
èšèªLISPããã³Visual Basic for Applicationsã¯ãå³é¢ã«å¯Ÿããããã€ãã®æ¥åžžçãªæäœãèªååããŸãã
C ++ããã°ã©ãã³ã°èšèªã«åºã¥ããObjectARXãã¯ãããžãŒãç¬èªã®ã³ãã³ããšããªããã£ããäœæããæ©äŒãæäŸããŸãã
Microsoft .NETãã¯ãããžã®ãµããŒããããã«ããã.NETäºæããã°ã©ãã³ã°èšèªã§èšè¿°ãããAutocadã®ä»»æã®ããã°ã©ã ã³ãŒããããŠã³ããŒãããŠå®è¡ã§ããŸãã
åŸè
ã®æè¡ã¯ãAutodeskã®ãã©ã€ããŒãéçºã§ã¯ãªããé²æ©çã§èªç¥ãããMicrosoft .NET Frameworkã«åºã¥ããŠãããããæã匷åã§ãã
åæã«ãå
ã®åœ¢åŒã®ãããã®ãœãªã¥ãŒã·ã§ã³ã¯ã©ããã衚瀺ãããªããžã§ã¯ããã€ãŸããµããžã§ã¯ãé åã®ã¢ãã«ãšå³é¢ããªã³ã¯ã§ããªãããšã«æ³šæããŠãã ããã 次ã«ããã®åäœãå®è£
ããæãäžè¬çã§æåãããœãããŠã§ã¢ã¢ãŒããã¯ãã£ã¯ãMVCïŒModel-View-ControllerïŒãã¿ãŒã³ã§ãã
ã¢ãã«ãã¥ãŒã³ã³ãããŒã©ãŒã ããã¯ãã¢ããªã±ãŒã·ã§ã³ããŒã¿ã¢ãã«ããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ãããã³å¶åŸ¡ããžãã¯ã3ã€ã®åå¥ã®ã³ã³ããŒãã³ãã«åå²ããããœãããŠã§ã¢ã¢ãŒããã¯ãã£ã§ãããã³ã³ããŒãã³ãã®1ã€ãå€æŽããŠããä»ã®ã³ã³ããŒãã³ããžã®åœ±é¿ã¯æå°éã«æããããŸãïŒå³1ïŒã
å³ 1-MVCã¢ãŒããã¯ãã£
ã¢ãã« ã¢ãã«ã¯ããŒã¿ãæäŸãïŒéåžžã¯ãã¥ãŒçšïŒããªã¯ãšã¹ãã«å¿çãïŒéåžžã¯ã³ã³ãããŒã©ãŒããïŒãç¶æ
ãå€æŽããŸãã
ãã¬ãŒã³ããŒã·ã§ã³ïŒè¡šç€ºïŒã æ
å ±ã®è¡šç€ºãæ
åœããŸãïŒãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ïŒã
ã³ã³ãããŒã©ãŒ ãŠãŒã¶ãŒãå
¥åããããŒã¿ã解éããã¢ãã«ãšé©åãªåå¿ã®å¿
èŠæ§ãéç¥ããŸãã
ãã¬ãŒã³ããŒã·ã§ã³ãšåäœã®äž¡æ¹ãã¢ãã«ã«äŸåããããšã«æ³šæããããšãéèŠã§ãã ãã ããã¢ãã«ã¯è¡šçŸã«ãåäœã«ãäŸåããŸããã ããã¯ããã®åé¢ã®éèŠãªå©ç¹ã®1ã€ã§ãã èŠèŠçè¡šçŸã«é¢ä¿ãªãã¢ãã«ãæ§ç¯ã§ãã1ã€ã®ã¢ãã«ã«å¯ŸããŠè€æ°ã®ç°ãªãè¡šçŸãäœæã§ããŸã[2]ã
.NETã䜿çšããŠããã°ã©ãã³ã°ãããšãã«AutoCADãæäŸããããŒã«ãèæ
®ããŠãMVCã¢ãŒããã¯ãã£ãé©çšããå¯èœæ§ãå€æããŸãã 以äžïŒå³2ïŒã¯ããŠãŒã¶ãŒã³ãŒããšCADã®çžäºäœçšãå®è£
ããAutoCADã¯ã©ã¹ã®ç°¡ç¥å³ã瀺ããŠããŸãã
AutoCADã¯ã©ã¹ã®æ§é ã
å³ 2-ç°¡ç¥åãããAutoCADã¯ã©ã¹å³
äž»ãªãã®ã¯Applicationã¯ã©ã¹ã§ãAutoCADã¢ããªã±ãŒã·ã§ã³ã®ããäžã®ã©ãããŒïŒã©ãããŒïŒã§ãã äžé£ã®ããã¥ã¡ã³ããã¢ããªã±ãŒã·ã§ã³ã§éãããšãã§ããŸããåããã¥ã¡ã³ãã¯ãDocumentã¯ã©ã¹ã®ãªããžã§ã¯ããšããŠè¡šãããšãã§ããŸãã åããã¥ã¡ã³ãã¯ãããŒã¿ããŒã¹ïŒããŒã¿ããŒã¹ïŒã«é¢é£ä»ããããŸããããŒã¿ããŒã¹ïŒããŒã¿ããŒã¹ïŒã¯ãå³é¢äžã®ãã¹ãŠã®æ
å ±ïŒã¹ã¿ã€ã«ãããªããã£ãããããã¯ãªã©ïŒãäžæã®èå¥åïŒãã³ãã«ïŒãæã€DBObjectãªããžã§ã¯ãã®åœ¢åŒã§ä¿åããŸãã ç§ãã¡ã«ãšã£ãŠæãèå³æ·±ãã®ã¯ãæ£ç¢ºã«ããªããã£ãïŒãšã³ãã£ãã£ïŒã§ããããã®å©ããåããŠå³é¢ãæ§ç¯ãããŸãã AutoCADã®ããªããã£ãã¯ãªããžã§ã¯ãã§ãïŒãã€ã³ãïŒPoint3dïŒãã©ã€ã³ïŒLineïŒãããªã©ã€ã³ïŒPolylineïŒããµãŒã¯ã«ïŒCircleïŒãããã¹ãïŒMTextïŒãªã©ã -æœè±¡ã¯ã©ã¹Entityããç¶æ¿ã
AutoCADããã¥ã¡ã³ããžã®å€æŽã¯ããã®ããŒã¿ããŒã¹ã«å¯ŸããŠéããããã©ã³ã¶ã¯ã·ã§ã³ã®äžéšãšããŠè¡ãããŸãã æ
å ±ã®æŽåæ§ã確ä¿ããããšã«å ããŠããã®ãã©ã³ã¶ã¯ã·ã§ã³ææ³ã¯ãUndoããã³RedoãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ã®æ©èœãå®è£
ããããã«ã䜿çšãããããããããã©ã³ã¶ã¯ã·ã§ã³ã¹ã¿ãã¯ã§ããŒã«ããã¯ãŸãã¯åŸè
ã®äœ¿çšãçºçããŸãã ãµããžã§ã¯ãé åã®ããŒã¿ã¢ãã«ãèšèšãããšãã«ã¯ããã®æ©èœãèæ
®ããå¿
èŠããããŸãã
ç¬èªã®ãããŒãž.Netã³ãŒãã§AutoCADãã©ã³ã¶ã¯ã·ã§ã³ã䜿çšããŠã察å¿ããããªããã£ãã«é¢ããããã¥ã¡ã³ãã®ããŒã¿ããŒã¹ã«ã¬ã³ãŒããäœæããããšã«ãããå³é¢ãæ§ç¯ã§ããŸãã ãããã£ãŠãViewã¢ãŒããã¯ãã£MVCã®ã³ã³ããŒãã³ããšããŠAutoCADããã¥ã¡ã³ãã䜿çšã§ããŸãã
ããã§ãModelã³ã³ããŒãã³ããé©åã«å€æŽããããã«ããŠãŒã¶ãŒãå³é¢ãå€æŽãããšãã®ã·ã¹ãã ã®æ£ããåäœã®å¯èœæ§ãå€æããå¿
èŠããããŸãã èãããã解決çã®1ã€ã¯ãå³é¢èŠçŽ ãå€æŽãããšãã«AutoCADã«ãã£ãŠçæãããã€ãã³ãã«å¿çããããšã§ãã
Database.ObjectModified-ããã¥ã¡ã³ãããŒã¿ããŒã¹å
ã®DBObjectãå€æŽããããšãã«çæãããŸãã
Database.ObjectErased-ãªããžã§ã¯ããããã¥ã¡ã³ãããŒã¿ããŒã¹ããåé€ããããšãã«çæãããŸãã
ãããã®ã€ãã³ãããµãã¹ã¯ã©ã€ãããããšã«ãããå³é¢ã®å€æŽã远跡ããŠãããã«å¿çããããã«å¿ããŠã¢ãã«ã®ã³ã³ããŒãã³ããå€æŽããæ©äŒãåŸãããŸãã MVCã¢ãŒããã¯ãã£ã®çšèªã䜿çšãããšããã®å®è£
ã®Controllerã³ã³ããŒãã³ãã®æ©èœã¯ãããªããã£ãã®å€æŽã€ãã³ãã®ãžã§ãã¬ãŒã¿ãŒãšããŠæ©èœããAutoCADãšããã®ã€ãã³ãã«åºã¥ããŠã¢ãã«ã«å€æŽãå ãã.NETã³ãŒãã®äž¡æ¹ã«åŒãç¶ãããŠãããšèšããŸãã
ãããã£ãŠã次ã®åœ¢åŒã§AutoCADã«é©çšãããMVCã¢ãŒããã¯ãã£ãæ³åã§ããŸãïŒå³3ïŒã
å³ 3-MVCã¢ãŒããã¯ãã£ã®å®è£
é£èŒ èæ
®ããå¿
èŠããã次ã®è³ªåã¯ãäœæ¥ã»ãã·ã§ã³éã§ã¢ãã«ããŒã¿ã®ã¹ãã¬ãŒãžã確ä¿ããæ¹æ³ã§ãã .NET Frameworkã§ãã®åé¡ã解決ããæãäžè¬çãªã¢ãããŒãã¯ãã·ãªã¢ã«åã§ãã
2ã€ã®æãããªäºå®ã«æ³šæããŠãã ããã
ããŒã¿ããŒã¹ãžã®ããŒã¿ã®ä¿åïŒã·ãªã¢ã«åïŒã¯ãããã¥ã¡ã³ãèªäœãä¿åããçŽåã«å®è¡ããå¿
èŠããããŸãã
ããŒã¿ããŒã¹ããã®ããŒã¿ã®å埩ïŒéã·ãªã¢ã«åïŒã¯ããã¡ã€ã³ã¢ãã«ã«é¢é£ä»ããããããã¥ã¡ã³ããèªã¿èŸŒãã çŽåŸã«å®è¡ããå¿
èŠããããŸãã
å³ã«ç®ãåãã 2ããããã®ã¢ã¯ã·ã§ã³ã¯ãAutoCADããã®æ¬¡ã®ã€ãã³ãã«ãµãã¹ã¯ã©ã€ãããããšã§å®è£
ã§ããããšãããããŸãã
Document.BeforeSaveãAutoCADããã¥ã¡ã³ããã¡ãã£ã¢ã«ä¿åãããåã«çæãããŸãã
Application.DocumentCreatedãããã¥ã¡ã³ããéããäœæããåŸã«çæãããŸãã
ãã©ã³ã¶ã¯ã·ã§ã³ã åè¿°ã®ããã«ãAutoCADããã¥ã¡ã³ããžã®å€æŽã¯ãã©ã³ã¶ã¯ã·ã§ã³ã®äžéšãšããŠå®è¡ãããŸããããã«ãããæ
å ±ã®æŽåæ§ãšã«ã¹ã¿ã ã®å
ã«æ»ãããã³ããçŽãæ©èœãå®è¡ããæ©èœã®äž¡æ¹ãä¿èšŒãããŸãã ããã§ã®ããã©ã³ã¶ã¯ã·ã§ã³ããšããçšèªã¯ãããã¥ã¡ã³ãã®ããŒã¿ããŒã¹ãäžè²«æ§ã®ããç¶æ
ããå¥ã®ç¶æ
ã«è»¢éããããšãã«å®è¡ãããäžé£ã®æäœãæå³ããŸã[5]ã
ãã ããæ€èšäžã®å ŽåãAutoCADã¯ãã¬ãŒã³ããŒã·ã§ã³ãšã³ã³ãããŒã©ãŒã®æ©èœãå®è¡ããäž»èŠãªæ
å ±ã¯.NETã§å®è£
ããããã¡ã€ã³ã¢ãã«ã«æ ŒçŽãããããã次ã®ããšãå¿
èŠã§ãã
æå®ãããã¢ãã«ã®ãã©ã³ã¶ã¯ã·ã§ã³æ§ã確èªããŠãã ããã
ããŒã¿ã¢ãã«ãšAutoCADããŒã¿ããŒã¹ã®ãã©ã³ã¶ã¯ã·ã§ã³ã®äœæããªãŒãã³ãèšé²ãããã³ããŒã«ããã¯ã®åæã確ä¿ããŸãã
ãããã®èŠä»¶ã¯ãäžæ¹ã§ãã¢ãã«ãšããã¥ã¡ã³ãã®ããŒã¿ããŒã¹éã®ãªã³ã¯ã®æŽåæ§ãšäžè²«æ§ãä¿èšŒããŸãã äžæ¹ãæšæºã®AutoCADãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹é¢æ°ã䜿çšããŠã³ãã³ãããã£ã³ã»ã«ããã³ããçŽããŸãã
ãã©ã³ã¶ã¯ã·ã§ã³ãµããŒãã䜿çšããããŒã¿ãã¡ã€ã³ã¢ãã«ã®å®è£
ã¯ããã®èšäºã®ç¯å²å€ã§ãããã®ãããªãœãªã¥ãŒã·ã§ã³ãéçºã§ããæ¹åã®ã¿ã瀺ãã ãã§ååã§ããããã¯ããã³ãã³ãããã¶ã€ã³ãã³ãã¬ãŒãã®äœ¿çšã§ã[6]ã
äž¡æ¹ã®ã¿ã€ãã®ãã©ã³ã¶ã¯ã·ã§ã³ã®åæã¯ãäžéå±€ã®ãªããžã§ã¯ãéã§ç¢ºå®ã«åå²ã§ããŸãïŒå³3ïŒã ã³ã³ãããŒã©ãŒã¯ãå®è¡ãããã¢ã¯ã·ã§ã³ã«å¿ããŠäž¡æ¹ã®ãã©ã³ã¶ã¯ã·ã§ã³ã®åæèµ·åãéå§ããã¢ãã«ã«å¿
èŠãªå€æŽãå ãããã£ã³ã»ã«ããã³ããçŽãã³ãã³ãã®åŒã³åºããç£èŠããŸãã ãã®å ŽåãAutoCADããã¥ã¡ã³ãã®å³é¢ã衚瀺ããDrawerã¯ãã³ã³ãããŒã©ã«ãã£ãŠæ¢ã«éãããŠãããã©ã³ã¶ã¯ã·ã§ã³ã®ããã¥ã¡ã³ãããŒã¿ããŒã¹ã®ã¬ã³ãŒããå€æŽããŸãã
çµæ ãã®èšäºã§èª¬æãããŠããååã«åºã¥ããŠã以äžãéçºãããŸããã
ããŸããŸãªãµããžã§ã¯ãé åã®ã¢ãã«ãæ§ç¯ããããšãã§ããåºæ¬ã¢ãã«ã ãµããžã§ã¯ãé åã®ã³ã³ããŒãã³ãããããã®éã®é¢ä¿ãã³ã³ããŒãã³ãããã³é¢ä¿ã«èª²ããããå¶çŽã ãã©ã³ã¶ã¯ã·ã§ã³ã¢ãããŒããå®è£
ããŸãã
ãã¡ã€ã³ã¢ãã«ãšAutocadå³é¢ã®éã®äžéå±€ã®åºæ¬ã¯ã©ã¹ãäžæ¹ã§ãã¢ãã«ãå€æŽããããã³ã«å³é¢ãæŽæ°ããä»æ¹ã§ãŠãŒã¶ãŒãè¡ã£ããã¹ãŠã®å³é¢å€æŽãã¢ãã«ã«éä¿¡ããŸãã
å³é¢ããã€ãã¹ããŠãã¢ãã«ããŒã¿ãçŽæ¥ç·šéã§ããè¿œå ã®ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ã®äž»èŠã³ã³ããŒãã³ãã
ãããã£ãŠããã®éçºã䜿çšããŠAutoCADã«åºã¥ããŠCADãæ§ç¯ããã«ã¯ã以äžãè¡ãå¿
èŠããããŸãã
åºæ¬ã¢ãã«ã«é¢ããŠç¹å®ã®ãã¡ã€ã³ã¢ãã«ãå®çŸ©ïŒããã°ã©ã ïŒããŸãã
å³é¢å
ã®ã¢ãã«ã®ã³ã³ããŒãã³ãã®ã°ã©ãã£ãã¯ãã¥ãŒãå®çŸ©ïŒããã°ã©ã ïŒããå³é¢ãå€æŽããããšãã®åäœã説æããŸãã
å¿
èŠã«å¿ããŠãè¿œå ã®ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ã®åäœã説æããŸãã
çµæãšããŠçããã¢ãããŒãã®ç¹åŸŽã¯æ¬¡ã®ãšããã§ãã
é«åºŠã«çµ±åãããAutoCADãããã«ãŠã§ã¢ãã¢ãã«ã
ããã°ã©ãã®ããã®AutoCADã®æ©èœã®æ©èœã®é èœã
éçºã®æ¯èŒç容æãã
䜿ããããã
æåŠ
1. ZuevãS. A.ããã³PoleshchukãN. N. AutoCADããŒã¹ã®CAD-å®è¡æ¹æ³ã ãµã³ã¯ãããã«ãã«ã¯ïŒBHV-Petersburgã2004幎ã
2. Model-View-Controllerã ãŠã£ãããã£ã¢ [ãªã³ã©ã€ã³] en.wikipedia.org/wiki/Model-View-Controller
3.ã·ãªã¢ã«åã ãŠã£ãããã£ã¢ [ãªã³ã©ã€ã³] en.wikipedia.org/wiki/Serialization
4. .Net Frameworkã§ã®ã·ãªã¢ã«åã®åºæ¬ã ãã€ã¯ããœããéçºè
ãããã¯ãŒã¯ [ã€ã³ã¿ãŒãããäž] msdn.microsoft.com/en-us/library/ms233836.aspx
5. HorafasãD.ããã³LeggãS.ããŒã¿ããŒã¹ãèšèšããŸãã [翻蚳] D.F.ããããã MãïŒãšã³ãžãã¢ãªã³ã°ã1990幎ã
6.ã³ãã³ãã ãŠã£ãããã£ã¢ [ãªã³ã©ã€ã³] en.wikipedia.org/wiki/Command