1.引言

使用三維CAD軟件的工程師都知道,要將三維模型保存成3D PDF格式,需要通過(guò)另存為,選擇PDF格式才可以。如果一個(gè)裝配中有多個(gè)零件需要存成3D PDF格式,操作就比較繁瑣。在這種情況下,可利用中望3D的API函數(shù),根據(jù)客戶的特殊用途進(jìn)行軟件的個(gè)性化定制和二次開(kāi)發(fā),從而大大提高工作的效率,深度滿足企業(yè)的要求。

2.二次開(kāi)發(fā)準(zhǔn)備

2.1系統(tǒng)需求:

1)Windows7 或以上系統(tǒng);

2)Visual Studio 2012(或者任意能夠創(chuàng)建C/C++的IDE工具);

3)中望3D 2012或以上版本軟件(本文使用中望3D 2017);

3.創(chuàng)建二次開(kāi)發(fā)程序

3.1 打開(kāi)Visual Studio 2012,選擇新建項(xiàng)目,選擇Win32控制臺(tái)應(yīng)用程序,然后在名稱中輸入FileExport,選擇程序生成位置,完成后選擇確定。

image002.jpg 

圖3-1

3.2選擇下一步。

image003.jpg 

圖3-2

3.3 選擇應(yīng)用程序類型為DLL,選擇附加選項(xiàng)為空項(xiàng)目,然后點(diǎn)擊完成。

image004.jpg 

圖3-3

3.4 右鍵FileExport項(xiàng)目,選擇添加,選擇新建項(xiàng),或者使用快捷鍵Ctrl+Shift+A,分別創(chuàng)建FileExport.cpp源文件和FileExport.def文件。

image005.jpg 

圖3-4

image006.jpg 

圖3-5

image007.jpg 

圖3-6

