摘要
本博客有两个目的。首先,在 ANSYS SpaceClaim 中使用 Python 脚本成功地自动生成凸轮轴叶轮廓。其次,学习如何避免与 ANSYS SpaceClaim 中 Python 脚本相关的某些陷阱。
详细信息
现在,让我们来谈谈 “为什么 “要自动生成凸轮轴叶片?
在四冲程内燃机中,凸轮轴负责相对于发动机曲轴的旋转打开和关闭进气门和排气门。凸轮轴是 “气门机构 “的一部分,”气门机构 “是一个由多个部件组成的系统,这些部件决定气门何时打开和关闭、打开的程度以及气门打开和关闭的速度。根据气门机构配置的不同,可能会涉及不同的组件,必须对所有这些组件进行综合评估,以了解气门正时事件的细节。创建凸轮轴凸轮叶轮廓并非完全随意,有时可能相当复杂。通过自动生成该轮廓,可以在气门机构设计过程中更快速地评估气门正时事件。
我们现在该怎么办?
我们将首先了解我们要建模的凸轮轴轮廓类型,然后手动生成几何图形,同时在 SpaceClaim Scripting 中记录我们的操作,以生成本地 Python 代码。
接下来,我们将在 SpaceClaim 的新实例中 “尝试 “使用相同的代码,以了解会出现哪些障碍,并针对这些障碍提出补救措施。然后成功使用 Python 脚本复制我们最初设计的凸轮轴叶。
最后,我们将对 Python 脚本进行参数化,以便快速生成该轮廓的新变化。
我们的凸轮轴轮廓
凸轮轴叶轮廓从简单到复杂,从对称到不对称。本博客将重点介绍一种最基本的设计,它基于一个基圆和一个鼻圆。这两个圆通过与两个圆相切的线相连。
我们将从一个 38 毫米的基圆和一个 26 毫米的鼻圆开始,鼻圆的中心位于基圆中心上方 14 毫米处。我们的第一个操作是打开 SpaceClaim,然后进入脚本界面。
默认情况下,”记录 “模式将处于激活状态。
首先,让我们了解一下添加基础圆后记录的内容。
具体来说,我们可以看到先定义了一个草图平面,然后生成了一个圆,接着又生成了一个约束。让我们将同样的 Python 代码复制到 SpaceClaim 的新实例中,看看能否成功运行?
答案是 “不能”.为什么呢?因为我们通常会选择草图平面。让我们关闭 SpaceClaim 的这个实例,然后打开一个新的实例。我们将改变记录脚本的方式,生成一个新的圆,然后重复我们的测试。
首先,我们将激活 “Verbose(详细记录)”选项。
接下来,我们将把选择记录方式从 “智能变量 “改为 “射线”。
添加基圆后,我们录制的脚本看起来就不一样了。
在 SpaceClaim 的新实例中操作这个新脚本 现在就能成功生成基圆!
其他操作呢,添加鼻圆和两条切线?
成功! 将这个新脚本复制到 SpaceClaim 的新实例中,就能复制我们的几何体。到目前为止,一切顺利。不过,如果我们尝试将几何体参数化,就会遇到问题。我将把机头圆直径从 26 毫米改为 20 毫米来演示一下。
我们遇到的这些问题与 “选择” 我们模型中的对象。事实证明,”选择 “将是我们面临的最大挑战。因此,我建议我们尽可能减少对这些几何体的 “选择”。 应避免选择线条和圆形等项目。为此,我们将采用不同的方法创建几何体。我们将创建弧线,然后将弧线的两端从底座连接到机头,而不是添加圆形并用切线将它们连接起来。这种方法要求我们在构建脚本时考虑得更加周全。
脚本模块回顾
我们看到,在录制原始脚本(添加圆圈)时,脚本块中存在某些元素。
# 绘制圆
origin = Point2D.Create(MM(0), MM(0))
result = SketchCircle.Create(origin, MM(19))
baseSel = SelectionPoint.Create(GetRootPart().DatumPlanes[0].曲线[0].GetChildren[ICurvePoint]()[0])
targetSel = SelectionPoint.Create(GetRootPart().DatumPlanes[0].GetChildren[IDatumLine]()[0])
result = Constraint.CreateCoincident(baseSel, targetSel)
# EndBlock
我们看到定义了两个点:”原点 “和 “MM(19)”。因此,”SketchCircle.Create “函数需要定义原点和半径。该代码块中的其他内容都与 选择 我们创建的项目,并 限制 将其限制在平面内。我想说的是,要成功生成我们的几何体,最后一部分并不是必需的。因此,我建议删除这些多余的命令,直接运行下面的脚本。
# 绘制圆
origin = Point2D.Create(MM(0), MM(0))
result = SketchCircle.Create(origin, MM(19))
# 结束块
然后……就成功了!
现在,我建议你自己通过记录弧线和直线的脚本块进行检查,以确定生成凸轮轴轮廓所需的基本要素。我已经这样做了,并附上 我的脚本 供您查看。
我还根据识别汽车凸轮轴特征时通常使用的术语对脚本进行了参数化,例如:
使用这些参数,将生成以下几何图形。
下载此脚本 开始探索凸轮轴轮廓设计……同时学习如何为 SpaceClaim 制作实用的 Python 脚本! 😊