QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
10天前
全站
goto3d 说: 版主微信号:caivin811031;还未入三维微信群的小伙伴,速度加
2022-07-04
查看: 1766|回复: 0
收起左侧

[分享] 【实例教程】中望3D PDF输出控件制作

[复制链接]
发表于 2017-7-26 10:40:32 | 显示全部楼层 |阅读模式

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 Abby001 于 2017-7-27 10:18 编辑
& \/ K3 N, y3 I. M3 ]
! f. H  B% A& ]$ l       1.引言8 K7 P$ j! z; d- B5 X, N+ `9 `
       使用三维CAD软件的工程师都知道,要将三维模型保存成3D PDF格式,需要通过另存为,选择PDF格式才可以。如果一个装配中有多个零件需要存成3D PDF格式,操作就比较繁琐。在这种情况下,可利用中望3D的API函数,根据客户的特殊用途进行软件的个性化定制和二次开发,从而大大提高工作的效率,深度满足企业的要求。
! R- k2 t1 N" t       2.二次开发准备
7 v" E5 n. ?9 b3 F3 Y: p       2.1系统需求:8 c7 P' q* `7 R; I7 P& y
       1)Windows7 或以上系统;' ~; p6 c% I/ _5 y1 W# R
       2)Visual Studio 2012(或者任意能够创建C/C++的IDE工具);
$ \& I; ~, q$ ]9 T- k& i       3)中望3D 2012或以上版本软件(本文使用中望3D 2017);1 ?3 y; I3 i0 _8 \) Y0 W7 Z" M" z: M: g
       3.创建二次开发程序
* L( R" u5 T0 F- w2 E  `       3.1 打开Visual Studio 2012,选择新建项目,选择Win32控制台应用程序,然后在名称中输入FileExport,选择程序生成位置,完成后选择确定。
  b3 d$ i, G; \4 u/ z( ]
image002.jpg
图3-1
       3.2选择下一步。
4 y$ a0 T: b; e: G) }
image003.jpg
图3-2
       3.3 选择应用程序类型为DLL,选择附加选项为空项目,然后点击完成。
' d* Z) }+ ?# k$ e: b( s
image004.jpg
图3-3
       3.4 右键FileExport项目,选择添加,选择新建项,或者使用快捷键Ctrl+Shift+A,分别创建FileExport.cpp源文件和FileExport.def文件。$ b3 _5 Z1 ~8 H- z7 P/ t2 R
image005.jpg
图3-4
image006.jpg
图3-5
image007.jpg
图3-6
       3.5 右键FileExport项目,选择属性,进入FileExport属性页。(注意:如果是64位系统,平台必须选择X64!)选择C++,选择常规,选择附件包含目录,在该目录中输入安装目录下API文件夹的地址,如图3-7所示。) c4 \5 z5 g" S9 v" B. B
image008.jpg
图3-7
       3.6在FileExport属性页中,选择链接器,选择常规,在附加库目录中输入中望3D安装目录地址,(注意:如果是64位系统,平台必须选择X64!)如图3-8所示。
6 H% l: x. E8 ?; k" }% U$ m) [
image009.jpg
图3-8
       3.7 在FileExport属性页中,选择链接器,选择输入,在附加依赖项中输入zw3d.lib,(注意:如果是64位系统,平台必须选择X64!)如图3-9所示。8 k( B: w, j( S- X9 V# V7 d' f0 p2 {3 V& j
image010.jpg
图3-9
       3.8输入以下代码,定义项目中的FileExport.cpp文件。7 s/ D7 y* M* T; u1 d% }! S
       #include<stdio.h>
( v. }1 ^) n' ^- z# c       #include<string.h>
9 y8 r+ z% k, U% S: |2 |       #include"VxApi.h"
* O& h8 l1 c1 B) t       intFileExportPdf(void);
1 A$ I+ q' ?5 b       intFileExportInit(intformat, void *data)
* M$ C  r# Q' a7 e+ S( O       {
  n! @# x; f. I% q       cvxCmdFunc("FileExportPdf", (void*)FileExportPdf, VX_CODE_GENERAL);, ~- ~5 m1 `7 n3 U. t
       return 0;# H$ p( y* h9 i& i0 i
       }- J; }$ L. b. f* ]6 G
       intFileExportExit(void)
) K% O9 O% ~! |2 p6 ]. B1 g       {, @8 l. L  G& P7 w
       cvxCmdFuncUnload("FileExportImg");7 q; N0 S" v; U$ W
       cvxCmdFuncUnload("FileExportPdf");4 v$ `6 b' v. v1 f) \% c& q
       return 0;
4 c0 K: [7 o* D/ _" d4 x- m       }
) D$ Z" u) @* s       intFileExportPdf(void)6 y) s4 O0 A# n% |2 c
       {
* }: S( c6 n5 l6 B. l       intiRet = 0;2 u# k( M. r" a# ?$ U* R  N7 v
       vxNameExportName;
$ t9 e+ p4 {0 @* [/ T       vxPathFilePath;% j0 Y7 \) R3 i' i
       svxPdfDataPdfData;
2 |( ?, C9 N' @, U. F       cvxFileDirectory(FilePath);' n5 `2 ?( J& P3 e, I1 ~; ?
       iRet = strcpy_s(ExportName, "test.pdf");  V1 A5 K1 r1 q, b
       if (FilePath[0]). a: `/ F5 `: ]$ ?9 F) e( s
       iRet = cvxPathCompose(FilePath, ExportName);, k; o! [" z2 u
       else8 J$ B# w$ K; z9 H% Z* w8 F
       iRet = strcpy_s(FilePath, "test.pdf");% l/ |8 N& ]' w
       if (iRet)* I+ g( N1 O0 O1 ~* l; E: O) i! V
           {5 [9 w; S, o: M1 ?
       cvxMsgDisp("Fail to find the export path.");
% x4 n5 K! u$ N       returniRet;      
  G, }* {1 l3 O           }
4 g5 \$ \$ i% p- T0 y  }1 T+ u4 O       cvxMemZero((void*)&PdfData, sizeof(PdfData));; y9 ^3 M4 g* i3 e; c7 W1 V
       PdfData.PaperHeight = 300;3 F5 v6 t6 L6 e. V6 R$ n. f! H
       PdfData.PaperWidth = 220;
. ~) S6 ]- F9 W! O, h7 R       PdfData.RangeMode = VX_EXPORT_PDF_RANGE_MODE_NORMAL;
' g0 i% @: t; O' F       PdfData.Type = VX_EXPORT_PDF_TYPE_OBJECT;* m' _) Z3 J! Q$ m9 C3 [9 m1 |. Z: k7 o
       iRet = cvxFileExport(VX_EXPORT_TYPE_PDF, FilePath, (void*)&PdfData);
