ÄÚÈÝ·¢²¼¸üÐÂʱ¼ä : 2026/5/15 10:24:12ÐÇÆÚÒ» ÏÂÃæÊÇÎÄÕµÄÈ«²¿ÄÚÈÝÇëÈÏÕæÔĶÁ¡£
ÁúÔ´ÆÚ¿¯Íø http://www.qikan.com.cn
»ùÓÚCATIA¶þ´Î¿ª·¢µÄ²úÆ·BOMÊôÐÔ×Ô¶¯ÌáÈ¡
×÷ÕߣºÁõÊ¥ ºÂÓ¾ÌÎ
À´Ô´£º¡¶µçÄÔ֪ʶÓë¼¼Êõ¡·2012ÄêµÚ07ÆÚ
ÕªÒª£º¸ÃÎĽéÉÜÁËCATIAÈýάÉè¼ÆÈí¼þ¼°Æä¶þ´Î¿ª·¢½Ó¿ÚÖг£ÓõÄÖØÒª¶ÔÏó¼°Ïà¹Øº¯Êý£¬Õë¶ÔÁËÊ÷ÐβúÆ·½á¹¹¸ø³öÁ˳£ÓõIJÙ×÷Óë´¦Àí·½·¨£¬²¢ÀûÓÃÏà¹Ø¶ÔÏóºÍ·½·¨ÊµÏÖ¶Ô²úÆ·ÎļþµÄÊôÐÔÌáÈ¡ºÍBOM±íͳ¼ÆÉú³É³ÌÐò¡£
¹Ø¼ü´Ê£ºCATIA£»¶þ´Î¿ª·¢£»bom±í£»ÊôÐÔÌáÈ¡
ÖÐͼ·ÖÀàºÅ£ºTP311ÎÄÏ×±êʶÂ룺AÎÄÕ±àºÅ£º1009-3044(2012)07-1550-03 Product Attribute Extraction Based on CATIA Re-developing Technology LIU Sheng£¬HAO Yong-tao
(CAD Research Center of Tongji University, Shanghai 201804, China)
Abstract: CATIA 3D design software and important objects and related functions in it¡¯s re-developing interface is introduced in this paper. Common operations and methods dealing with product construction organized in tree pattern are also mentioned. Using the related objects and functions we implement a BOM attribute extraction program. Key words£ºCATIA; re-developing; BOM; attribute extraction 1 CATIAÈýάÈí¼þ¼ò½é
Ëæ×żÆËã»ú¸¨ÖúÉè¼Æ£¨CAD£©¼¼ÊõµÄ·¢Õ¹£¬Èýά¸¨ÖúÉè¼ÆÈí¼þÔÚ²úÆ·Éè¼ÆÁìÓòµÄÓ¦ÓÃÔ½À´Ô½¹ã·º¡£CATIAÈ«³ÆComputer Aided Tri-dimensional Interface Application£¬ÊÇ·¨¹úDassault¹«Ë¾¿ª·¢µÄÒ»¿îCAD/CAM/CAEÓÚÒ»ÌåµÄÈýάÉè¼ÆÈí¼þ£¬¹ã·ºÓ¦ÓÃÓÚ»úеÉè¼Æ¡¢Æû³µ¡¢º½¿Õº½Ìì¡¢´¬²°¡¢µç×ӵȸ÷ÖÖÐÐÒµÖС£
¸ß¶ÈÄ£¿é»¯µÄCATIAÈí¼þÄܹ»Âú×ã¿Í»§ÔÚ²úÆ·¿ª·¢»î¶¯ÖеÄÐèÒª£¬°üÀ¨·ç¸ñºÍ²ÝͼÉè¼Æ¡¢»úеÁã¼þÉè¼Æ¡¢×°ÅäÉè¼Æ¡¢ÇúÏßÇúÃæÉè¼Æ¡¢¹¤³Ìͼ×Ô¶¯Éú³É¼°²úÆ··ÖÎöºÍÄ£Äâ¡£CATIA²úÆ·»ùÓÚ¿ª·Åʽ¿ÉÀ©Õ¹µÄ¼Ü¹¹£¬Æä֪ʶ¹¤³ÌÄ£¿éͨ¹ýʹÆóÒµÄܹ»ÖØÓòúÆ·Éè¼ÆÖªÊ¶£¬Ëõ¶Ì¿ª·¢ÖÜÆÚ£¬CATIA½â¾ö·½°¸¼Ó¿ìÆóÒµ¶ÔÊг¡µÄÐèÇóµÄ·´Ó¦¡£CATIAÈí¼þ×ÔV5°æºó´Ó¹¤×÷Õ¾Æ½Ì¨ÒÆÖ²µ½¸öÈ˼ÆËã»ú£¬¿ÉÒÔÔËÐÐÓÚWindows NTƽ̨£¬¼«´óµØÍØ¿íÁËÆäÓ¦Ó÷¶Î§ÓëʹÓõIJãÃæ¡£
ÁúÔ´ÆÚ¿¯Íø http://www.qikan.com.cn
2 CATIA¶þ´Î¿ª·¢¼ò½é
³ÉÊìµÄCAD£¯CAMÈí¼þΪÁËÂú×㲻ͬÓû§µÄÔÚʵ¼ÊÓ¦ÓÃÖеIJ»Í¬ÐèÇ󣬱ãÓÚÓû§¹¹½¨ÊʺÏ×ÔÉí²úÆ·¿ª·¢µÄÁ÷³Ì£¬ÒÔ¼°×Ô¶¯»¯·±ËöÖØ¸´µÄÉè¼Æ²½Ö裬һ°ã¶¼¾ßÓй©Óû§½øÐжþ´Î¿ª·¢µÄ½Ó¿Ú¡£CATIAÌṩ¶àÖÖ·½Ê½µÄ¶þ´Î¿ª·¢½Ó¿Ú£¬ÒÔ±ãÓû§ÄÜÁé»îµØÀûÓò¢ÖØ×éCATIAÒÑÓеŦÄÜ£¬»ñÈ¡CATIAÎļþ¼°ÄÚ²¿µÄÊý¾Ý£¬²¢ÓëÍⲿµÄÐÅÏ¢¹ÜÀíϵͳ»òרҵµÄPDMϵͳͨÐÅ¡£ 3 CATIA¶þ´Î¿ª·¢ÖеĹؼü¶ÔÏó
CATIAÌṩµÄ¶þ´Î¿ª·¢½Ó¿ÚÊÇÒ»¸öCOM·þÎñÆ÷£¬ÀûÓÃVBÖеĶÔÏó×÷Ϊ¿Í»§¶ËÓëCATIA½ø³Ì½øÐнø³Ì¼äµÄͨÐÅ£¬²Ù×÷CATIA½ø³ÌÖеĺ¯Êý£¬·ÃÎÊÆäÖеÄÊý¾Ý¡£¶øVBÌṩµÄÒ»×é¾ßÓÐÏà¹Ø¹ØÏµµÄ¶ÔÏóÐγÉÁËÒ»¸ö³éÏó²ã£¬Ê¹µÃÓû§¿ÉÒÔÔÚ²»Á˽âCOMµ×²ãͨÐÅ·½Ê½µÄÇé¿öÏ·½±ãµØ¶ÔCATIA½ø³Ì½øÐвÙ×÷¡£
CATIA.Application¶ÔÏ󣺸öÔÏóʵÀýÊÇϵͳÖÐCATIA½ø³ÌµÄ´ú±í£¬ËùÓÐÆäËûµÄ¶ÔÏó¶¼ÒÀÀµÓڸöÔÏóµÄÏà¹Ø·½·¨·µ»Ø¡£ÔÚCATIA½ø³ÌÒѾÆô¶¯µÄÇé¿öÏ£¬CATIA.Application¶ÔÏóµÄʵÀý¿ÉÒÔÒÔ¡°CATIA.Application¡±×Ö·û´®µ÷ÓÃÈ«¾Ö¹¤³§º¯ÊýGetObject»ñµÃ£¬¿ÉÒÔ½«»ñµÃµÄ¶ÔÏ󸶸øÒ»¸ö±äÁ¿Set CATIA = GetObject(\¡£µ±CATIA½ø³ÌûÓÐÆô¶¯Ê±£¬¿ÉÒÔµ÷ÓÃÈ«¾Ö¹¤³§º¯ÊýCreateObjectº¯Êý´ø¡°CATIA.Application¡±×Ö·û´®»ñµÃ£¬²¢°ÑÆä¸³¸ø±äÁ¿Set CATIA = CreateObject(\¡£×îÖÕ£¬»ñµÃµÄCATIA.Application¶ÔÏó´æÔÚCATIA±äÁ¿ÖС£
Document¶ÔÏó£ºDocumentÀàµÄ¶ÔÏó´ú±í½ø³ÌÖдò¿ªµÄCATIAÎĵµ£¬DocumentÀàÊÇÆäËûÎĵµÀàµÄ»ùÀ࣬´ÓCATIA.Application¶ÔÏóµÄActiveDocument·½·¨»ñµÃµ±Ç°¼¤»îµÄÎĵµ£¬±¾´ÎÖ÷ҪʹÓõĵ½Æä×ÓÀàProductDocumentµÄ¶ÔÏ󣬲¢½«Æä¸³Öµ¸øÒ»¸ö±äÁ¿ÒÔ±ãÒÔºóʹÓá£Set productDocument = CATIA.ActiveDocument¡£ºóÐøµÄ¶ÔÏó¶¼Òª´Ó¸ÃProductDocument¶ÔÏóÖлñÈ¡¡£
Product¶ÔÏ󣺸ÃÀàÐ͵ĶÔÏó´ú±í²úÆ·ÎĵµÖеÄÒ»¸ö²úÆ·½Úµã¡£CATIA²úÆ·Îĵµ½«Ò»ÏµÁвúƷͨ¹ý×°Åä×éÖ¯³ÉÒ»¸ö²úÆ·Ê÷£¬Ã¿¸ö²úÆ·½Úµã¿ÉÒÔÓÐÁãµ½¶à¸ö×ӽڵ㣬³ýÁ˸ù½ÚµãÒÔÍâÿ¸ö²úÆ·½Úµã¶¼Ö»ÓÐÒ»¸ö¸¸½Úµã¡£Ã¿¸ö²úÆ·ÎĵµÓÐΨһµÄ¸ù½Úµã£¬ÇҸøù½Úµã²»Äܸü»»¡£¶ÔÓÚ×°Åä½ø²úÆ·µÄÁã¼þ£¬CATIA»áÉú³ÉÒ»¸ö¼òµ¥µÄ²úÆ·½Úµã¶ÔÆä°ü×°£¬Ê¹Ö®³ÉΪһÖµIJúÆ·Ê÷¡£Ã¿¸ö²úÆ·½Úµã¿ÉÒÔÓÐÈô¸ÉÊôÐÔ£¬±¾³ÌÐòÖ÷Òª¶ÔÕâЩÊôÐÔ½øÐÐÌáÈ¡Óëͳ¼Æ¡£¶ÔÓÚÒѾ»ñµÃµÄ²úÆ·½Úµã£¬¿ÉÒÔͨ¹ýµ÷ÓÃÆäProducts·½·¨»ñµÃÆä×Ó½ÚµãµÄ¼¯ºÏ¶ÔÏ󣬸öÔÏóÊÇÒ»¸ö¼¯ºÏ¶ÔÏ󣬿ÉÒÔÓÃFor EachÐ͵ÄÑ»··½±ãµØ±éÀúÆäÖÐÿһ¸öProduct¶ÔÏó£¬Èçͼ1¡£
ÁúÔ´ÆÚ¿¯Íø http://www.qikan.com.cn
ͼ1°´ÕÕÊ÷ÐÍ×éÖ¯µÄ²úÆ·½Úµã
Parameter¶ÔÏó£ºParameterÀàÐ͵ĶÔÏó´ú±í½ÚµãÖаüº¬µÄÊôÐÔ£¬Ò»¸öÊôÐÔÊÇÒ»¸ö¼üÖµ¶Ô£¬ÕâЩ¼üÖµ¶Ô´ú±í²úÆ·ÎļþÖеÄ×Ô¶¨ÒåÊôÐÔ£¬¿ÉÒÔͨ¹ýProduct¶ÔÏóµÄParameters·½·¨»ñµÃParameterµÄ¼¯ºÏ£¬»ñµÃ¼¯ºÏºó¿ÉÒÔÓü¯ºÏ¶ÔÏóµÄitem·½·¨´«ÈëÊôÐÔ¼ü×Ö·û´®£¬»ñµÃÊôÐÔÖµµÄÒýÓ㬲¢Í¨¹ýÊôÐÔÖµµÄValueAsString·½·¨×ª»¯Îª·½±ãÓë¿Ø¼þÏÔʾºÍ´æ´¢µÄ×Ö·û´®¡£ 4³ÌÐòÉè¼Æ×ÜÌå˼·ºÍ¹Ø¼ü¼¼Êõ
±¾³ÌÐòËùÒª²Ù×÷µÄÊDzúÆ·ÎļþÖеIJúÆ·Ê÷£¬¸÷ÖÖÁã¼þÎļþÔÚ½¨Á¢ºó¾ÍÌí¼ÓÁË×Ô¶¨ÒåÊôÐÔ£¬²¢Í¨¹ý×°ÅäÒýÈëµ½²úÆ·ÎļþÖС£ÎªÁ˱ãÓÚ¹ÜÀí£¬Í¨³£»áÔÚ¸ù²úÆ·½ÚµãÏÂÃæ½¨Á¢Èô¸É×Ó²úÆ·½Úµã£¬²¢½«Áã¼þ·ÖÀà×°Åäµ½¸÷¸ö×Ó²úÆ·½ÚµãÖС£Í¬Àí£¬¿ÉÒÔÔÙ×Ó²úÆ·½ÚµãÏÂÔÚ½¨Á¢×Ó²úÆ·½Úµã£¬¶Ô½ÚµãÄÚµÄ×°ÅäÁã¼þ½øÐзÖÀà¡£ÔÚÌáÈ¡¹ý³ÌÖгÌÐòÒª´¦ÀíÈÎÒâ²ãÊýµÄ²úÆ·½Úµã£¬²¢ÒªÔÚ·ÃÎʹý³ÌÖÐͳ¼ÆÏàͬÁã¼þµÄ¸öÊý£¬¾Ý´Ë±¾³ÌÐòÀûÓÃÁËÒÔÏ·½·¨À´ÊµÏÖÌáÈ¡BOMµÄÄ¿µÄ¡£ 4.1»ùÓڵݹé·ÃÎʲßÂÔµÄÌáÈ¡·½·¨
µ±·ÃÎʵ½Ò»¸ö½Úµã£¬ÏÈÅÐ¶ÏÆäÊÇ·ñÒ»¸öÖն˽ڵ㣬£¬ÈôÊÇÖն˽ڵ㣬Ôò¶ÔÆä½øÐÐÌáÈ¡ÊôÐԵIJÙ×÷£¬ÈôÊÇÖмä½Úµã£¬ÔòµÝ¹éµØµ÷Óøùý³Ì£¬ÓÉ´Ë´ïµ½´¦ÀíÈÎÒâ²ãÊý²úÆ·Ê÷µÄÄ¿µÄ¡£ Sub traversal_recursive(rootProduct) Set oProducts = rootProduct.Products If is_leaf(rootProduct) Then Call extract_single_bom(rootProduct) Else
For Each subProduct In oProducts Call traversal_recursive(subProduct)