999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Cleo圖紙的信息提取與反填

2020-12-02 23:57:39朱文偉
數碼設計 2020年11期

省教育廳課題:浙江省教育廳《PDM下圖紙信息自動獲取與反填技術的研究》(Y201430802)

浙江省公益性技術應用研究計劃《可穿戴下肢助力機器人設計》2017C31106

摘要:圖紙信息的提取與反填是實現產品數據高效管理的基礎。Creo軟件在工程設計制造領域應用廣泛,針對Creo文件,提出一種基于VS2015平臺的信息提取與反填的應用程序,既可以將Creo文件中的信息提取出來,也可以將數據反填到Creo文件。通過實例驗證,表明應用程序信息提取與反填有效。

關鍵詞:Creo;信息提取;信息反填

中圖分類號:TG802?? 文獻標識碼:A?? 文章編號:1672-9129(2020)11-0152-03

前言:一個產品的生產過程中,會產生大量的圖紙文件。隨著時間的推移,企業產品的數量急劇增加,容易造成文件丟失、信息丟失,因此往往需要引入管理軟件比如PDM軟件,進行信息管理。但是,管理軟件需要將產品信息錄入到系統中,而這些信息往往存在圖紙中,使用這些信息就需要打開一個個產品的圖紙文件,然后將信息拷貝出來,效率非常低,且容易出錯,不利于管理。同時新的圖紙也有類似問題,由于設計者往往不會使用管理軟件,而管理軟件使用者也不會使用CAD軟件,新圖紙信息的獲取也是費時費力。因此,如何高效且準確地提取信息,解決圖紙設計軟件“信息孤島”現狀成為企業負責人十分關注的問題。

為此,本文針對如何高效且準確地提取信息,開發了一個應用程序,可以將所需信息直觀地顯示在界面上,并可以按照一定格式生成文本文件,供任意管理軟件調用。最終生成動態鏈接庫文件,提供接口信息,嵌入到任意管理軟件中,實現無縫連接。

CAD軟件的類型眾多,其中Creo軟件是一款主流的、應用非常廣泛的軟件。因此,本文選用的CAD軟件為Creo 4.0。

1 開發環境配置

根據Creo4.0的官方規定,其二次開發的應用軟件為VS2015,因此,本文將通過VS2015設計開發應用程序,實現Creo4.0文件的信息提取與反填,其中信息的提取與反填可以定制化。

(1)API開發包。隨著Creo軟件的發展,其二次開發的庫由ProToolkit向Creo Object TOOLKIT C++轉變,但是ProToolkit的部分功能還是能應用的,因此,本文將同時使用ProToolkit與OTK進行二次開發。

(2)環境變量。為了實現高效且獨立的信息提取,將采用異步模式對Creo進行開發,因此,需要設置環境變量PRO_COMM_MSG_EXE,它的值設定為pro_comm_msg的絕對路徑。

(3)VS2015開發環境設置。配置Creo4.0庫,包含目錄和庫目錄,將工程中的包含目錄設定軟件安裝目錄下~\\Common Files\\\\otk\\otk_cpp\\include和~\\Common Files\\protoolkit\\includes。

將工程中的庫目錄設定為軟件安裝目錄下~\\Common Files\\otk\\otk_cpp\\x86e_win64\\obj和~\\Common Files\\protoolkit\\x86e_win64\\obj。

同時,將Creo4.0庫的附加依賴項,如:otk_cpp_async.lib、otk_222.lib、pt_asynchronous.lib、protoolkit_NU.lib、ucore.lib、udata.lib等。

2 信息提取與反填

2.1信息提取算法。

首先,明確信息來源,輸入工程文件的絕對地址或者選擇一個工程文件;

接著,根據輸入的不同工程文件,取不同的信息。具體如下:1)零件圖,提取標題欄信息;2)裝配圖,提取標題欄信息和子圖的信息;3)工程圖,提取標題欄信息和明細表信息。

最后,將信息按照一定格式保存。

信息提取算法的流程圖如圖1所示。

2.2信息提取的實現。

首先,檢查是否已經啟動Creo,如果已經啟動,獲取其會話對象;如果沒有啟動Creo,則以異步模式下不可見方式啟動Creo。利用pfcAsyncConnection::Start(“pro -g:no_graphics -i:rpc_input”)來實現非交互式、無界面的啟動Creo。其中pro是啟動Creo Parametric的命令。

