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

基于Pro/Toolkit的Creo3.0工程圖批量轉(zhuǎn)檔程序開發(fā)

2023-12-31 00:00:00牟長(zhǎng)軍張躍陽(yáng)
科技創(chuàng)新與應(yīng)用 2023年20期

摘 "要:為工程設(shè)計(jì)人員能夠擺脫繁瑣的Creo工程圖轉(zhuǎn)檔工作,把更多的時(shí)間和精力用在具體設(shè)計(jì)上,提高設(shè)計(jì)能力和水平,該文通過(guò)Creo3.0二次開發(fā)接口Pro/Toolkit與VS2012集成,開發(fā)工程圖自動(dòng)轉(zhuǎn)檔程序,同時(shí)也詳細(xì)給出開發(fā)配置,實(shí)現(xiàn)原理、主要編程代碼和實(shí)例應(yīng)用。

關(guān)鍵詞:工程圖;Pro/ToolKit;二次開發(fā);批量轉(zhuǎn)檔;程序開發(fā)

中圖分類號(hào):TP317.4 " " "文獻(xiàn)標(biāo)志碼:A " " " " "文章編號(hào):2095-2945(2023)20-0133-05

Abstract: In order for engineering designers to get rid of the tedious Creo engineering drawing shift work, spend more time and energy on concrete design, and improve the design ability and level, this paper develops the engineering drawing automatic shift program through the integration of Creo3.0 secondary development interface Pro/Toolkit and VS2012. At the same time, it also provides the development configuration in detail to realize the principle, main programming code and example application.

Keywords: engineering drawing; Pro/ToolKit; secondary development; batch conversion; program development

Creo作為一種功能強(qiáng)大的CAD/CAM軟件,在電子結(jié)構(gòu)設(shè)計(jì)中得到廣泛應(yīng)用,但作為通用軟件,在滿足個(gè)性化需求方面就有些欠缺,因此,進(jìn)行Creo定制化的研究十分必要。對(duì)使用Creo使用者來(lái)說(shuō),定制化研究不但能滿足使用者個(gè)性化的使用要求,還能提高工作效率、減少出錯(cuò)率,避免一些重復(fù)性的勞動(dòng),是一項(xiàng)非常值得去做的工作。從互聯(lián)網(wǎng)最近幾年來(lái)發(fā)表的文章看,Creo定制化的研究越來(lái)越受到Creo使用者的重視,相關(guān)定制化研究成果也越來(lái)越多。

本文就Creo工程圖轉(zhuǎn)檔進(jìn)行了定制化的研究和開發(fā)。目前,國(guó)內(nèi)傳統(tǒng)制造業(yè)加工車間仍然采用二維圖紙加工,所以工程設(shè)計(jì)人員完成產(chǎn)品三維設(shè)計(jì)后,需要出滿足車間加工的二維圖,但由于Creo直接出的二維工程圖不能被AutoCAD等傳統(tǒng)二維平面CAD軟件打開,使得Creo二維工程圖轉(zhuǎn)檔非常必要,再者每個(gè)產(chǎn)品的工程圖都不是幾張或者十幾張,每次工程圖轉(zhuǎn)檔顯得費(fèi)時(shí)、費(fèi)力、容易遺漏,為了避免重復(fù)勞動(dòng)、節(jié)省時(shí)間、提高效率,進(jìn)行Creo工程圖轉(zhuǎn)檔功能的開發(fā)有很高的實(shí)用價(jià)值。

為此,Creo軟件提供了豐富的二次開發(fā)接口,為解決Creo擴(kuò)展應(yīng)用提供了途徑。本文利用Creo提供的二次開發(fā)接口:Pro/ToolKit和VS2012(Microsoft Visual Studio 2012)集成開發(fā)環(huán)境,開發(fā)出了Creo工程圖自動(dòng)轉(zhuǎn)檔程序,簡(jiǎn)化了Creo工程圖轉(zhuǎn)檔的操作,實(shí)現(xiàn)了批量自動(dòng)轉(zhuǎn)化功能。

1 "開發(fā)環(huán)境及配置

1.1 "開發(fā)環(huán)境

