什么是 CadQuery
CadQuery 是一个直观、易于使用的 Python 库,用于构建参数化 3D CAD 模型。它有几个目标:
- 使用标准的、已建立的编程语言,使用尽可能接近向人类描述对象的方式的脚本构建模型
- 创建最终用户可以轻松定制的参数化模型
- 除了传统的 STL 之外,还可以输出高质量的 CAD 格式,例如 STEP、AMF 和 3MF
- 提供非专有的纯文本模型格式,只需使用 Web 浏览器即可编辑和执行
CadQuery 2 基于 OCP,它是开源OpenCascade建模内核的一组 Python 绑定。
使用 CadQuery,您可以使用极少量的代码构建完全参数化模型。例如,这个简单的脚本会生成一个中间有孔的平板:
thickness = 0.5
width = 2.0
result = Workplane("front").box(width, width, thickness).faces(">Z").hole(thickness)
这有点像迪克西杯的例子。但它与一个更有用的部件非常相似:用于标准 608 尺寸滚珠轴承的参数化轴台:
(length, height, diam, thickness, padding) = (30.0, 40.0, 22.0, 10.0, 8.0)
result = (
Workplane("XY")
.box(length, height, thickness)
.faces(">Z")
.workplane()
.hole(diam)
.faces(">Z")
.workplane()
.rect(length - padding, height - padding, forConstruction=True)
.vertices()
.cboreHole(2.4, 4.4, 2.1)
)
更多示例请参见 示例
CadQuery 是一个库,GUI 图像界面是独立的
CadQuery 是一个库,专门设计为可用作无 GUI 库。这使其能够以编程方式创建3D模型,应用于各种工程和科学应用程序。
如果您想要 GUI,您有以下几种选择:
- 基于 Qt 的 GUI CQ 编辑器
- 作为 Jupyter 扩展jupyter-cadquery
为什么使用 CadQuery 而不是 OpenSCAD?
与 OpenSCAD 一样,CadQuery 是一个开源的,基于脚本的,参数化模型生成器。但 CadQuery 有几个关键优势:
- 脚本使用标准编程语言 Python,因此可以从相关的基础设施中受益。这包括许多标准库和 IDE
- 更强大的CAD内核 OpenCascade 比 CGAL 强大得多。除了 CGAL 支持的标准 CSG 操作外,OCC 原生支持的功能还包括 NURBS、样条线、曲面缝合、STL 修复、STEP 导入/导出和其他复杂操作
- 导入/导出 STEP 和 DXF 的能力 ,我们认为 在创建一个CAD包中,从STEP模型开始,添加参数化特征的能力就非常关键。在使用 STL 的 OpenSCAD 中这是可能的,但 STL 是一种有损格式
- 更少的代码和更简单的脚本编写 ,CadQuery 脚本需要更少的代码来创建大多数对象,因为可以根据其他特征、工作平面、顶点等的位置来定位特征。
- 更好的性能,CadQuery 脚本可以比 OpenSCAD 更快地构建 STL、STEP、AMF 和 3MF。
CadQuery 这个名字从何而来?
CadQuery 的灵感来自jQuery,这是一个流行的框架,彻底改变了涉及 JavaScript 的 Web 开发。
CadQuery 之于 3D CAD 就像 jQuery 之于 JavaScript。如果您熟悉 jQuery 的工作原理,您可能会认识 CadQuery 使用的几个 jQuery 功能:
- 流畅的 API 可创建干净、易于阅读的代码
- 能够与其他 Python 库一起使用该库
- 文档清晰完整,有大量示例。