3.5 右鍵FileExport項(xiàng)目,選擇屬性,進(jìn)入FileExport屬性頁(yè)。(注意:如果是64位系統(tǒng),平臺(tái)必須選擇X64?。┻x擇C++,選擇常規(guī),選擇附件包含目錄,在該目錄中輸入安裝目錄下API文件夾的地址,如圖3-7所示。

image008.jpg 

圖3-7

3.6在FileExport屬性頁(yè)中,選擇鏈接器,選擇常規(guī),在附加庫(kù)目錄中輸入中望3D安裝目錄地址,(注意:如果是64位系統(tǒng),平臺(tái)必須選擇X64?。┤鐖D3-8所示。

image009.jpg 

圖3-8

3.7 在FileExport屬性頁(yè)中,選擇鏈接器,選擇輸入,在附加依賴項(xiàng)中輸入zw3d.lib,(注意:如果是64位系統(tǒng),平臺(tái)必須選擇X64?。┤鐖D3-9所示。

image010.jpg 

圖3-9

3.8輸入以下代碼,定義項(xiàng)目中的FileExport.cpp文件。

#include<stdio.h>

#include<string.h>

#include"VxApi.h"

intFileExportPdf(void);

intFileExportInit(intformat, void *data)

{

cvxCmdFunc("FileExportPdf", (void*)FileExportPdf, VX_CODE_GENERAL);

return 0;

}

intFileExportExit(void)

{

cvxCmdFuncUnload("FileExportImg");

cvxCmdFuncUnload("FileExportPdf");

return 0;

}

intFileExportPdf(void)

{

intiRet = 0;

vxNameExportName;

vxPathFilePath;

svxPdfDataPdfData;

cvxFileDirectory(FilePath);

iRet = strcpy_s(ExportName, "test.pdf");

if (FilePath[0])

iRet = cvxPathCompose(FilePath, ExportName);

else

iRet = strcpy_s(FilePath, "test.pdf");

if (iRet)

    {

cvxMsgDisp("Fail to find the export path.");

returniRet;

    }

cvxMemZero((void*)&PdfData, sizeof(PdfData));

PdfData.PaperHeight = 300;

PdfData.PaperWidth = 220;

PdfData.RangeMode = VX_EXPORT_PDF_RANGE_MODE_NORMAL;

PdfData.Type = VX_EXPORT_PDF_TYPE_OBJECT;

iRet = cvxFileExport(VX_EXPORT_TYPE_PDF, FilePath, (void*)&PdfData);

if (iRet)

cvxMsgDisp("Fail to save as pdf format.");

else

cvxMsgDisp("File is saved successfully.");

returniRet;

};

image011.jpg 

圖3-10

3.9 輸入以下代碼,定義項(xiàng)目中的FileExport.def文件。

LIBRARYFileExport.dll

EXPORTS

FileExportInit

FileExportExit

FileExportImg

FileExportPdf

image012.jpg 

圖3-11

3.11 右鍵FileExport項(xiàng)目選擇生成,在該項(xiàng)目目錄中Debug文件夾下會(huì)產(chǎn)生FileExport.dll應(yīng)用程序文件。

image013.jpg 

圖3-12

3.12 在中望3D安裝目錄下,新建文件夾apilibs文件夾,將FileExport.dll文件復(fù)制到該文件夾中,即在中望3D中加載該應(yīng)用程序。

image014.jpg 

圖3-13

3.13 打開(kāi)中望3D,選擇應(yīng)用程序管理器,選擇插件應(yīng)用程序。我們可以看到,F(xiàn)ileExport程序已經(jīng)加載到了中望3D。

image015.jpg 

圖3-14

3.14 下面我們來(lái)使用一下這個(gè)程序,在中望3D中新建一個(gè)塊零件并保存到桌面,然后在命令框中輸入~符號(hào),然后通過(guò)方向鍵選中FileExportPdf應(yīng)用程序,然后回車輸入該程序,在桌面我們得到了這個(gè)零件的3D PDF文件。

image016.jpg

image017.jpg  

圖3-15

4.定制二次開(kāi)發(fā)工具欄

每次要在輸入框中手動(dòng)輸入~FileExportPdf命令太麻煩,下面,我們來(lái)介紹一下如何將二次開(kāi)發(fā)程序添加到工具欄或指定位置。

4.1 在中望3D零件環(huán)境下,選擇工具,選擇自定義,進(jìn)入自定義界面。

image018.jpg 

圖4-1

4.2 在自定義命令界面中,點(diǎn)擊添加命令按鈕,按圖4-2依次輸入按鈕名稱、PNG圖標(biāo)等屬性。

image019.jpg 

圖4-2

4.3 在自定義轉(zhuǎn)換界面中,先找到4.2中創(chuàng)建的FileExport命令。然后,用鼠標(biāo)將該命令拖動(dòng)到圖4-3所示位置,或者拖動(dòng)到您所指定的位置,選擇應(yīng)用。

 image020.jpg

圖4-3

5.命令使用測(cè)試

這樣我們就在中望3D實(shí)用工具欄中添加了FileExport這個(gè)命令按鈕,接下來(lái),我們就可以直接在造型選項(xiàng)欄中使用該命令了,在測(cè)試零件所在位置就可以得到一個(gè)3D PDF,如圖5-1所示。

 image021.jpg

image022.jpg 

圖5-1

總結(jié):

本教程給大家簡(jiǎn)單介紹了中望3D二次開(kāi)發(fā)的流程,思路是在Visual Studio中創(chuàng)建dll程序,再將該程序加載到中望3D中。通過(guò)二次開(kāi)發(fā),我們將原本需要點(diǎn)四步的操作,簡(jiǎn)化到只需要一步,大大提高了工作效率,當(dāng)然,在此教程的基礎(chǔ)上,我們還可以進(jìn)一步開(kāi)發(fā),將輸出PDF的操作批量化,附件是本教程的所有程序,大家一起動(dòng)手,開(kāi)啟您的中望3D私人定制之旅吧!

馬上下載中望3D2017版,體驗(yàn)智能設(shè)計(jì),讓創(chuàng)意無(wú)極限:http://www.zw3d.com.cn/product-58-1.html

Z3是什么格式文件:http://www.zw3d.com.cn/blog/201503131763.html

image023.jpg

最新資訊 經(jīng)驗(yàn)技巧 CAD常見(jiàn)問(wèn)題