操作系統(tǒng):Microsoft Windows 7 SP1。

開發(fā)軟件:Microsoft Visual Studio 2012。

Creo3.0二次開發(fā)工具:Pro/ToolKit。

1.2 "開發(fā)配置

包含文件的設(shè)置(Include Directories)

…\protoolkit\includes\

包含庫(kù)文件的設(shè)置(Library Directories)

…\protoolkit\x86_win64\obj\

項(xiàng)目設(shè)置-附加庫(kù)的設(shè)置(Additional Dependencies)

protk_dllmd.lib mpr.lib netapi32.lib psapi.lib wsock32.lib ucore.lib udata.lib odbc32.lib

忽略的默認(rèn)庫(kù)(Ignore Specific Default Libraries)

libcmtd.libmsvcrt.liblibcmt.lib

預(yù)處理器定義(Preprocessor Definitions)-增加字符串

PRO_USE_VAR_ARGS

字符設(shè)置(Character Set)

Use Unicode Character Set

1.3 "MFC和同步模式[1]

Pro/Toolkit應(yīng)用程序同步模式中的共享動(dòng)態(tài)鏈接庫(kù)模式(DLL)。

1.4 "開始函數(shù)和結(jié)束函數(shù)[2]

extern \"C\" intuser_initialize(intargc,char *argv[],char *version)

{

AFX_MANAGE_STATE(AfxGetStaticModuleState());

//添加用戶代碼:實(shí)現(xiàn)過(guò)程代碼;

}//開始函數(shù)

extern \"C\" void user_terminate()

{

AFX_MANAGE_STATE(AfxGetStaticModuleState()); return;

}//結(jié)束函數(shù)

1.5 "注冊(cè)文件編寫和加載運(yùn)行

注冊(cè)文件protk.dat,編寫如下內(nèi)容。

name " " " 轉(zhuǎn)檔//加載程序名稱

exec_file " "x:\xx\drwtocad\drwtocad.dll//執(zhí)行文件絕對(duì)路徑

text_dir " " x:\xx\drwtocad\text//菜單文件

startup " " "dll "http://執(zhí)行模式

delay_start " 1 "http://是否延遲啟動(dòng) 否

allow_stop " true "http://允許停止運(yùn)行 否

end

通過(guò)菜單“工具-輔助應(yīng)用程序”啟動(dòng)“轉(zhuǎn)檔”,完成程序加載運(yùn)行。

2 "實(shí)現(xiàn)方法和主要編程代碼

2.1 "實(shí)現(xiàn)方法

利用VS中MFC對(duì)話框技術(shù)建立程序交互界面,設(shè)置必要的需要進(jìn)行交互的工具對(duì)象,比如轉(zhuǎn)檔文件列表控件,轉(zhuǎn)檔的文件路徑按鈕、轉(zhuǎn)檔后的文件路徑按鈕、圖紙簽署開關(guān)、階段標(biāo)識(shí)選擇和更改文件名等。

首先設(shè)置需要轉(zhuǎn)檔文件的路徑,利用函數(shù)ProFilesList(),獲取此路徑下的所有*.drw文件,得到文件清單。

然后按文件清單把轉(zhuǎn)檔文件(*.drw)利用函數(shù)ProMdlLoad()加載到Creo軟件會(huì)話內(nèi)存中,根據(jù)轉(zhuǎn)檔前的配置:路徑設(shè)置、是否進(jìn)行電子簽名,是否添加圖紙的階段標(biāo)識(shí)、是否進(jìn)行圖紙的重命名——圖號(hào)+名稱文件名,是否按圖紙幅面大小進(jìn)行分類存放等進(jìn)行轉(zhuǎn)檔。

最后利用Pro2dExport()導(dǎo)出DWG文件、ProPDFExport()導(dǎo)出PDF文件。

2.2 "主要編程代碼

DWG文件轉(zhuǎn)檔函數(shù):Pro2dExport(),PDF文件轉(zhuǎn)檔函數(shù):ProPDFExport()。

Pro2dExport(ProImportExportFile format,ProPath filename,ProMdl model,Pro2dExportdata data),

