ANSYS Workbench二次开发–SpaceClaim Python脚本知识-实体对象的生成-旋转与缩放

ANSYS Workbench二次开发–SpaceClaim Python脚本知识-实体对象的生成-旋转与缩放

Please Share Us

点击此处查看 ✿水哥原创ANSYS视频教程清单 ✿

水哥专属答疑服务已开通,点此此处查看详情

本文为 WB二次开发 专篇的第 10 篇。专栏文章索引详见下文:

ANSYS WB二次开发专栏文章索引

SpaceCliam实体对象的生成方式有很多种,前文讲解了如何通过拉伸进行,本文讲解如何通过旋转和缩放进行。

首先旋转分为面的旋转以及线的旋转。

一、旋转成样

1、面的旋转

步骤:先选择旋转轴,然后在选择旋转的面,其次对旋转成体进行设置,选项与前面拉伸的选项一致

# 选择某条线作为旋转轴 旋转成样

selection = FaceSelection.Create(GetRootPart().Bodies[2].Faces[0])

axisSelection = Selection.Create(GetRootPart().Curves[0])

axis = RevolveFaces.GetAxisFromSelection(selection, axisSelection)

options = RevolveFaceOptions()

options.ExtrudeType = ExtrudeType.Cut

result = RevolveFaces.Execute(selection, axis, DEG(162), options)

# EndBlock

# 选择坐标轴作为旋转轴

selection = Selection.Create(GetRootPart().Bodies[0].Faces[0])

axisSelection = Selection.Create(GetRootPart().CoordinateSystems[0].Axes[1])

axis = RevolveFaces.GetAxisFromSelection(selection, axisSelection)

options = RevolveFaceOptions()

options.ExtrudeType = ExtrudeType.Add

result = RevolveFaces.Execute(selection, axis, DEG(57), options)

# EndBlock

2、线的旋转

需输入五个参数:

  • 旋转轴的定义:无法通过选择定义,只有通过Create方法定义一个旋转轴,Line.Create指定旋转轴通过的点坐标以及方向向量
  • 需要旋转的线,通过选择来定义
  • 角度定义
  • 是否两边对称旋转
  • 扩展布尔运算类型

# 旋转 1 条边

selection = EdgeSelection.Create(GetRootPart().Bodies[1].Edges[26])

result = RevolveEdges.Execute(selection, Line.Create(Point.Create(MM(100), MM(0), MM(0)),

Direction.DirY), DEG(-19), False, ExtrudeType.None)

# EndBlock

3、扫掠

一般只关心面的扫掠,线的扫掠直接拉伸即可。首先选择面,然后选择扫掠的线或者曲线

# 扫掠 1 个面

selection = FaceSelection.Create(GetRootPart().Bodies[0].Faces[1])

trajectories = Selection.Create(GetRootPart().Curves[0])

options = SweepCommandOptions()

options.ExtrudeType = ExtrudeType.Add

result = Sweep.Execute(selection, trajectories, MM(55), options, None)

# EndBlock

二、缩放

步骤如下:

  • 选择要缩放的体
  • Preservehole 代表是否同步缩放体中的孔洞,默认为False,也即不缩放,当整体模型需要缩放时,应设置为yes
  • 创建缩放的坐标原点
  • 缩放三个方向的比例,0~1000表示缩小,大于1000表示放大,例如缩小5倍就填入500,放大2倍就填入2000

当三个方向的缩放比例不一致时,分别填入不同的缩放比例即可。三个方向由前面的Frame创建的方向控制

# 缩放 1 个对象

selection = BodySelection.Create(GetRootPart().Bodies[0])

preserveHoles = False

result = Scale.Execute(selection, Frame.Create(Point.Create(MM(373.560176881768), MM(-25), MM(-48.7531024732733)),

Direction.DirX,

Direction.DirY), Vector.Create(MM(500), MM(500), MM(500)), preserveHoles)

# EndBlock

三、圆角与填充

直到 UPTO 在手动操作的时候比较方便,但代码使用过程比较繁琐,不推荐使用

1、圆角

选择某个体的边界线,输入圆角半径即可创建

# 创建 1 个圆角

selection = EdgeSelection.Create(GetRootPart().Bodies[1].Edges[16])

options = ConstantRoundOptions()

result = ConstantRound.Execute(selection, MM(3.42), options, None)

# EndBlock

# 修改 1 个圆形

selection = FaceSelection.Create(GetRootPart().Bodies[1].Faces[14])

options = ConstantRoundOptions()

result = ConstantRound.Execute(selection, MM(8.01), options, None)

# EndBlock

2、填充

通过选择线或者曲线,在延伸成面,也可选择一个闭合面,填充成体

# 填充

selection = Selection.Create(Edge4, Edge5, Edge6, Edge7)

secondarySelection = Selection.Empty()

options = FillOptions()

result = Fill.Execute(selection, secondarySelection, options, FillMode.ThreeD, Info5)

# EndBlock

为更加方便大家系统学习WB脚本知识及软件二次开发流程,水哥特推出《基于Python脚本ANSYS Workbench 软件二次开发专题教程》,本教程分为6篇,分别为Python语言基础知识篇、SpaceClaim脚本知识篇、Mechanical脚本知识篇、Workbench项目管理脚本知识篇、项目脚本调试篇以及项目软件二次开发篇,本套课程总计约100课时,平均每个课时30~50分钟,全套课程总计约 70小时,通过本教程,学员可系统性的掌握利用Python语言进行ansys workbench二次开发的相关技巧,课程详情请点击下方文章了解:

基于Python脚本ANSYS Workbench软件二次开发专题教程

欢迎扫描如下二维码关注本站微信公众号:ANSYS结构院

有时间麻烦帮忙点击下公众号文末的广告哦, 权当码字的辛苦费,感谢大家!

Please Share Us
© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码

    暂无评论内容

YOU MAY LIKE…