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

基于Pro/Toolkit的Creo3.0工程圖批量轉檔程序開發

2023-12-31 00:00:00牟長軍張躍陽
科技創新與應用 2023年20期

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

關鍵詞:工程圖;Pro/ToolKit;二次開發;批量轉檔;程序開發

中圖分類號:TP317.4 " " "文獻標志碼:A " " " " "文章編號: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作為一種功能強大的CAD/CAM軟件,在電子結構設計中得到廣泛應用,但作為通用軟件,在滿足個性化需求方面就有些欠缺,因此,進行Creo定制化的研究十分必要。對使用Creo使用者來說,定制化研究不但能滿足使用者個性化的使用要求,還能提高工作效率、減少出錯率,避免一些重復性的勞動,是一項非常值得去做的工作。從互聯網最近幾年來發表的文章看,Creo定制化的研究越來越受到Creo使用者的重視,相關定制化研究成果也越來越多。

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

為此,Creo軟件提供了豐富的二次開發接口,為解決Creo擴展應用提供了途徑。本文利用Creo提供的二次開發接口:Pro/ToolKit和VS2012(Microsoft Visual Studio 2012)集成開發環境,開發出了Creo工程圖自動轉檔程序,簡化了Creo工程圖轉檔的操作,實現了批量自動轉化功能。

1 "開發環境及配置

1.1 "開發環境

操作系統:Microsoft Windows 7 SP1。

開發軟件:Microsoft Visual Studio 2012。

Creo3.0二次開發工具:Pro/ToolKit。

1.2 "開發配置

包含文件的設置(Include Directories)

…\protoolkit\includes\

包含庫文件的設置(Library Directories)

…\protoolkit\x86_win64\obj\

項目設置-附加庫的設置(Additional Dependencies)

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

忽略的默認庫(Ignore Specific Default Libraries)

libcmtd.libmsvcrt.liblibcmt.lib

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

PRO_USE_VAR_ARGS

字符設置(Character Set)

Use Unicode Character Set

1.3 "MFC和同步模式[1]

Pro/Toolkit應用程序同步模式中的共享動態鏈接庫模式(DLL)。

1.4 "開始函數和結束函數[2]

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

{

AFX_MANAGE_STATE(AfxGetStaticModuleState());

//添加用戶代碼:實現過程代碼;

}//開始函數

extern \"C\" void user_terminate()

{

AFX_MANAGE_STATE(AfxGetStaticModuleState()); return;

}//結束函數

1.5 "注冊文件編寫和加載運行

注冊文件protk.dat,編寫如下內容。

name " " " 轉檔//加載程序名稱

exec_file " "x:\xx\drwtocad\drwtocad.dll//執行文件絕對路徑

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

startup " " "dll "http://執行模式

delay_start " 1 "http://是否延遲啟動 否

allow_stop " true "http://允許停止運行 否

end

通過菜單“工具-輔助應用程序”啟動“轉檔”,完成程序加載運行。

2 "實現方法和主要編程代碼

2.1 "實現方法

利用VS中MFC對話框技術建立程序交互界面,設置必要的需要進行交互的工具對象,比如轉檔文件列表控件,轉檔的文件路徑按鈕、轉檔后的文件路徑按鈕、圖紙簽署開關、階段標識選擇和更改文件名等。

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

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

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

2.2 "主要編程代碼

DWG文件轉檔函數:Pro2dExport(),PDF文件轉檔函數:ProPDFExport()。

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

format //轉檔后的文檔格式,這是個枚舉類型的數據(例如轉DWG格式:PRO_DWG_FILE);

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

model " //需要轉檔的DRW文件;

data " "http://轉檔輸出構造器,可以設置為NULL;

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

model " " "http://需要轉檔的DRW文件;

output_file " " "http://導出PDF的文件路徑加文件名;

options " " //導出PDF的配置選項,常用配置選項:PRO_PDFOPT_RASTER_DPI,設置導出PDF分辨率,取值范圍100~600,默認值300;PRO_PDFOPT_CO LOR_DEPTH設置導出文件頁面顏色;PRO_PDFOPT _SHEETS設置導出文件的頁面,默認是導出所有頁面;PRO_PDFOPT_LAUNCH_VIEWER導出PDF文件是否默認打開等;

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

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

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

模型加載函數:ProMdlFiletypeLoad()。把指定路徑中的模型文件加載到內存中,用于后續對模型文件進行操作。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 是否簡化模型顯示;

ProMdl* p_handle 模型句柄

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

ProMdlToModelitem(mdl,amp;owner);//模型句柄轉化為模型項;

ProParameterInit(amp;owner,name,amp;param);使用參數名稱name初始化模型項參數數據;

ProParameterValueGet(amp;param,amp;paravalue);根據模型項參數獲取參數值。