- U1 F: T. U8 U9 h       if (iRet), K0 a. g; a, k8 x1 }. V0 o( g
       cvxMsgDisp("Fail to save as pdf format.");+ K$ |. m% d, j- G7 F  x
       else
; c- I' C' h2 S# ?; v  \$ C, i: ~       cvxMsgDisp("File is saved successfully.");
  }  {5 K: R4 _' v' L) \7 E' j' A       returniRet;
0 i* c" T+ f9 ~& h9 R) J  s, m       };
* }0 ]# Q4 I0 l; O  _1 {9 }
image011.jpg
图3-10
       3.9 输入以下代码,定义项目中的FileExport.def文件。( W4 a8 C5 T2 m% R
       LIBRARY        FileExport.dll
3 B7 n% P# z# B, D8 w0 ]& [       EXPORTS) v. i# Q% l1 |% b& R2 k
               FileExportInit& S5 y3 D8 t6 C5 y
               FileExportExit6 o9 `6 w8 L" `+ M$ {3 ?4 G/ f
               FileExportImg
  {; M6 y& p; U# y/ U6 F8 N$ T( Q       FileExportPdf3 m8 H, R$ ]0 @9 m
image012.jpg
图3-11
       3.11 右键FileExport项目选择生成,在该项目目录中Debug文件夹下会产生FileExport.dll应用程序文件。  d7 U0 {5 ~- @8 q) q9 A, _- f
image013.jpg
图3-12
       3.12 在中望3D安装目录下,新建文件夹apilibs文件夹,将FileExport.dll文件复制到该文件夹中,即在中望3D中加载该应用程序。
/ t( X( k4 v! J  x! N
image014.jpg
图3-13
       3.13 打开中望3D,选择应用程序管理器,选择插件应用程序。我们可以看到,FileExport程序已经加载到了中望3D。. L9 W" j, Y+ B/ l, g
image015.jpg
图3-14
       3.14 下面我们来使用一下这个程序,在中望3D中新建一个块零件并保存到桌面,然后在命令框中输入~符号,然后通过方向键选中FileExportPdf应用程序,然后回车输入该程序,在桌面我们得到了这个零件的3D PDF文件。+ }6 F" d, |9 H$ q4 f
   image016.jpg
image017.jpg
图3-15
       4.定制二次开发工具栏, W6 P( P' f7 e5 z
       每次要在输入框中手动输入~FileExportPdf命令太麻烦,下面,我们来介绍一下如何将二次开发程序添加到工具栏或指定位置。
, @$ {- p! b) [6 d- D) e       4.1 在中望3D零件环境下,选择工具,选择自定义,进入自定义界面。
- `2 T9 q( F5 z$ P- `- k
image018.jpg
图4-1
       4.2 在自定义命令界面中,点击添加命令按钮,按图4-2依次输入按钮名称、PNG图标等属性。
' v6 a8 x6 `/ X+ r
image019.jpg
图4-2
       4.3 在自定义转换界面中,先找到4.2中创建的FileExport命令。然后,用鼠标将该命令拖动到图4-3所示位置,或者拖动到您所指定的位置,选择应用。* w' e3 J) n- g
image020.jpg
图4-3
       5.命令使用测试/ n* ~8 R' R* J" q! L
       这样我们就在中望3D实用工具栏中添加了FileExport这个命令按钮,接下来,我们就可以直接在造型选项栏中使用该命令了,在测试零件所在位置就可以得到一个3D PDF,如图5-1所示。6 U; Q- P2 l4 z& ?: F/ P
image021.jpg
image022.jpg   
图5-1
       总结:) @* ^) g. D5 k
       本教程给大家简单介绍了中望3D二次开发的流程,思路是在Visual Studio中创建dll程序,再将该程序加载到中望3D中。通过二次开发,我们将原本需要点四步的操作,简化到只需要一步,大大提高了工作效率,当然,在此教程的基础上,我们还可以进一步开发,将输出PDF的操作批量化,附件是本教程的所有程序,大家一起动手,开启您的中望3D私人定制之旅吧!
5 y9 N* S7 [; v; K, p2 I       马上下载中望3D2017版,体验智能设计,让创意无极限:http://www.zw3d.com.cn/product-58-1.html4 R6 S! d$ R5 I6 W
       Z3是什么格式文件:http://www.zw3d.com.cn/blog/201503131763.html
% C2 z$ u  o- D         image023.jpg $ `# L, ~9 F' d

* P, n  ~. O, r# ^6 ]
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备13008828号-1 )

快速回复 返回顶部 返回列表