connection= pfcAsyncConnection::GetActiveConnection();

if (!connection)

{

connection = pfcAsyncConnection::Start("C:\\\\Program Files\\\\PTC\\\\Creo 4.0\\\\M080\\\\Parametric\\\\bin\\\\parametric.exe -g:no_graphics -i:rpc_input", "");

if(!connection)

{

::MessageBox(NULL, _T("Creo啟動錯誤!"), _T("Fail"), NULL);

return;

}

}

else

{

::MessageBox(NULL, _T("Creo已經啟動,獲取成功!"), _T("Get"), NULL);

}

然后,通過函數ProMdlFiletypeLoad打開文件;

GetDlgItemText(IDC_EDIT1, filename);

ProStringToWstring(proPath, filename);

status = ProMdlFiletypeLoad(proPath, PRO_MDLFILE_PART, b, &proMdl);

if (status != PRO_TK_NO_ERROR)

{

::MessageBox(NULL, _T("打開文件錯誤!"), _T("Get"), NULL);

}

其次,判斷文件類型,根據文件擴展名的不同判斷當前文件是裝配圖還是工程圖還是零件圖。

接著,根據不同文件,提取不同信息;

status=ProMdlToModelitem(proMdl, &item);

GetSolidParam(item, &appdata);

ProArraySizeGet((ProArray)appdata, ¶mCount);

