04.快速开始 - CadQuery 中文文档

本文通过实例介绍了CadQuery的基本使用,如创建参数化轴承垫块,包括添加孔洞和圆角处理,以及导出为STL、DXF和STEP格式。逐步展示了如何用少于30行代码实现所需功能。
摘要由CSDN通过智能技术生成

想要快速了解 CadQuery 的功能吗?本快速入门将使用一个简单的示例演示 CadQuery 的基础知识

先决条件安装 CadQuery 和 CQ-editor

如果尚未安装,请按照 安装 CadQuery 的步骤安装 CadQuery 和 CQ-editor。

安装完成后,运行CQ-editor:
 


找到左侧的 CadQuery 代码编辑器。您将看到我们从一个简单块的脚本开始。

Note

桌面没有创建启动图标的话,可以在安装目录中查找启动文件 安装目录\cq-editor\Scripts\CQ-editor.exe,双击运行即可。

我们将实现什么

在本快速入门中,我们将创建一个完全参数化的轴承垫块。我们完成的对象将如下所示:

我们希望我们的块有以下功能:

  1. 它的大小应能容纳一个 608轴承,位于轴承座的中心。

  2. 它的四角应有用于 M2 套筒头螺丝的埋头孔。

  3. 它的长度和宽度应该由用户配置为任何合理的大小。

人类会将其描述为:
“一个 80 毫米 x 60 毫米 x 10 毫米的矩形块,四角有用于安装 M2 套筒头螺丝的埋头孔,在中间有一个直径为 22 毫米的圆形凹槽,用于安装轴承。”

人类的描述很优雅吧?希望我们完成的脚本不会比这个以人为本的描述复杂太多。

让我们看看我们是怎么做的。

从一个简单的板材开始

cadquery 引用说明

CQ-editor 中默认使用 import cadquery as cq 引入 cadquery ,因此您可以直接使用 cq 调用对应的方法

# import cadquery as cq
result = cq.Workplane("XY").box(1, 2, 3).faces(">Z").circle(0.25).extrude(1,combine = True)
show_object(result)

也可以使用 from cadquery import * 来引入,使用方法时,直接调用对应方法名即可 

from cadquery import *
# from cadquery import Workplane, Sketch, Vector, Location
result = Workplane("XY").box(1, 2, 3).faces(">Z").circle(0.25).extrude(1,combine = True)
show_object(result)

show_object(result) 用来渲染显示出实体

让我们从一个简单的模型开始,它只制作一个矩形块,但带有尺寸占位符。将其粘贴到代码编辑器中:

height = 60.0
width = 80.0
thickness = 10.0

# make the base
result = cq.Workplane("XY").box(height, width, thickness)

# Render the solid
show_object(result)

按工具栏中的绿色“渲染”按钮来运行脚本。您应该会看到我们的基础对象。

没什么特别的,这只是一个开始!

添加孔洞

我们的轴承垫块需要在中心有一个直径为 22 毫米的孔来固定轴承。

这样改装就可以了:

height = 60.0
width = 80.0
thickness = 10.0
diameter = 22.0

# make the base
result = (
    cq.Workplane("XY")
    .box(height, width, thickness)
    .faces(">Z")
    .workplane()
    .hole(diameter)
)

# Render the solid
show_object(result)

单击“渲染”按钮重建模型。你的模型块应该是这样的:

代码非常简洁,让我们一步步来。

第 4 行 添加了一个新参数--直径,表示孔的直径
第 10-12 行 我们添加了这个洞。 cadquery.Workplane.faces() 选择 Z 方向最顶端的面,然后 cadquery.Workplane.workplane()在这个面上开始一个新的工作平面。该工作平面的中心位于形状的质心,在本例中也就是平板的中心。最后,cadquery.Workplane.hole()在零件上钻一个直径 22 毫米的孔。

Note

现在不用担心 CadQuery 的语法,你可以在稍后的 API 参考中学习到所有相关知识。

更多孔洞

好吧,这个孔还不算太难,但四角的埋头孔呢?

M2 内六角螺钉的尺寸如下:

  • 头部直径:3.8 毫米

  • 头部高度 :2.0 毫米

  • 容差孔直径:2.4 毫米

  • 埋头孔直径:4.4 毫米

这些孔的中心应距离块边缘 6 毫米。而且,我们希望即使用户调整了块的大小,块也能正常工作。

别告诉我我们要重复上面的步骤 8 次才能打出埋头孔?好消息是,我们只需几行代码就能完成工作。下面是我们需要的代码: 

