本文为 WB二次开发 专篇的第 12 篇。专栏文章索引详见下文:
ANSYS WB二次开发专栏文章
一、镜像
1、镜像首先应选择镜像面,然后在选择镜像体,通过options中的MergeObjects来控制镜像后是否和原来的体融合。
selection = BodySelection.Create(GetRootPart().Bodies[2])
mirrorPlane = FaceSelection.Create(GetRootPart().Bodies[2].Faces[4])
options = MirrorOptions()
#镜像后保持独立
options.MergeObjects=False
result = Mirror.Execute(selection, mirrorPlane, options, None)
2、当镜像的平面位于几何体之外时,可通过创建辅助平面来进行,创建辅助平面的方法见1-7节。
point = Point.Create(MM(50),0,0)
direction = Direction.Create(1, 0, 0)
mirrplane = DatumPlaneCreator.Create(point, direction,True)
MP= Selection.Create(GetRootPart().DatumPlanes[0])
options = MirrorOptions()
#镜像后保持独立
options.MergeObjects=False
result = Mirror.Execute(selection, MP, options, None)
2、阵列—查看Pattern函数
1、阵列的三种形式:线性、圆形、填充,填充用的较少,可不讲
2、线性阵列的使用方法
1)、输入参数:选择需要阵列的对象、线性阵列的控制参数(包括方向、阵列数目、阵列方向数据)
2)、注意阵列方向的输入数据类型为一个Iselection,不能通过Direction.Create的方向直接创建,当可通过选择线对象、坐标轴等方式创建
3)、当选择两个方向的阵列时,X方向的选择很好把握,但是Y方向不好把握,且函数没有提供输入Y方向的入口,建议实时调试确定。
# 创建阵列
# 单个方向,沿着总体坐标系Y轴
# 创建阵列
selection = BodySelection.Create(GetRootPart().Bodies[0])
data = LinearPatternData()
data.LinearDirection = Selection.Create(GetRootPart().CoordinateSystems[0].Axes[1])
data.CountX = 4
data.PitchX = MM(50)
result = Pattern.CreateLinear(selection, data, None)
# EndBlock
#双向
# 创建阵列
selection = BodySelection.Create(GetRootPart().Components[0].Components[0].Content.Bodies[0])
data = LinearPatternData()
data.LinearDirection = Selection.Create(GetRootPart().Curves[0])
data.PatternDimension = PatternDimensionType.Two
data.CountX = 4
data.PitchX = MM(100)
data.CountY = 4
data.PitchY = MM(100)
result = Pattern.CreateLinear(selection, data, None)
2、圆形阵列
有一维和二维之分,其中一维时data.RadialDirection 参数无明显作用,而在二维时,该参数表示在一维圆形阵列后 沿指定的方向进行线性阵列,方向取决于在几何体自身坐标系
1)选择坐标轴作为旋转轴
# 创建阵列
selection = BodySelection.Create(GetRootPart().Bodies[0])
data = CircularPatternData()
data.CircularAxis = Selection.Create(GetRootPart().CoordinateSystems[0].Axes[2])
data.CircularCount = 4
data.CircularAngle = DEG(360)
result = Pattern.CreateCircular(selection, data, None)
2)选择其中一条边界线作为旋转轴
# 创建阵列
selection = BodySelection.Create(GetRootPart().Bodies[0])
data = CircularPatternData()
data.CircularAxis = EdgeSelection.Create(GetRootPart().Bodies[0].Edges[9])
data.RadialDirection = Direction.Create(0, 0, 0)
data.CircularCount = 3
data.CircularAngle = DEG(360)
result = Pattern.CreateCircular(selection, data, None)
# EndBlock
3)当旋转轴既不在几何体上,也不是坐标轴时,可通过创建辅助轴来实现
# 创建阵列
selection = BodySelection.Create(GetRootPart().Bodies[0])
#创建辅助轴
point1=Point.Create(0.05,0,0)
dir=Direction.Create(0,1,0)
Re=DatumLineCreator.Create(point1,dir)
# 选择辅助轴并进行阵列
sel=Selection.Create(Re.CreatedLine)
data=CircularPatternData()
data.CircularAxis=sel
data.CircularAngle=DEG(60)
data.CircularCount=5
Re=Pattern.CreateCircular(selection,data)
为更加方便大家系统学习WB脚本知识及软件二次开发流程,水哥特推出《基于Python脚本ANSYS Workbench 软件二次开发专题教程》,本教程分为6篇,分别为Python语言基础知识篇、SpaceClaim脚本知识篇、Mechanical脚本知识篇、Workbench项目管理脚本知识篇、项目脚本调试篇以及项目软件二次开发篇,本套课程总计约100课时,平均每个课时30~50分钟,全套课程总计约 70小时,通过本教程,学员可系统性的掌握利用Python语言进行ansys workbench二次开发的相关技巧,课程详情请点击下方文章了解:
暂无评论内容