当前位置: 首页 > news >正文

【中望3D 2025】配置【vs2022】开发环境

一、下载安装vs2022

vs2022下载安装https://visualstudio.microsoft.com/zh-hans/downloads/下载安装社区版即可

二、下载安装中望3D 2025

中望3d下载安装https://pan.baidu.com/s/11jh6Ym3W4oWkLkYeSEaELQ?pwd=smis

2.1 安装zw3d

安装完不要打开,直接点x关闭即可

2.2 安装许可证

把crack文件夹里的patch.exe解压后放在根目录

点击运行

然后点击应用即可

三、配置二次开发环境

3.1 安装模板

模板安装程序在zw3d的安装目录中

打开vs验证

3.2 二次开发教程

教程一:官方下载

官方教程链接https://www.zwsoft.cn/support/zw3d-devdoc

教程二:安装包里的教程

四、二次开发例子

4.1 输出helloword(自带示例)

选择模板,创建项目

不需要改动任何代码,直接生成解决方案

把生成的解决方案放到zw3d的安装目录中

打开ZW 3D 2025

验证

4.2 输出helloworld(加强版)

修改内容

修改完记得再次生成解决方案,然后把解决方案放在apilib文件夹里,重新加载

选择上面的转换按钮

新建零件,测试功能

4.3 新建小方块

新建项目

新建项,命名为create_block

在cpp文件中写入以下内容

第一部分:注册和卸载命令
是用于创建zw 3d命令的,输入create_block执行某某程序

int RegisteBlockCommand(void){cvxCmdFunc("CreateBlockApi", (void*)CreateBlockApi, VX_CODE_GENERAL);return 0;
}int UnloadBlockCommand(void){cvxCmdFuncUnload("CreateBlockApi");return 0;
}

第二部分:编写创建方块的代码

int CreateBlockApi(void) {cvxMsgDisp("启动绘制正方体!!!");double length = 50.0;// 定义中心立方体数据结构szwCenterBoxData boxData = {};  // 初始化为0// 设置组合模式:新建特征boxData.combine = ZW_BOOL_BASE;// 基础体数量(用于布尔操作),此处为新建,所以为0或1均可,但需设为0更安全boxData.baseCount = 0;//boxData.baseList = NULL;  // 无基础体// 工作平面句柄:设为 NULL 使用默认基准平面(如XY平面)//boxData.planeHandle = NULL;// 是否使用自定义轴系(0=否,使用默认坐标系)boxData.useAxis = 0;//boxData.axis = NULL;  // 不使用自定义轴// 设置立方体尺寸(X, Y, Z方向长度)boxData.x = length;boxData.y = length;boxData.z = length;// 设置特征名称(注意:featureName 是字符数组,直接赋值)strcpy_s(boxData.featureName, sizeof(boxData.featureName), "myCube");boxData.featureName[sizeof(boxData.featureName) - 1] = '\0';  // 确保结尾// 设置建模公差boxData.tolerance = 0.02;// 【关键】调用 API 创建立方体int count = 1;szwEntityHandle* boxList = nullptr;// 检查返回结果ezwErrors res = ZwFeatureBoxCreateByCenter(boxData, &count, &boxList);// === 结果输出增强部分 ===if (res == ZW_API_NO_ERROR) {// 输出每个实体的句柄信息(可用于后续操作)cvxMsgDisp("创建成功!!!");}else {// 将错误码转换为可读字符串// 将错误码转换为可读字符串const char* errorMsg = "未知错误";switch (res) {case ZW_API_GENERAL_ERROR:           errorMsg = "操作失败"; break;case ZW_API_INVALID_INPUT:           errorMsg = "输入参数无效"; break;case ZW_API_ROOT_OBJ_ACT_FAIL:       errorMsg = "根对象激活失败"; break;case ZW_API_WRONG_ROOT_ENV:          errorMsg = "未在有效建模会话中"; break;case ZW_API_CMMD_INIT_ERROR:         errorMsg = "命令初始化失败"; break;case ZW_API_INPUT_ERROR:             errorMsg = "输入参数错误"; break;case ZW_API_CMMD_EXEC_ERROR:         errorMsg = "命令执行失败"; break;default:                             errorMsg = "其他错误"; break;}cvxMsgDisp(errorMsg);}// 清理返回的实体列表内存(非常重要!API 分配的内存需手动释放)ZwEntityHandleListFree(count, &boxList);return int(res);
}

create_block.cpp全部内容如下:

