news 2026/4/16 17:25:15

【三维建模】三维建模基础一

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【三维建模】三维建模基础一

本文涉及知识点

计算几何

效果图

各步骤及代码

长方体一

直接创建长方体。

SSolid1Param param=newSSolid1Param();Solid3d solid=newSolid3d();solid.CreateBox(param.m_XBottom1,param.m_YBottom1,param.m_ZBottom1);

减去长方体二


长方形向X方向拉伸60。

{//减去长方体Point3d pt=newPoint3d(-param.m_XBottom1/2,-param.m_YBottom2/2,-param.m_ZBottom1/2);Point3d[]pts=newPoint3d[4]{pt,pt,pt,pt};pts[1]=pts[1].Add(newVector3d(0,0,param.m_ZBottom2));pts[2]=pts[2].Add(newVector3d(0,param.m_YBottom2,param.m_ZBottom2));pts[3]=pts[3].Add(newVector3d(0,param.m_YBottom2,0));var pl=QinShiCad.RegionTools.CreateSimplePolyline3d(pts);Solid3d extrudedSolid=newSolid3d();extrudedSolid.CreateExtrudedSolid(pl,newVector3d(param.m_XBottom1,0,0),newSweepOptions());solid.BooleanOperation(BooleanOperationType.BoolSubtract,extrudedSolid);}

减去圆柱一


圆柱向z方向拉伸18。

Point3d O1=newPoint3d(0,-param.m_YBottom1/2,-param.m_ZBottom1/2);{//减去圆柱Circle circle=newCircle(O1,Vector3d.ZAxis,param.m_r1);Solid3d extrudedSolid=newSolid3d();extrudedSolid.CreateExtrudedSolid(circle,newVector3d(0,0,param.m_ZBottom1),newSweepOptions());solid.BooleanOperation(BooleanOperationType.BoolSubtract,extrudedSolid);}

大圆柱减小园柱


两个圆向y轴负方向拉伸。

Point3d O2=newPoint3d(O1.X,-O1.Y,O1.Z+param.m_disO1O2);Circle circle2=newCircle(O2,Vector3d.YAxis,param.m_r2);{Circle circle3=newCircle(O2,Vector3d.YAxis,param.m_r3);Solid3d extrudedSolid2=newSolid3d();extrudedSolid2.CreateExtrudedSolid(circle2,newVector3d(0,-param.m_y2,0),newSweepOptions());Solid3d extrudedSolid3=newSolid3d();extrudedSolid3.CreateExtrudedSolid(circle3,newVector3d(0,-param.m_y2,0),newSweepOptions());extrudedSolid2.BooleanOperation(BooleanOperationType.BoolSubtract,extrudedSolid3);solid.BooleanOperation(BooleanOperationType.BoolUnite,extrudedSolid2);}

减去小圆柱


向z轴负方向拉伸。

Point3d O4=newPoint3d(0,param.m_YBottom1/2-param.m_yDis4,O1.Z+param.m_disO1O2+param.m_r2);{//减去小圆柱Circle circle=newCircle(O4,Vector3d.ZAxis,param.m_r4);Solid3d extrudedSolid=newSolid3d();extrudedSolid.CreateExtrudedSolid(circle,newVector3d(0,0,-param.m_r2),newSweepOptions());solid.BooleanOperation(BooleanOperationType.BoolSubtract,extrudedSolid);}

增加梯形拉伸


C是A和园的切点,D是B和园的切点。注意: 有两个切点,选择Z大的。

{var p8=Polyline8(param,circle2);Solid3d extrudedSolid=newSolid3d();extrudedSolid.CreateExtrudedSolid(p8,newVector3d(0,-param.m_y8,0),newSweepOptions());solid.BooleanOperation(BooleanOperationType.BoolUnite,extrudedSolid);}

扩展阅读

我想对大家说的话
工作中遇到的问题,可以按类别查阅鄙人的算法文章,请点击《算法与数据汇总》。
学习算法:按章节学习《喜缺全书算法册》,大量的题目和测试用例,打包下载。重视操作
有效学习:明确的目标 及时的反馈 拉伸区(难度合适) 专注
员工说:技术至上,老板不信;投资人的代表说:技术至上,老板会信。
闻缺陷则喜(喜缺)是一个美好的愿望,早发现问题,早修改问题,给老板节约钱。
子墨子言之:事无终始,无务多业。也就是我们常说的专业的人做专业的事。
如果程序是一条龙,那算法就是他的是睛
失败+反思=成功 成功+反思=成功

视频课程

先学简单的课程,请移步CSDN学院,听白银讲师(也就是鄙人)的讲解。
https://edu.csdn.net/course/detail/38771
如何你想快速形成战斗了,为老板分忧,请学习C#入职培训、C++入职培训等课程
https://edu.csdn.net/lecturer/6176

测试环境

操作系统:win7 开发环境: VS2019C++17
或者 操作系统:win10 开发环境: VS2022C++17
如无特殊说明,本算法用**C++**实现。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 11:07:27

如何设计一个简单的 `ORM` 框架?

从零开始设计一个简单的 ORM 框架:原理、实现与实践指南 (图1:ORM框架核心架构示意图) 目录 引言:ORM的前世今生与核心价值 ORM核心概念与基础理论 从零构建简易ORM:架构设计与核心组件 核心实现:元编程与数据库交互 查询构建器:将对象操作转化为SQL 关系映射:处理对…

作者头像 李华
网站建设 2026/4/15 20:18:47

导师严选9个AI论文网站,专科生轻松搞定毕业论文格式规范!

导师严选9个AI论文网站,专科生轻松搞定毕业论文格式规范! AI 工具的崛起,让论文写作不再难 对于专科生来说,毕业论文不仅是一道必过的门槛,更是一次对学术能力的全面考验。然而,面对格式规范、内容逻辑、语…

作者头像 李华
网站建设 2026/4/16 14:28:31

A.每日一题——1970. 你能穿过矩阵的最后一天

题目链接:1970. 你能穿过矩阵的最后一天(困难) 算法原理: 解法:深搜DFS 方法一:反向dfs 13ms击败94.50% 时间复杂度O(mn) ①初始时网格全是水,从最后一天往回推,每天把一个水单元格变…

作者头像 李华
网站建设 2026/4/16 14:26:21

Jenkins流水线配置的两种方式

在Jenkins的项目配置里面,如果创建的是流水线项目。在流水线配置的地方,有两种方式,如下图所示:方式一:pipiline script,直接在配置页面上写流水线脚本。方式二:pipeline script from SCM&#…

作者头像 李华
网站建设 2026/4/16 10:59:32

深度解析 CherryECAT:国产 EtherCAT 协议栈与国外主流方案的全方位对比及项目实战(上)

目录 工业以太网的 “顶流”:EtherCAT 协议基础认知 EtherCAT 核心原理与关键算法(新手也能懂) CherryECAT 与国外协议栈基础信息全景对比 核心技术原理与算法深度拆解 功能特性全方位对比 性能指标实测对比(含测试代码与数据) 代码实战:不同协议栈开发完整示例 应用场景…

作者头像 李华