ZW3D 2019 二次开发
文章写的比较早,目前ZW3D 已经更新到 2023,但基础框架应该是一样的。
环境
下载安装 中望 3D ,安装 Visual Studio 。下载 中望 3D 界面编辑工具。
SDK 在 ZW3D 安装包中: [InstallDIr]zw3d.lib…………………………………………….lib 文件 [InstallDir]api\VxApi.h………………………………………..头文件 [InstallDIr]api\ZW3D API introduction.pdf ……………..开发指引 [InstallDir]api\ApiDoc.zip……………………………………开发文档 [InstallDir]api\ApiExample.zip…………………………….示例
第一步
第一步,按照 ZW3D API introduction.pdf 进行学习,完成 第 1、2、3、4、5、6 节。 其中有些问题需要注意:
1. 如果使用 Visual Studio 2017 及以上版本,会遇到错误 C2664
error C2664: “void cvxMsgDisp(char *)”: 无法将参数 1 从“const char [16]”转换为“char *”
错误原因:##
参照msdn
zw3d 的很多接口参数类型为 char*,这可能导致对静态字符串的更改。
解决方案:
工程属性 – c/c++ – 语言 – 符合模式 设为 否
2. 命令对话框可能显示不出来
在使用 zw3d 界面编辑工具编辑对话框后,如果对话框无法显示,可能是对话框布局有问题,需要进行以下调整:
在右侧对象树中选中 drawbackBoxGroup ,右键 Layout-> Lay Out Horizontally。(如果不可选,需要先将之前的编组 Break Layout) 。
这里与文档所述不太一样,不能只选中自己添加的控件进行 Layout,而是要跟 GroupBox 编在一起。
其它的参照文档即可。
命令机制
ZW3D 有两种命令,直接执行的命令和先弹出命令对话框的命令。
1. 直接命令
如文档中的 HelloZW3DAPI 命令,是一个直接命令,调用方式为 ~HelloZW3DAPI ,调用后直接进入命令函数
2. 先弹出对话框的命令
如文档中的 SetColor 命令,先选择实体,再给实体设置颜色,调用方式为 !SetColor 。
这种命令的逻辑为
- 调用对话框
- 调用命令,将对话框 id 传给命令
- 命令中可以通过对话框 id 获取对话框数据
这恰恰与文档中第 5 节的内容,调用 ZW3D 命令 相呼应。 要模拟调用一个 ZW3D 命令,应当做的步骤是记录该命令执行过程中调用的对话框,设置的对话框数据,模拟这一过程。
文章写于 2019-07-05, 于2023-03-21 迁移到掘金。