|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 Abby001 于 2017-7-27 10:18 编辑
1 F7 ?, f7 k* @3 p4 i# h S
) V& N* `2 ~# Z 1.引言/ O: V0 B2 K& m% F. d
使用三维CAD软件的工程师都知道,要将三维模型保存成3D PDF格式,需要通过另存为,选择PDF格式才可以。如果一个装配中有多个零件需要存成3D PDF格式,操作就比较繁琐。在这种情况下,可利用中望3D的API函数,根据客户的特殊用途进行软件的个性化定制和二次开发,从而大大提高工作的效率,深度满足企业的要求。% J8 E8 w" ]7 i* V
2.二次开发准备+ L/ M% J) u `
2.1系统需求:
) w3 \# Z: p( o* Z1 r, d' S. o 1)Windows7 或以上系统;4 j# t5 s2 g: n; f+ t. r. A
2)Visual Studio 2012(或者任意能够创建C/C++的IDE工具);7 i# i- z# R4 b p+ i3 |- a
3)中望3D 2012或以上版本软件(本文使用中望3D 2017);
$ @+ h# y t* t( _8 E 3.创建二次开发程序
" N, u# [( P8 P$ P0 b 3.1 打开Visual Studio 2012,选择新建项目,选择Win32控制台应用程序,然后在名称中输入FileExport,选择程序生成位置,完成后选择确定。
9 L1 L# d2 w" I i图3-1 3.2选择下一步。( m2 S/ q1 I! I% f
图3-2 3.3 选择应用程序类型为DLL,选择附加选项为空项目,然后点击完成。- s' M+ j2 E. m, M N0 b; I) F
图3-3 3.4 右键FileExport项目,选择添加,选择新建项,或者使用快捷键Ctrl+Shift+A,分别创建FileExport.cpp源文件和FileExport.def文件。8 ?& v/ p! j3 k7 l* q' _, c1 q
图3-4 图3-5 图3-6 3.5 右键FileExport项目,选择属性,进入FileExport属性页。(注意:如果是64位系统,平台必须选择X64!)选择C++,选择常规,选择附件包含目录,在该目录中输入安装目录下API文件夹的地址,如图3-7所示。
h9 q6 \: ?4 W& h图3-7 3.6在FileExport属性页中,选择链接器,选择常规,在附加库目录中输入中望3D安装目录地址,(注意:如果是64位系统,平台必须选择X64!)如图3-8所示。
9 W5 o* q% J; [7 k! Z图3-8 3.7 在FileExport属性页中,选择链接器,选择输入,在附加依赖项中输入zw3d.lib,(注意:如果是64位系统,平台必须选择X64!)如图3-9所示。+ g$ i+ Y i! {" [/ l% a- p
图3-9 3.8输入以下代码,定义项目中的FileExport.cpp文件。
$ s8 n B* K" E( ^+ ] #include<stdio.h>
% j5 f- E0 W+ ^; l2 F #include<string.h>/ e" n9 \, Q% x$ z3 h! A8 g. V I
#include"VxApi.h"
) Z. a+ ]) s W intFileExportPdf(void);
: U' V) Z i7 p) Q intFileExportInit(intformat, void *data)
3 t6 r, u& |1 w {/ O4 y* s# \7 q0 V8 T6 f
cvxCmdFunc("FileExportPdf", (void*)FileExportPdf, VX_CODE_GENERAL);: ~# h; z# {& B; e3 j! Y
return 0;7 @& S3 F i* S/ T( |7 C# \. l
}1 F) f! J! F8 i; ^' h
intFileExportExit(void)
% N. f% Y7 v: L) n4 { {
' v+ \1 D9 k! K& g7 f cvxCmdFuncUnload("FileExportImg");* X. G- B Q, |0 w: |3 b3 Z; {
cvxCmdFuncUnload("FileExportPdf");0 F& _& L+ j, B' j. }- {
return 0;
3 @1 _1 n$ S" H; Q1 J; `2 f }
@. n! _9 q# x5 X: z intFileExportPdf(void)
; E# O: q, ^1 \) ~ {$ V4 r2 ^" h# g# a5 \
intiRet = 0;( L$ M J7 C$ N& P) `1 S5 ?
vxNameExportName;
& m) s7 M8 S s% M. I3 T* V5 I vxPathFilePath;
" O! H# I+ Q+ K0 Y% K svxPdfDataPdfData;3 Y# L: b$ o0 @# V' e" P
cvxFileDirectory(FilePath);' Z' x4 w3 r5 U) {; q% p9 I$ k
iRet = strcpy_s(ExportName, "test.pdf");; c7 N3 V7 A. w, @
if (FilePath[0])
4 _9 \$ _) Q% `, G. E9 C. H: i9 O0 r iRet = cvxPathCompose(FilePath, ExportName);5 G7 l. f) x( s z9 m
else
# B5 D+ o# P! \& w iRet = strcpy_s(FilePath, "test.pdf");
& H z$ B3 c" O2 N; ? if (iRet)0 @% @8 L8 _( c# E I. `" j
{
9 C* ?% x- o: V cvxMsgDisp("Fail to find the export path.");& v W' Y) _" F2 |" E; K* d
returniRet; $ D' V( h' s& S- P9 H% L, M
}' p- j7 l3 N S
cvxMemZero((void*)&PdfData, sizeof(PdfData)); j, g2 D: ~) P
PdfData.PaperHeight = 300;+ q/ p0 A6 s9 y) [
PdfData.PaperWidth = 220;
; b( D! K( Y6 y9 Z' E1 T PdfData.RangeMode = VX_EXPORT_PDF_RANGE_MODE_NORMAL;
' L& v( U( o/ W+ [ PdfData.Type = VX_EXPORT_PDF_TYPE_OBJECT;
/ a9 m E$ b1 `( n. y iRet = cvxFileExport(VX_EXPORT_TYPE_PDF, FilePath, (void*)&PdfData);( i, l" E9 p7 l; |
if (iRet)- Y( }+ ^( z$ q3 W% R
cvxMsgDisp("Fail to save as pdf format.");
' i" C; d y/ u- {1 _$ G else
4 S1 T7 d) ^7 k& l" z4 H5 Q cvxMsgDisp("File is saved successfully.");! w' s" q$ I- k. X
returniRet;: e0 ^" s/ ^/ ^4 ~
};
" h$ e' b6 V0 G9 o, C7 ~- Z5 m! L图3-10 3.9 输入以下代码,定义项目中的FileExport.def文件。
% E8 D1 { ^- d8 g( N/ b LIBRARY FileExport.dll3 d7 |' W! j' A' D% @9 U: m
EXPORTS
: j6 o% ]: `+ H* k9 T FileExportInit5 k A# m) T" P; ?
FileExportExit
2 h% L0 f- t8 _ FileExportImg
% O% V6 E' {: Y) N FileExportPdf
, B5 b: {" v, j* Z4 y' R图3-11 3.11 右键FileExport项目选择生成,在该项目目录中Debug文件夹下会产生FileExport.dll应用程序文件。
3 F3 Z! V u5 }+ y' z' I7 b图3-12 3.12 在中望3D安装目录下,新建文件夹apilibs文件夹,将FileExport.dll文件复制到该文件夹中,即在中望3D中加载该应用程序。: m; l. a/ ` Q% o; f" w5 }% k& ]: D4 m
图3-13 3.13 打开中望3D,选择应用程序管理器,选择插件应用程序。我们可以看到,FileExport程序已经加载到了中望3D。0 ~( ?& x& y2 K* w5 D2 ?
图3-14 3.14 下面我们来使用一下这个程序,在中望3D中新建一个块零件并保存到桌面,然后在命令框中输入~符号,然后通过方向键选中FileExportPdf应用程序,然后回车输入该程序,在桌面我们得到了这个零件的3D PDF文件。
5 H# W6 B I' w9 p7 t; L7 q: n图3-15 4.定制二次开发工具栏
# e* _ N% i* }( F/ U" }( F 每次要在输入框中手动输入~FileExportPdf命令太麻烦,下面,我们来介绍一下如何将二次开发程序添加到工具栏或指定位置。
; x- x. O. k; S% C- } 4.1 在中望3D零件环境下,选择工具,选择自定义,进入自定义界面。; @- t) \$ A9 s I/ m
图4-1 4.2 在自定义命令界面中,点击添加命令按钮,按图4-2依次输入按钮名称、PNG图标等属性。
) p) r* D2 J- x3 R, |- O; h图4-2 4.3 在自定义转换界面中,先找到4.2中创建的FileExport命令。然后,用鼠标将该命令拖动到图4-3所示位置,或者拖动到您所指定的位置,选择应用。
; p0 n# d9 c3 u, T n图4-3 5.命令使用测试
: O% C3 X2 f o 这样我们就在中望3D实用工具栏中添加了FileExport这个命令按钮,接下来,我们就可以直接在造型选项栏中使用该命令了,在测试零件所在位置就可以得到一个3D PDF,如图5-1所示。
9 p* ]/ R; w. A2 ~图5-1 总结:
" [% @& M- e" Z' x& n 本教程给大家简单介绍了中望3D二次开发的流程,思路是在Visual Studio中创建dll程序,再将该程序加载到中望3D中。通过二次开发,我们将原本需要点四步的操作,简化到只需要一步,大大提高了工作效率,当然,在此教程的基础上,我们还可以进一步开发,将输出PDF的操作批量化,附件是本教程的所有程序,大家一起动手,开启您的中望3D私人定制之旅吧!
( n6 e" H8 V. X+ J0 J3 F 马上下载中望3D2017版,体验智能设计,让创意无极限:http://www.zw3d.com.cn/product-58-1.html
( T, @' D! F% F) ]. Y. V( i Z3是什么格式文件:http://www.zw3d.com.cn/blog/201503131763.html- d9 A! H* P6 F9 y, A" z) v8 P" b# S
1 L$ ^! Z" }( I& T0 W' Q
# A+ t9 G6 o2 v$ M+ M. f |
|