format //轉(zhuǎn)檔后的文檔格式,這是個(gè)枚舉類型的數(shù)據(jù)(例如轉(zhuǎn)DWG格式:PRO_DWG_FILE);

filename //轉(zhuǎn)檔后文件的名稱(不能為中文)和絕對(duì)路徑;

model " //需要轉(zhuǎn)檔的DRW文件;

data " "http://轉(zhuǎn)檔輸出構(gòu)造器,可以設(shè)置為NULL;

ProPDFExport(ProMdl model,ProPath output_file,ProPDFOptions options),

model " " "http://需要轉(zhuǎn)檔的DRW文件;

output_file " " "http://導(dǎo)出PDF的文件路徑加文件名;

options " " //導(dǎo)出PDF的配置選項(xiàng),常用配置選項(xiàng):PRO_PDFOPT_RASTER_DPI,設(shè)置導(dǎo)出PDF分辨率,取值范圍100~600,默認(rèn)值300;PRO_PDFOPT_CO LOR_DEPTH設(shè)置導(dǎo)出文件頁(yè)面顏色;PRO_PDFOPT _SHEETS設(shè)置導(dǎo)出文件的頁(yè)面,默認(rèn)是導(dǎo)出所有頁(yè)面;PRO_PDFOPT_LAUNCH_VIEWER導(dǎo)出PDF文件是否默認(rèn)打開等;

Options配置選項(xiàng)是整形值的通過(guò)函數(shù)ProPDFoptionsIntpropertySet(),進(jìn)行設(shè)置,配置選項(xiàng)是布爾型值的通過(guò)函數(shù)ProPDFoptionsBoolpropertySet()進(jìn)行設(shè)置,配置選項(xiàng)是字符串值的通過(guò)函數(shù)ProPDFoptionsStringpropertySet ()進(jìn)行設(shè)置,配置選項(xiàng)是雙精度值的通過(guò)函數(shù)ProPDFoptionsDoublepropertySet()進(jìn)行設(shè)置。這4個(gè)函數(shù)都是3個(gè)參數(shù):,第一個(gè)參數(shù)是options集合,第二個(gè)參數(shù)是options具體某個(gè)選項(xiàng),第三個(gè)參數(shù)是第二參數(shù)的具體值。

遍歷文件函數(shù):ProFilesList。獲取指定目錄下的文件清單,根據(jù)設(shè)置的過(guò)濾器(文件擴(kuò)展名)。ProFilesList (ProPath directory_path,ProLine filter,ProFileListOptlisting_option,ProPath **p_file_name_array,ProPath **p_subdir_name_array)。

directory_path//需要遍歷文件的文件路徑 "filter,//文件過(guò)濾器(文件擴(kuò)展名,比如*.drw、*.prt、*.asm等);listing_option//設(shè)置遍歷文件是所有版本或者最新版本:PRO_FILE_LIST_ALL或者 PRO_FILE_LIS T_LATEST;**p_file_name_array //指定目錄下文件數(shù)組;**p_subdir_name_array//指定目錄下子目錄文件數(shù)組。

模型加載函數(shù):ProMdlFiletypeLoad()。把指定路徑中的模型文件加載到內(nèi)存中,用于后續(xù)對(duì)模型文件進(jìn)行操作。ProMdlFiletypeLoad(ProPath full_path,ProMdlfileType type,ProBoolean ask_user_about_reps,ProMdl* p_handle );

ProPath full_path 需要打開的模型文件的全路徑,包括文件名;

ProMdlfileType type 模型文件的類型,比如工程圖文件:PRO_MDLFILE_DRAWING,零件模型:PRO_MDLFILE_PART。

ProBoolean ask_user_about_reps 是否簡(jiǎn)化模型顯示;

ProMdl* p_handle 模型句柄

GetDrwParaStringValue(ProMdl mdl,wchar_t* name, wchar_t* stringValue):自定義函數(shù),獲取工程圖的名稱和圖號(hào)等信息,內(nèi)部主要使用的函數(shù)如下:

ProMdlToModelitem(mdl,amp;owner);//模型句柄轉(zhuǎn)化為模型項(xiàng);

ProParameterInit(amp;owner,name,amp;param);使用參數(shù)名稱name初始化模型項(xiàng)參數(shù)數(shù)據(jù);