示例代碼(截取):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文件按行讀取簽署人員名字,數據類型從CString轉化為wchar_t,以寬字符串創建Creo文本注釋,按圖紙幅面簽署位置把文本注釋寫在該位置,完成簽署從文本文件到工程圖文件的轉變。

示例代碼(截取):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);獲取階段標識并寫入工程圖中。階段標識的創建是讀取用戶對階段標識的選取操作,根據選擇進行相應階段文件創建,并寫入工程圖相應位置,實現方式與獲取簽署文件人員姓名類似。示例代碼(截取):GetJieDuanBiaoShi(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;

}

………………

}

工程圖按圖號+圖紙名稱轉檔成DWG或者PDF,是通過DrwToDwgOrPDF()自定義函數實現的。首先根據Pro2dExport()或者ProPDFExport()進行格式轉化,按Creo默認配置進行格式轉化,然后使用CFile::Rename(oldPath,newPath)對轉化成功的文件進行重命名,實現工程圖文件按圖號+圖紙名稱的轉檔目的。

工程圖按幅面輸出是根據圖紙幅面大小建立幅面大小的文件夾,通過獲取工程圖文件幅面的大小,轉檔時按工程圖幅面大小放入相應的文件夾內。

2.3 "開發程序應用實例

按本文上述方法,開發的程序界面(圖1),該程序能夠顯示當前工作目錄下的工程圖文件,提取工程圖的圖號、名稱、頁數等。

3 "結束語

綜上所述,本文給出的Pro/Toolkit的工程圖批量轉檔程序,經過實踐證明,大大提高了設計人員工程圖轉檔的效率,滿足了電子圖紙轉檔格式的不同需求。此實現方法具有很好的可行性和實際應用價值,本實例對利用Creo其他應用開發具有借鑒作用。

參考文獻:

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

[2] 賴朝安.Pro/ENGNEER二次開發的關鍵技術[J].機械設計與制造工程,2003,30(1):43-45.

主站蜘蛛池模板: 毛片视频网址| 亚洲欧美日韩另类在线一| 国产乱子伦精品视频| 成人毛片免费在线观看| 欧美一级爱操视频| 国产成人艳妇AA视频在线| 无码精品国产dvd在线观看9久| 精品亚洲欧美中文字幕在线看| 99精品免费欧美成人小视频| 久久久久九九精品影院| 精品免费在线视频| 欧美日韩动态图| 精品国产网站| 免费Aⅴ片在线观看蜜芽Tⅴ| 狠狠综合久久| 亚洲天堂网站在线| 国产无码高清视频不卡| 91日本在线观看亚洲精品| 亚洲欧美综合另类图片小说区| 丰满少妇αⅴ无码区| 亚洲第一黄色网址| 日韩人妻无码制服丝袜视频| 国产美女在线观看| 国产乱人伦AV在线A| 欧美视频在线播放观看免费福利资源| 午夜免费视频网站| 亚洲大尺度在线| 久久这里只有精品23| 97视频在线精品国自产拍| 国产99热| 2021国产在线视频| 国产成+人+综合+亚洲欧美| 日韩精品久久无码中文字幕色欲| 欧美日韩国产在线人成app| 女人天堂av免费| 狠狠色狠狠色综合久久第一次| 亚洲AV成人一区二区三区AV| 国产午夜精品鲁丝片| 亚洲激情区| 波多野结衣亚洲一区| 亚洲免费三区| 无码'专区第一页| 狠狠五月天中文字幕| 国产在线欧美| 免费国产黄线在线观看| 91无码人妻精品一区| 国产成人免费观看在线视频| 国产精品欧美亚洲韩国日本不卡| 国产一区二区三区在线观看视频| 免费观看成人久久网免费观看| 91无码视频在线观看| 婷婷六月色| 国产在线一二三区| 高清码无在线看| 亚洲日韩久久综合中文字幕| 亚洲另类国产欧美一区二区| 中文字幕亚洲综久久2021| 999国产精品永久免费视频精品久久| 日日碰狠狠添天天爽| 精品无码国产自产野外拍在线| 女人毛片a级大学毛片免费| 日韩乱码免费一区二区三区| 毛片一区二区在线看| 久久精品无码中文字幕| 婷婷激情亚洲| 国内毛片视频| 色综合久久88| 欧美 亚洲 日韩 国产| 不卡无码h在线观看| 国产91丝袜在线播放动漫 | 67194亚洲无码| 老司机精品一区在线视频| 免费看美女毛片| 亚洲品质国产精品无码| 久久综合亚洲鲁鲁九月天| 婷婷丁香色| 亚洲综合专区| 亚洲天堂网站在线| www.亚洲国产| 亚洲欧美精品一中文字幕| 亚洲欧洲日产国产无码AV| 美女无遮挡拍拍拍免费视频|