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,女,浙江溫州人,碩士,溫州大學甌江學院,研究方向:機械設計及理論。

主站蜘蛛池模板: 中文字幕在线不卡视频| 日韩不卡高清视频| 成人福利一区二区视频在线| 亚洲综合一区国产精品| 日韩精品毛片| 日韩国产亚洲一区二区在线观看| 亚洲日韩AV无码精品| 久青草国产高清在线视频| 国产精品19p| 日韩国产欧美精品在线| 无码国内精品人妻少妇蜜桃视频| 91精品视频在线播放| 久久毛片网| 首页亚洲国产丝袜长腿综合| 青青操视频在线| 久热中文字幕在线观看| 日韩在线欧美在线| 97久久精品人人| 日韩欧美一区在线观看| 国产精品久久久久久久伊一| 成人无码区免费视频网站蜜臀| 亚洲无码一区在线观看| 波多野结衣的av一区二区三区| 黄色片中文字幕| 男女男免费视频网站国产| 一本久道热中字伊人| 在线免费看黄的网站| 婷婷激情亚洲| 久久国产精品麻豆系列| 欧美日韩精品一区二区在线线| 久草热视频在线| 国产精品无码制服丝袜| 最近最新中文字幕在线第一页| 精品视频一区在线观看| 国产精品一区在线观看你懂的| 亚洲天堂网在线观看视频| 国产视频自拍一区| 午夜啪啪福利| 伊人查蕉在线观看国产精品| 国产成人夜色91| 亚洲最新在线| 精品综合久久久久久97超人| 婷婷五月在线| 国产精品久久自在自线观看| 久久精品国产在热久久2019 | 四虎永久免费在线| 精品国产免费第一区二区三区日韩| 久久香蕉国产线看精品| 91精品国产一区自在线拍| 久久国产精品国产自线拍| 欧美a在线| 毛片网站观看| 99久久无色码中文字幕| 欧美日韩北条麻妃一区二区| 久久国产V一级毛多内射| 色吊丝av中文字幕| 一本综合久久| 白浆视频在线观看| 91蜜芽尤物福利在线观看| 国产成人狂喷潮在线观看2345| 久久综合九色综合97婷婷| 亚洲无码在线午夜电影| 国产1区2区在线观看| 成人在线观看一区| 国产福利拍拍拍| 在线看国产精品| 国产在线拍偷自揄拍精品| 秋霞一区二区三区| 国产成人AV大片大片在线播放 | 无码精油按摩潮喷在线播放| 狼友视频国产精品首页| 日本午夜影院| 欧美日韩在线成人| 日本高清视频在线www色| 欧美不卡二区| 精品伊人久久久久7777人| 日韩东京热无码人妻| 国产精品视频系列专区| 极品性荡少妇一区二区色欲| 国产一级在线播放| 99成人在线观看| 亚洲五月激情网|