for (int i = 0;i

{

char name[PRO_NAME_SIZE];

char value[PRO_TYPE_SIZE];

ProParamvalue proval;

ProParameterValueGet(appdata + i, &proval);

Num = m_MyListBox.GetCount();

CString strTemp, strTemp1;

strTemp1 = " = ";

if (proval.type == PRO_PARAM_DOUBLE)

{

strTemp.Format(_T("%.4f"), proval.value.d_val);

strTemp = ((appdata + i)->id) + strTemp1+ strTemp;

m_MyListBox.InsertString(Num, strTemp);

}

else

{

strTemp = ((appdata + i)->id) + strTemp1 + proval.value.s_val;

m_MyListBox.InsertString(Num, strTemp);

}

}

最后,將信息保存成可以讓管理軟件使用的文本格式。

2.3信息反填算法。

首先,明確信息反填對象,輸入工程文件的絕對地址或者選擇一個工程文件;

接著,判斷信息是否已經存在,如果存在,更改屬性內容;如果不存在,新建屬性及其設定值。

最后,保存文件。

信息反填算法的流程圖如圖2所示。

2.4信息反填的實現。

首先,檢查是否已經啟動Creo,此過程類似信息提取算法;

然后,通過函數ProMdlFiletypeLoad打開文件;

其次,判斷反填信息是否已經存在,存在則修改,不存在則新建;

status = ProParameterInit(&item, strParam1.AllocSysString(), &new_param);

if (status != PRO_TK_NO_ERROR)

{

ProParamvalueSet(&new_value, &plTemp1, PRO_PARAM_STRING);

status = ProParameterWithUnitsCreate(&item, name1, &new_value,NULL,&new_param);

if (status != PRO_TK_NO_ERROR)

{

AfxMessageBox(_T("屬性參數創建失敗!"));

}

}

else//反填信息已存在,更新之

{

ProParamvalueSet(&new_value, &plTemp1, PRO_PARAM_STRING);

status = ProParameterValueWithUnitsSet(&new_param, &new_value,NULL);

}

最后,保存文件。

3 實例驗證

本文所述的信息提取與反填算法將通過MFC應用程序來驗證。以某一個零件圖為對象,根據測試要求,在零件圖的參數對話框中設置屬性,如圖3所示:

設置屬性完畢,運行MFC程序,點擊選擇文件按鈕,在彈出的文件選擇對話框中,將上述文件選中,再點擊開始提取,經過后臺自動提取,將零件圖中的參數信息提取出來,并按照一定形式顯示在顯示框內,顯示形式可以自定義。比較程序提取出來的信息與零件圖中的信息,兩者一致。如圖4所示

提取完畢后,在信息反填中,將需要修改的屬性內容與添加的內容填寫上去,如將材料修改為45號鋼,購買者修改為趙張武,添加一個新的屬性,如新屬性=測試。然后點擊開始反填按鈕,經過后臺自動反填,完成屬性的修改與添加。同時,為了更好觀察是否反填完畢,再次點擊開始提取,比對發現信息已經反填成功。最后通過打開零件圖的參數對話框驗證,信息反填成功。如圖5所示:

4 結論

本文通過VS2015實現Creo圖紙信息的提取與反填,可以自動分辨圖紙的種類,根據定制需求提取出定制形式信息。在本文論述過程中,通過MFC應用程序方式完成。推廣到實際應用上的時候,可以將實現過程用MFC DLL的形式,提供出信息提取與信息反填2個接口,生成動鏈接庫文件,從而方便其他管理軟件的調用。

參考文獻:

[1]晏恒兵,仲梁維,基于Creo的智能模型庫插件研究與開發[J].軟件工程,2020,23(4):12-14

[2]張文曉,基于Excel VBA對Creo進行異步模式下的二次開發[J].電腦知識與技術,2019,15(7):212-214.

[3]宮潘威,時小磊,陶高周等,CREO環境下三維模型及信息集成共享實現方法研究[J],機械設計與制造,2019,0(2):218-221.

[4] Creo Object TOOLKIT C++ Users Guide (4.0 M080),PTC,2019.

[5]張文彬,沈精虎,姜兆康,基于Creo二次開發的零件參數化變型設計[J],微型電腦應用,2018,34(2):48-50.

作者簡介:朱文偉,1983.12.27,男,漢,浙江瑞安市人,碩士,溫州大學甌江學院,研究方向:機電一體化、數字化設計。

李美琴,1982.06.30,女,浙江溫州人,碩士,溫州大學甌江學院,研究方向:機械設計及理論。

主站蜘蛛池模板: 色综合天天视频在线观看| 久久99蜜桃精品久久久久小说| 午夜综合网| 中国特黄美女一级视频| 一级爆乳无码av| 精品久久人人爽人人玩人人妻| a天堂视频| 亚洲国产精品一区二区高清无码久久| 一区二区午夜| 成人在线不卡视频| 青青青草国产| 亚洲最黄视频| 日韩视频免费| 免费看a级毛片| 东京热一区二区三区无码视频| 亚洲一欧洲中文字幕在线| 国产第一页免费浮力影院| 免费看一级毛片波多结衣| 日韩欧美一区在线观看| 青青草a国产免费观看| 制服丝袜在线视频香蕉| 国产精品尤物在线| 国产美女精品在线| 波多野吉衣一区二区三区av| 国产主播喷水| 91在线视频福利| 亚州AV秘 一区二区三区| 国产精品林美惠子在线播放| 激情综合五月网| 成人亚洲国产| 伊人久久婷婷| 欧美日韩国产成人在线观看| 亚洲va欧美va国产综合下载| 天天做天天爱夜夜爽毛片毛片| 亚洲无码视频一区二区三区| 亚洲Va中文字幕久久一区| 国产交换配偶在线视频| 日本国产在线| 福利一区三区| 婷婷伊人五月| 欧美性色综合网| 亚洲国语自产一区第二页| 成人看片欧美一区二区| 亚洲国产一成久久精品国产成人综合| 91精品在线视频观看| 91精品啪在线观看国产91| AV无码一区二区三区四区| 波多野结衣AV无码久久一区| 亚洲中文字幕国产av| 国产亚洲欧美日韩在线观看一区二区| 制服丝袜在线视频香蕉| 欧美成人精品高清在线下载| 亚洲A∨无码精品午夜在线观看| 六月婷婷精品视频在线观看| 欧美视频在线不卡| 国产va视频| 天天色天天综合网| 日韩一区精品视频一区二区| 99伊人精品| 国产产在线精品亚洲aavv| 欧美黄网在线| 国产真实二区一区在线亚洲| 亚洲国产精品日韩欧美一区| 亚洲欧美一区二区三区图片| 国产成人精品18| 国产精品亚洲精品爽爽| 亚洲a级毛片| 美女一区二区在线观看| 日韩精品成人在线| 欧美在线三级| 精品一区二区三区波多野结衣| 久久99国产精品成人欧美| 在线免费不卡视频| 亚洲一级毛片在线观播放| 蜜臀AV在线播放| 高清免费毛片| 国产精品漂亮美女在线观看| 中文字幕免费播放| 91香蕉国产亚洲一二三区| 伊人查蕉在线观看国产精品| 久青草国产高清在线视频| 欧美一级在线看|