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

超级好用的​​参数化3D CAD 建模​​图形库 (CadQuery库介绍)

CadQuery 库详细介绍​

​CadQuery​​ 是一个基于 ​​Python​​ 的 ​​参数化 3D CAD 建模​​ 库,允许用户通过编写代码(而不是传统 GUI)来创建精确的 ​​3D 模型​​。它特别适用于 ​​自动化设计、机械工程、3D 打印​​ 等场景,提供强大的 ​​程序化建模​​ 能力。


​1. CadQuery 的核心特点​

✅ ​​基于 OpenCASCADE(OCCT)​​:底层使用工业级几何引擎,确保高精度建模。
✅ ​​链式 API​​:类似 jQuery 的语法,代码简洁直观。
✅ ​​参数化设计​​:支持变量、循环、条件判断,便于快速迭代设计。
✅ ​​支持多种导出格式​​:STL、STEP、OBJ、SVG 等,兼容主流 CAD 软件(如 FreeCAD、SolidWorks)。
✅ ​​与 Python 生态集成​​:可结合 NumPy、Matplotlib 等库进行高级计算和可视化。


​2. 基本概念​

​(1) Workplane(工作平面)​

CadQuery 的所有建模操作都从 Workplane 开始,它定义了初始坐标系(如 "XY""XZ""YZ")。

 

python

import cadquery as cq# 在 XY 平面上创建一个矩形
result = cq.Workplane("XY").rect(10, 20)

​(2) 基本几何体​

  • box():立方体
  • cylinder():圆柱
  • sphere():球体
  • lineTo() / polyline():绘制 2D 轮廓并拉伸
 

python

# 创建一个 10x20x5 的长方体
box = cq.Workplane("XY").box(10, 20, 5)

​(3) 布尔运算​

  • cut():差集(挖孔)
  • union():并集(合并)
  • intersect():交集
 

python

# 在立方体上挖一个圆柱孔
result = box.faces(">Z").circle(3).cutThruAll()

​(4) 倒角 & 圆角​

  • fillet():圆角(对边进行平滑处理)
  • chamfer():倒角(斜切边)
 

python

# 对立方体的所有垂直边进行圆角处理
result = box.edges("|Z").fillet(1.0)

​(5) 拉伸 & 旋转​

  • extrude():拉伸 2D 轮廓
  • revolve():旋转 2D 轮廓
 

python

# 绘制一个圆并拉伸成圆柱
result = cq.Workplane("XY").circle(5).extrude(10)

​3. 进阶功能​

​(1) 参数化建模​

 

python

length = 30
width = 20
height = 10# 使用变量定义模型
box = cq.Workplane("XY").box(length, width, height)

​(2) 复杂轮廓(2D 草图)​

 

python

# 绘制一个 L 形轮廓并拉伸
result = (cq.Workplane("XY").moveTo(0, 0).lineTo(10, 0).lineTo(10, 5).lineTo(5, 5).lineTo(5, 10).lineTo(0, 10).close().extrude(2)
)

​(3) 阵列(Pattern)​

 

python

# 在立方体上打 4 个孔
result = (cq.Workplane("XY").box(20, 20, 5).faces(">Z").rarray(8, 8, 2, 2)  # (x间距, y间距, x数量, y数量).circle(2).cutThruAll()
)

​(4) 导出模型​

 

python

# 导出为 STL(3D 打印)
cq.exporters.export(result, "model.stl")# 导出为 STEP(CAD 软件兼容)
cq.exporters.export(result, "model.step")

​4. CadQuery vs. OpenSCAD​

​特性​​CadQuery​​OpenSCAD​
​语法​Python(更灵活)专用语言(较局限)
​建模方式​链式 API函数式编程
​几何引擎​OpenCASCADE(OCCT)CGAL
​学习曲线​中等(需 Python 基础)较陡(新语法)
​社区支持​活跃(GitHub、论坛)较成熟
​适用场景​机械设计、参数化建模简单 3D 打印模型

​5. 适用场景​

  • ​机械零件设计​​(齿轮、支架、外壳)
  • ​3D 打印模型优化​​(参数化调整尺寸)
  • ​自动化建模​​(批量生成变体模型)
  • ​教育​​(学习 CAD 与编程结合)

​6. 学习资源​

  • ​官方文档​​:CadQuery GitHub
  • ​示例库​​:CadQuery Examples
  • ​FreeCAD 插件​​:可在 FreeCAD 中使用 CadQuery 脚本

​总结​

CadQuery 是 ​​程序化 CAD 建模​​ 的强大工具,适合 ​​工程师、设计师、开发者​​ 使用 Python 创建精确的 3D 模型。如果你熟悉 Python 并希望摆脱传统 CAD 软件的 GUI 限制,CadQuery 是一个绝佳选择! 🚀

​试试这个简单示例:​

 

python

import cadquery as cq# 创建一个带孔的 L 形支架
model = (cq.Workplane("XY").box(20, 20, 5)  # 底座.faces(">Z").rect(15, 15).extrude(10)     # 凸台.edges("|Z").fillet(2)       # 倒角.faces(">Z").hole(5)         # 钻孔
)# 导出 STL 文件
cq.exporters.export(model, "bracket.stl")

运行后,你会得到一个可用于 3D 打印的模型!

http://www.xdnf.cn/news/187147.html

相关文章:

  • 【亚马逊云】AWS Wavelength 从理论讲解到实验演练
  • Android Compose vs 传统View系统:全面对比与选型指南
  • C++ 之 【list的简介、list 的构造函数、iterator、容量操作、元素访问、增删查改与迭代器失效】
  • Flask + ajax上传文件(四)--数据入库教程
  • 深度解析算法之分治(归并)
  • 【Docker】使用 jq 管理镜像源
  • Linux权限概念讲解
  • 喷泉码解码成功率
  • 如何使用 Redis 缓存验证码
  • Flow原理
  • Unity3D引擎框架及用户接口调用方式相关分析及汇总
  • 关系数据的可视化
  • 【数据结构】排序
  • 一、JVM基础概念
  • 全开源、私有化部署!轻量级用户行为分析系统-ClkLog
  • MAC如何安装多版本jdk(以8,11,17为例)
  • 定时器的源码介绍与简单实现——多线程编程简单案例[多线程编程篇(5)]
  • stm32wb55rg (2) 阅读资料手册
  • Leetcode刷题 | Day49_图论01
  • 数字孪生的浪潮:从虚拟镜像到现实世界的 IT 变革
  • 孙宇晨将出席迪拜Token2049 与特朗普次子共话加密未来
  • 【Pandas】pandas DataFrame rmod
  • 基于vue框架的电影推荐系统p0apl(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • 60、微服务保姆教程(三)Sentinel---高可用流量管理框架/服务容错组件
  • 微信小程序分页和下拉刷新
  • uniapp 微信小程序遇到的坑
  • 一种改进的YOLOv11网络,用于无人机视角下的小目标检测
  • 深度学习中的正则化简介
  • 如何正确地解读和分析MySQL性能模式和查询分析器提供的性能数据?
  • 【算法应用】基于灰狼算法求解DV-Hop定位问题