#include "..\inc\ZW3D_create_blockPr.h"
#if _MSC_VER
#define snprintf _snprintf
#endif
static int CreateBlockApi(void);int RegisteBlockCommand(void){cvxCmdFunc("CreateBlockApi", (void*)CreateBlockApi, VX_CODE_GENERAL);return 0;
}int UnloadBlockCommand(void){cvxCmdFuncUnload("CreateBlockApi");return 0;
}int CreateBlockApi(void) {cvxMsgDisp("启动绘制正方体!!!");double length = 50.0;// 定义中心立方体数据结构szwCenterBoxData boxData = {};  // 初始化为0// 设置组合模式:新建特征boxData.combine = ZW_BOOL_BASE;// 基础体数量(用于布尔操作),此处为新建,所以为0或1均可,但需设为0更安全boxData.baseCount = 0;//boxData.baseList = NULL;  // 无基础体// 工作平面句柄:设为 NULL 使用默认基准平面(如XY平面)//boxData.planeHandle = NULL;// 是否使用自定义轴系(0=否,使用默认坐标系)boxData.useAxis = 0;//boxData.axis = NULL;  // 不使用自定义轴// 设置立方体尺寸(X, Y, Z方向长度)boxData.x = length;boxData.y = length;boxData.z = length;// 设置特征名称(注意:featureName 是字符数组,直接赋值)strcpy_s(boxData.featureName, sizeof(boxData.featureName), "myCube");boxData.featureName[sizeof(boxData.featureName) - 1] = '\0';  // 确保结尾// 设置建模公差boxData.tolerance = 0.02;// 【关键】调用 API 创建立方体int count = 1;szwEntityHandle* boxList = nullptr;// 检查返回结果ezwErrors res = ZwFeatureBoxCreateByCenter(boxData, &count, &boxList);// === 结果输出增强部分 ===if (res == ZW_API_NO_ERROR) {// 输出每个实体的句柄信息(可用于后续操作)cvxMsgDisp("创建成功!!!");}else {// 将错误码转换为可读字符串// 将错误码转换为可读字符串const char* errorMsg = "未知错误";switch (res) {case ZW_API_GENERAL_ERROR:           errorMsg = "操作失败"; break;case ZW_API_INVALID_INPUT:           errorMsg = "输入参数无效"; break;case ZW_API_ROOT_OBJ_ACT_FAIL:       errorMsg = "根对象激活失败"; break;case ZW_API_WRONG_ROOT_ENV:          errorMsg = "未在有效建模会话中"; break;case ZW_API_CMMD_INIT_ERROR:         errorMsg = "命令初始化失败"; break;case ZW_API_INPUT_ERROR:             errorMsg = "输入参数错误"; break;case ZW_API_CMMD_EXEC_ERROR:         errorMsg = "命令执行失败"; break;default:                             errorMsg = "其他错误"; break;}cvxMsgDisp(errorMsg);}// 清理返回的实体列表内存(非常重要!API 分配的内存需手动释放)ZwEntityHandleListFree(count, &boxList);return int(res);
}

第三部分:在头文件中加入创建和卸载命令的调用函数

#pragma once#include "zwapi_cmd.h"
#include "zwapi_memory.h"
#include "zwapi_message.h"
#include <VxApi.h>
#include <zwapi_feature_shape.h>
#include <string.h>/* Function declaration */
int RegisterCustomCommand(void);
int UnloadCustomCommand(void);
int RegisterTemplateCommand(void);
int UnloadTemplateCommand(void);
int RegisterFormCommand(void);
int UnloadFormCommand(void);
int RegisteBlockCommand(void);
int UnloadBlockCommand(void);

第四部分:在主程序中调用函数

第五部分:生成dll,加载到zw3d中

把生成的解决方案复制到zw 3d的apilibs文件夹下

新建零件,点击按钮,运行成功

http://www.dtcms.com/a/531793.html

相关文章:

  • 基于定制开发开源AI智能名片S2B2C商城小程序的全方位种草模式研究
  • 实现Callable接口(了解即可)
  • 从入门到实操:贝叶斯分析完整技术步骤与核心R包指南
  • 做理财的网站有哪些内容长春一般建一个网站需要多少钱
  • C#开发后端:API 控制器(Controller)
  • 建湖人才网招工湛江怎么做网站关键词优化
  • 深入理解 Flink SQL 状态:原理、应用与优化
  • Product Hunt 每日热榜 | 2025-10-26
  • Java的语法与Python进行对比学习
  • 【MCAL实战】CanTrcv模块配置实践
  • coco 可视化 txt版
  • idea字体的问题(idea应用本身的字体问题)
  • 计算机操作系统 — 链接
  • 网站图片加altwordpress前端库加速
  • 在linux上使用docker搭建ELK日志框架
  • Docker 应该如何学习 分四个阶段
  • 面试过程中的扣分项,你踩过几个?
  • 中牟高端网站建设专做户外装备测评视频网站
  • CSS属性(二)
  • 2011年下半年试题四:论软件需求获取技术及应用
  • Mujoco 仿真 PPO 强化学习机械臂末端路径规划到达指定位置(代码讲解)
  • 【C#】EventHandler的使用
  • C++ 实际应用系列(第六部分):并发系统的性能优化与工程实践(完)
  • 上市公司网站建设分析wordpress 转 app
  • Prometheus+Grafana 智能监控告警系统(服务器指标采集、mysql指标采集)
  • html5电影网站如何做企业网站流量怎么做
  • <数据集>yolo煤矿安全帽识别数据集<目标检测>
  • excel中加载数据分析工具的步骤
  • 一文厘清:文库 vs 知识库、核心功能清单、开源方案对比
  • 图片转excel vlm 提取手写清单信息 Qwen/Qwen3-VL-235B-A22B-Instruct