ProParameterValueGet(amp;param,amp;paravalue);根據(jù)模型項(xiàng)參數(shù)獲取參數(shù)值。

示例代碼(截取):GetDrwParaStringValue(ProMdl mdl,wchar_t* name,wchar_t* stringValue)

{

ProError status;

ProMdldata mdldata;

ProModelitem owner;

ProParameter param;

ProParamvalue paravalue;

status = ProMdlDataGet(mdl,amp;mdldata);

status = ProMdlToModelitem(mdl,amp;owner);

status = ProParameterInit(amp;owner,name,amp;para m);

if (status!=PRO_TK_NO_ERROR)

{

paravalue.type= PRO_PARAM_STRING;

ProStringToWstring(paravalue.value.s_val, \"\");

status = ProParameterCreate(amp;owner,nam e,amp;paravalue,amp;param);

}

status = ProParameterValueGet(amp;param, amp;paravalue);

ProWstringCopy(paravalue.value.s_val, " " " "stringValue,PRO_VALUE_UNUSED);

return PRO_TK_NO_ERROR;

}

GetQianShu(void);從文件(qianshu.txt)中獲取簽署人員姓名,并寫入工程圖中。從qianshu.txt文件按行讀取簽署人員名字,數(shù)據(jù)類型從CString轉(zhuǎn)化為wchar_t,以寬字符串創(chuàng)建Creo文本注釋,按圖紙幅面簽署位置把文本注釋寫在該位置,完成簽署從文本文件到工程圖文件的轉(zhuǎn)變。

示例代碼(截取):GetQianShu(void)

{

GetModuleFileName(::GetModuleHandle(_T(\"tk_tools.dll\")),sPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);

sPath.ReleaseBuffer();

nPos = sPath.ReverseFind('\\');

sPath = sPath.Left(nPos);

m_file_path=sPath+CString(\"\\text\\\")+CString(\"qianshu.txt \");

…………………

file.ReadString(strLine);

sheJi.SetWindowText(strLine);

………………

UpdateData(1);

file.Close();

}

GetJieDuanBiaoShi(void);獲取階段標(biāo)識(shí)并寫入工程圖中。階段標(biāo)識(shí)的創(chuàng)建是讀取用戶對(duì)階段標(biāo)識(shí)的選取操作,根據(jù)選擇進(jìn)行相應(yīng)階段文件創(chuàng)建,并寫入工程圖相應(yīng)位置,實(shí)現(xiàn)方式與獲取簽署文件人員姓名類似。示例代碼(截?。篏etJieDuanBiaoShi(void)。

{

……………

if (!jieDuan_check.GetCheck())

{

return 0;

}

switch (jieDuan_bs)

{

case 0:

status = ProWstringCopy(SJIEDUAN,wstr_Bs,PRO_VALUE_UNUSED);

break;

case 1:

status = ProWstringCopy(AJIEDUAN,wstr_Bs,PRO_VALUE_UNUSED);

break;

case 2:

status = ProWstringCopy(BJIEDUAN,wstr_Bs,PRO_VALUE_UNUSED);

break;

default:

ProStringToWstring(wstr_emp,str_emp);

status = ProWstringCopy(wstr_emp,wstr_Bs,PRO_VALUE_UNUSED);

break;

}

………………

}

工程圖按圖號(hào)+圖紙名稱轉(zhuǎn)檔成DWG或者PDF,是通過(guò)DrwToDwgOrPDF()自定義函數(shù)實(shí)現(xiàn)的。首先根據(jù)Pro2dExport()或者ProPDFExport()進(jìn)行格式轉(zhuǎn)化,按Creo默認(rèn)配置進(jìn)行格式轉(zhuǎn)化,然后使用CFile::Rename(oldPath,newPath)對(duì)轉(zhuǎn)化成功的文件進(jìn)行重命名,實(shí)現(xiàn)工程圖文件按圖號(hào)+圖紙名稱的轉(zhuǎn)檔目的。

工程圖按幅面輸出是根據(jù)圖紙幅面大小建立幅面大小的文件夾,通過(guò)獲取工程圖文件幅面的大小,轉(zhuǎn)檔時(shí)按工程圖幅面大小放入相應(yīng)的文件夾內(nèi)。

2.3 "開發(fā)程序應(yīng)用實(shí)例

按本文上述方法,開發(fā)的程序界面(圖1),該程序能夠顯示當(dāng)前工作目錄下的工程圖文件,提取工程圖的圖號(hào)、名稱、頁(yè)數(shù)等。

3 "結(jié)束語(yǔ)

綜上所述,本文給出的Pro/Toolkit的工程圖批量轉(zhuǎn)檔程序,經(jīng)過(guò)實(shí)踐證明,大大提高了設(shè)計(jì)人員工程圖轉(zhuǎn)檔的效率,滿足了電子圖紙轉(zhuǎn)檔格式的不同需求。此實(shí)現(xiàn)方法具有很好的可行性和實(shí)際應(yīng)用價(jià)值,本實(shí)例對(duì)利用Creo其他應(yīng)用開發(fā)具有借鑒作用。

參考文獻(xiàn):

[1] 張舉,靳玉春.基于PRO/E的二次開發(fā)方法概述鑄造設(shè)備研究[J].2007(1):30.

[2] 賴朝安.Pro/ENGNEER二次開發(fā)的關(guān)鍵技術(shù)[J].機(jī)械設(shè)計(jì)與制造工程,2003,30(1):43-45.

主站蜘蛛池模板: 色爽网免费视频| 久久99久久无码毛片一区二区| 亚洲日韩国产精品综合在线观看| 国产区免费精品视频| 怡春院欧美一区二区三区免费| 亚洲中文字幕在线精品一区| 九九久久99精品| 91免费在线看| 精品人妻一区二区三区蜜桃AⅤ| 99热这里只有精品久久免费| 色视频国产| 99视频精品全国免费品| 2021国产精品自拍| 伊人欧美在线| 色悠久久综合| 国产成人资源| 亚洲成人黄色在线| 91精品久久久无码中文字幕vr| 欧美日韩一区二区在线免费观看| 99免费在线观看视频| 久久亚洲美女精品国产精品| 免费日韩在线视频| av一区二区无码在线| 久久久久88色偷偷| 欧美综合区自拍亚洲综合天堂| 国产精品jizz在线观看软件| 奇米精品一区二区三区在线观看| 国产剧情无码视频在线观看| 国产精品视频3p| 99在线视频免费| 97色婷婷成人综合在线观看| 国产在线观看一区精品| а∨天堂一区中文字幕| 中文字幕有乳无码| 亚洲日韩精品无码专区97| 伊人国产无码高清视频| 国产91熟女高潮一区二区| 中文字幕 91| 无码国产偷倩在线播放老年人| 国产精品久久自在自2021| 国产欧美一区二区三区视频在线观看| 91成人在线观看视频| 欧美a在线看| 视频二区中文无码| 美女一级毛片无遮挡内谢| 欧美成人区| 无码日韩精品91超碰| 亚洲国产欧美国产综合久久 | 国产精品手机在线播放| 老司机午夜精品网站在线观看| 91精品国产自产在线观看| 国产精品美女自慰喷水| 狠狠干综合| 欧美97欧美综合色伦图| 青青久视频| 91精品情国产情侣高潮对白蜜| 国产黄在线免费观看| 日本三级精品| 国产成人啪视频一区二区三区 | 国产aaaaa一级毛片| 国产一二三区在线| 91亚洲免费视频| 中日韩一区二区三区中文免费视频| 国产精品九九视频| 日韩天堂在线观看| 久久综合一个色综合网| 久久亚洲高清国产| 国产精品yjizz视频网一二区| 国产91无码福利在线| 一区二区三区精品视频在线观看| 欧美日韩在线第一页| 欧美精品亚洲二区| 色亚洲成人| 国产精品久久自在自2021| 亚洲精品无码AV电影在线播放| 亚洲swag精品自拍一区| 中文字幕乱码中文乱码51精品| 91精品国产91久无码网站| 久久精品嫩草研究院| 野花国产精品入口| 国产凹凸视频在线观看| 久热re国产手机在线观看|