height = 60.0
width = 80.0
thickness = 10.0
diameter = 22.0
padding = 12.0

# make the base
result = (
	cq.Workplane("XY")
	.box(height, width, thickness)
	.faces(">Z")
	.workplane()
	.hole(diameter)
	.faces(">Z")
	.workplane()
	.rect(height - padding, width - padding, forConstruction=True)
	.vertices()
	.cboreHole(2.4, 4.4, 2.1)
)
# Render the solid
show_object(result)

单击“渲染”按钮重新执行模型后,您应该可以看到如下内容:

这里发生了很多事情,让我们来细细分析一下。

第 5 行 创建了一个新的填充参数,该参数决定了孔与板边缘的距离。

第 11-12 行选择图块最顶端的面,并在该面的顶端创建一个工作平面,我们将用它来定义四角上孔的中心。

关于这一行,有几点需要注意:

  1. cadquery.Workplane.rect()函数绘制一个矩形。 forConstruction=True 告诉 CadQuery 该矩形不会形成实体的一部分,但我们只是用它来帮助定义他几何图形。

  2. 除非您另外指定,否则绘制的矩形将以当前工作平面中心为圆心,在本例中为块顶面的中心,在本例中就是以块顶面的中心为圆心。因此,该矩形将以工作面为中心。

第 16 行绘制一个比块的总长和宽小 12mm 的矩形,我们将用它来定位角孔的位置。我们将使用该矩形的顶点(角)来定位孔。矩形的中心位于工作平面的中心,在本例中与轴承孔的中心重合。

第 17 行选择矩形的顶点,我们将使用这些顶点作为孔的中心。该cadquery.Workplane.vertices()函数选择矩形的角。

第 18 行使用 cboreHole 函数来绘制孔。该cadquery.Workplane.cboreHole()函数是一个方便的 CadQuery 函数,可以绘制埋头孔。与大多数 CadQuery 函数一样,该函数对堆栈中的值进行操作。在本例中,由于我们在调用函数之前选择了四个顶点,因此该函数对四个点中的每一个点进行操作,从而在矩形的每个角上都开了一个孔。

切片

快完成了。让我们把块的角弄圆一点。这很简单,我们只需要选择边缘然后对它们进行圆角处理:

我们可以使用参数定义中的预设字典来做到这一点: 

height = 60.0
width = 80.0
thickness = 10.0
diameter = 22.0
padding = 12.0

# make the base
result = (
	cq.Workplane("XY")
	.box(height, width, thickness)
	.faces(">Z")
	.workplane()
	.hole(diameter)
	.faces(">Z")
	.workplane()
	.rect(height - padding, width - padding, forConstruction=True)
	.vertices()
	.cboreHole(2.4, 4.4, 2.1)
	.edges("|Z")
	.fillet(2.0)
)

# Render the solid
show_object(result)

第 20 行使用该方法对边进行圆角处理cadquery.Workplane.fillet()

要抓取正确的边缘, cadquery.Workplane.edges() 选择平行于 Z 轴 ("|Z") 的所有边缘,

成品如下所示:

导出

如果要制作实物,则需要将结果导出为 STL 或 DXF。此外,还可以导出为 STEP 格式,以便在其他 CAD 工具中进行后处理。

这可以使用 cadquery.exporters.export() 函数轻松完成:  

height = 60.0
width = 80.0
thickness = 10.0
diameter = 22.0
padding = 12.0

# make the base
result = (
	cq.Workplane("XY")
	.box(height, width, thickness)
	.faces(">Z")
	.workplane()
	.hole(diameter)
	.faces(">Z")
	.workplane()
	.rect(height - padding, width - padding, forConstruction=True)
	.vertices()
	.cboreHole(2.4, 4.4, 2.1)
	.edges("|Z")
	.fillet(2.0)
)

# Render the solid
show_object(result)

# Export
cq.exporters.export(result, "result.stl")
cq.exporters.export(result.section(), "result.dxf")
cq.exporters.export(result, "result.step")

完毕!

您刚刚创建了一个参数化模型,只需 <30 行代码就能生成几乎所有轴承垫块。

想了解更多吗?

  • 示例包含大量演示 cadquery 功能的 示例

  • API 参考 很好地概述了按功能分类的语言功能

  • CadQuery 类摘要 是所有可用函数的核心列表。

文章来源:快速开始 - CadQuery 中文文档

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值