新聞中心

        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 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 格尔木市| 苗栗市| 昌邑市| 赣榆县| 湖北省| 沅陵县| 商丘市| 利川市| 敦化市| 寿光市| 尖扎县| 怀集县| 涿鹿县| 安龙县| 高要市| 沁源县| 麟游县| 五大连池市| 荆门市| 收藏| 新郑市| 南投市| 托克托县| 阜康市| 清苑县| 当涂县| 昆明市| 千阳县| 彰化市| 长治县| 扶余县| 巴林右旗| 鄂托克前旗| 宜城市| 辰溪县| 遂川县| 山东| 吴堡县| 阳新县| 青浦区| 措勤县|