• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

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

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

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

    中圖分類號: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軟件,在電子結(jié)構(gòu)設(shè)計中得到廣泛應(yīng)用,但作為通用軟件,在滿足個性化需求方面就有些欠缺,因此,進行Creo定制化的研究十分必要。對使用Creo使用者來說,定制化研究不但能滿足使用者個性化的使用要求,還能提高工作效率、減少出錯率,避免一些重復性的勞動,是一項非常值得去做的工作。從互聯(lián)網(wǎng)最近幾年來發(fā)表的文章看,Creo定制化的研究越來越受到Creo使用者的重視,相關(guān)定制化研究成果也越來越多。

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

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

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

    …\protoolkit\x86_win64\obj\

    項目設(shè)置-附加庫的設(shè)置(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

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

    Use Unicode Character Set

    1.3 "MFC和同步模式[1]

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

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

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

    {

    AFX_MANAGE_STATE(AfxGetStaticModuleState());

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

    }//開始函數(shù)

    extern \"C\" void user_terminate()

    {

    AFX_MANAGE_STATE(AfxGetStaticModuleState()); return;

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

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

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

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

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

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

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

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

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

    end

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

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

    2.1 "實現(xiàn)方法

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

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

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

    最后利用Pro2dExport()導出DWG文件、ProPDFExport()導出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)檔后的文檔格式,這是個枚舉類型的數(shù)據(jù)(例如轉(zhuǎn)DWG格式:PRO_DWG_FILE);

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

    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://導出PDF的文件路徑加文件名;

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

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

    遍歷文件函數(shù):ProFilesList。獲取指定目錄下的文件清單,根據(jù)設(shè)置的過濾器(文件擴展名)。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//設(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ù)對模型文件進行操作。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):自定義函數(shù),獲取工程圖的名稱和圖號等信息,內(nèi)部主要使用的函數(shù)如下:

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

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

    ProParameterValueGet(amp;param,amp;paravalue);根據(jù)模型項參數(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);獲取階段標識并寫入工程圖中。階段標識的創(chuàng)建是讀取用戶對階段標識的選取操作,根據(jù)選擇進行相應(yīng)階段文件創(chuàng)建,并寫入工程圖相應(yīng)位置,實現(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;

    }

    ………………

    }

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

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

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

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

    3 "結(jié)束語

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

    參考文獻:

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

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

    阜新市| 饶阳县| 阿拉善盟| 利津县| 汝阳县| 英山县| 桑植县| 罗田县| 托里县| 柳林县| 禄劝| 峨眉山市| 曲周县| 新蔡县| 安阳市| 利辛县| 荔波县| 彰化县| 玛纳斯县| 泰来县| 屏边| 耒阳市| 南充市| 古丈县| 鄂伦春自治旗| 浮山县| 延安市| 娄底市| 无极县| 清远市| 化德县| 习水县| 上虞市| 湄潭县| 临江市| 广东省| 宁强县| 溧水县| 百色市| 长春市| 陆丰市|