新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于InterOp拓展SolidWorks數據接口

        基于InterOp拓展SolidWorks數據接口

        作者: 時間:2013-04-07 來源:網絡 收藏


        由于和Solidworks內部轉換這兩步的轉換對屬性均有很好的支持,所以可以保持原有的CATIA屬性,如顏色屬性、坐標軸屬性等。

        程序實現過程如下:

        a.添加讀取CATIA V5零件的接口

        VARIANT_BOOL bres;
        m_pSldWorks->AddFileOpenItem(auT("V5Work@opencatpart"), auT("CATPartV5Work open (*.CATPart)"), bres);

        b. 啟動組件并進行初始化

        api_start_modeller(0);
        api_initialize_constructors();
        api_initialize_kernel();
        ……
        api_initialize_aciscatiav5rd();
        api_catiav5_read_attributes(true);

        c.將CATIA V5零件轉換為SAT文件

        api_catiav5_convert_catiav5_to_acis_entlist(filename, list, "temp.log");
        api_save_version(14,0);
        FILE* fp = fopen(sattemp_char,"r");
        api_restore_entity_list(fp,TRUE,list);
        fclose(fp);

        d. 讀入SAT文件并保存為Solidworks數據格式

        p->LoadFile2(auT("temp.sat"), auT("r"), retval);
        doc_retval->SaveAs2(sat, 0, FALSE, FALSE, saveas_retval);

        e.刪除臨時的SAT文件

        DeleteFile(auT("temp.sat"));

        f.終止組件

        api_terminate_aciscatiav5rd();
        ……
        api_terminate_kernel();
        api_terminate_constructors();
        api_stop_modeller();

        4.裝配體數據的轉換

        CATIA V5的零件轉換相對簡單,但是裝配體的讀取就存在一定的難度了。具體的轉換過程如圖2所示。

        newmaker.com

        這里可以利用InterOp將CATIA V5的裝配件轉換成單個的SAT文件和一個XML文件,其中SAT文件是單個的CATIA V5零件的轉換結果,XML文件中記錄了所有零件之間的裝配關系。系統利用已開發的零件模型轉換接口分別讀入零件的SAT文件,并保存為文件格式,同時對XML文件進行解析,提取其中的裝配信息并且轉換成所識別的裝配關系。根據解析出的裝配關系與單個的Solidworks文件的結合,創建出相應的裝配件。

        程序實現過程是:

        a.添加讀取CATIA V5裝配件的接口

        m_pSldWorks->AddFileOpenItem(auT("V5Work@opencatproduct"), auT("CATPartV5Work open (*.CATPorduct)"), bres);

        b. 啟動InterOp組件并進行初始化

        api_start_modeller(0);
        api_initialize_constructors();
        api_initialize_kernel();
        ……
        api_initialize_aciscatiav5rd();
        api_catiav5_read_attributes(true);

        c.將CATIA V5裝配件轉換為單個的SAT文件和XML文件

        api_catiav5_convert_catiav5_assembly_to_xml(assemblyf ile, xmlfile, partsDir, “temp.log”);

        d.對XML文件進行解析提取零件之間相應的裝配關系

        ParseXML(auT("temp.xml"));

        e. 將所有的零件與對應的裝配關系相結合創建Solidworks裝配件

        pSolidWorks->LoadFile2(auT("temp1.sat"), auT("r"), retval);
        pSolidWorks->LoadFile2(auT("temp2.sat"), auT("r"), retval);
        ……
        AddMateInformation();
        doc_retval->SaveAs2(assembly, 0, FALSE, FALSE, saveas_retval);

        f.刪除臨時的SAT文件和XML文件

        DeleteFile(auT("temp1.sat"));
        ……
        DeleteFile(auT("temp.xml"));

        g.終止InterOp組件

        api_terminate_aciscatiav5rd();
        ……
        api_terminate_kernel();
        api_terminate_constructors();
        api_stop_modeller();

        最終的轉換效果圖如圖3、4所示。

        newmaker.com

        5.結束語

        基于InterOp組件所開發的Solidworks插件——V5Works,實現了Solidworks與CATIA V5數據之間的相互轉換,提升了Solidworks的發展空間,可以滿足特定用戶的需求,具有很好的實用價值和應用前景。(end)

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 和硕县| 永顺县| 丰台区| 四子王旗| 南部县| 奉化市| 中阳县| 绵阳市| 清徐县| 高安市| 巴南区| 长春市| 台州市| 南岸区| 潞西市| 开阳县| 炎陵县| 乳山市| 天长市| 盐边县| 濉溪县| 策勒县| 南江县| 开鲁县| 留坝县| 大田县| 泾川县| 剑阁县| 望都县| 漾濞| 文成县| 澄江县| 新巴尔虎左旗| 长寿区| 博湖县| 乌兰浩特市| 五指山市| 屏东县| 高雄县| 关岭| 孟连|