本文为 WB二次开发 专篇的第 8 篇。专栏文章索引详见下文:
ANSYS WB二次开发专栏文章索引
1 点的创建
Point.Create
Point2D.Create
2 绘制草图的创建
1、根据坐标点创建
sectionPlane = Plane.Create(Frame.Create(Point.Create(MM(0), MM(20), MM(10)), Direction.DirX, Direction.DirZ))
#激活当前草图
result = ViewHelper.SetSketchPlane(sectionPlane, None)
2、根据选择的面进行创建,此时创建的草图中心位于面的几何中心,实际中不建议使用,因为面的选择较为繁琐,建议采用第一种方式手动定义
# 设置草绘平面
selection = Face10
result = ViewHelper.SetSketchPlane(selection, Info11)
# EndBlock
3 草图中基本元素的操作
直线的创建
# Sketch Line
start = Point2D.Create(MM(8.04591389392257), MM(-6.79071852005792))
end = Point2D.Create(MM(3.82469800555225), MM(7.90303525318951))
result = SketchLine.Create(start, end)
# EndBlock
矩形的创建
point1 = Point2D.Create(MM(18.1868321382193),MM(-12.7448816892421))
point2 = Point2D.Create(MM(11.560545019198),MM(-12.7448816892421))
point3 = Point2D.Create(MM(11.560545019198),MM(14.8097505691255))
result = SketchRectangle.Create(point1, point2, point3)
# EndBlock
圆的创建
# Sketch Circle
origin = Point2D.Create(MM(26.8390960797818), MM(-24.0989870492777))
result = SketchCircle.Create(origin, MM(4.10110344940424))
# EndBlock
倒角:
Selection.Point.Create后面的第二个参数为从曲线的起点偏移的具体数值,通过长度获取比例值来确定位置。
理由:一旦倒角直径确定后,形状都是一致的。
前提是要选择指定位置的曲线,可写函数通过遍历法和坐标来确定所选择的曲线,后续在获取目标体信息章节 具体讲述
一般操作流程如下:
# Create 2D Round
lengthA=GetRootPart().DatumPlanes[0].Curves[2].Shape.Length
lengthB=GetRootPart().DatumPlanes[0].Curves[5].Shape.Length
curveSelPoint1 = SelectionPoint.Create(GetRootPart().DatumPlanes[0].Curves[5], 0.1*lengthB)
curveSelPoint2 = SelectionPoint.Create(GetRootPart().DatumPlanes[0].Curves[2], 0.1*lengthA)
result = Sketch2DRound.Create(curveSelPoint1, curveSelPoint2, MM(1.0))
# EndBlock
偏移:
默认偏移方向:根据曲线的起点和终点连线方向进行判定,若是顺时针,正值代表向外偏移,若是逆时针,正值代表向内偏移。
特殊情况:圆环正代表内,负代表外
实际情况可不用关心正负,手动调试记录代码即可
# Offset Sketch Curve
curvesToOffset = Selection.Create(GetRootPart().DatumPlanes[0].Curves[1])
offsetDistance = MM(-10.4756982385251)
result = SketchOffsetCurve.Create(curvesToOffset, offsetDistance)
# EndBlock
直接相交角创建:
功能:指定两条相交直线或者延伸可以相交的直线,选定两个点,沿直线方向生成夹角
两种情况:
若两条直线已经相交,则根据相交点所截断长度占整个线的比例,可生成四种情况,实际建模时,可手动调试。建议采用极端情况,比如0 或1,来判定
# Trim Sketch Corner
LenA= GetRootPart().DatumPlanes[0].Curves[5].Shape.Length
LenB= GetRootPart().DatumPlanes[0].Curves[4].Shape.Length
curveOneSelPoint = SelectionPoint.Create(GetRootPart().DatumPlanes[0].Curves[5], 0*LenA)
curveTwoSelPoint = SelectionPoint.Create(GetRootPart().DatumPlanes[0].Curves[4], 1*LenB)
result = SketchCorner.Create(curveOneSelPoint, curveTwoSelPoint)
# EndBlock
若两条直线没有相交,则随意指定一个长度即可
裁剪相交线:
原理:指定裁剪段上面的一个点即可
LenA= GetRootPart().DatumPlanes[0].Curves[5].Shape.Length
LenB= GetRootPart().DatumPlanes[0].Curves[4].Shape.Length
curveOneSelPoint = SelectionPoint.Create(GetRootPart().DatumPlanes[0].Curves[5], 0*LenA)
curveTwoSelPoint = SelectionPoint.Create(GetRootPart().DatumPlanes[0].Curves[4], 1*LenB)
result = SketchCorner.Create(curveOneSelPoint, curveTwoSelPoint)
result = TrimSketchCurve.Execute(curveOneSelPoint)
result = TrimSketchCurve.Execute(curveTwoSelPoint)
# EndBlock
4 草图绘制的退出
如果使用ViewHelper则自动填充或者融合,如果希望建立的封闭曲线不需要填充,可先隐藏曲线,然后退出草图,然后在打开显示即可。
# Solidify Sketch
mode = InteractionMode.Solid
result = ViewHelper.SetViewMode(mode, Info2)
# EndBlock
5、3D曲线和关键点的创建
3D 草图模式可直接生成空间曲线或者空间点,利用首尾坐标创建,一般过程如下
# Toggle 3D Sketch
Sketch3D.Set3DSketchMode(True)
#创建三维直线
point1 = Point.Create(MM(1.5*BB), MM(0), MM(0))
point2= Point.Create(MM(2*HH), MM(0), MM(2*HH))
Re=SketchLine.Create(point1,point2)
#三维空间点的创建
RE=SketchPoint.Create(point1)
Re=InteractionMode.Solid
Re=ViewHelper.SetViewMode(Re)
6 用户坐标系的创建
流程:首先创建一个坐标系原点,然后指定X方向和Y方向的方向向量即可。
SC目前只有创建直角坐标系,其他坐标系的坐标应转为直角坐标系处理。
如果与整体坐标系平行,可通过Direction.DIR来指定方向,如果是旋转了一定角度,需通过指定坐标轴的方向向量来定
案例一:坐标系与整体平行
# Create Origin
origin = Point.Create(MM(20.96), MM(50), MM(25))
x_Direction = Direction.DirY
y_Direction = Direction.DirZ
result = DatumOriginCreator.Create(origin, x_Direction, y_Direction, None)
# EndBlock
案例二:坐标系沿Y轴旋转45度
origin = Point.Create(MM(20.96), MM(50), MM(25))
x_Direction = Direction.Create(1,0,1)
y_Direction = Direction.DirY
result = DatumOriginCreator.Create(origin, x_Direction, y_Direction, None)
7 用户工作基准面的创建
利用辅助面可进行对体的切割、作为镜像或者移动的基准面
主要有三种创建方式:
1、从选择集(一般是几何面)中创建工作面
如:
# 创建基准平面
selection = FaceSelection.Create(GetRootPart().Bodies[0].Faces[8])
result = DatumPlaneCreator.Create(selection, False, None)
# EndBlock
2、通过坐标原点、Z方向向量来定义
point = Point.Create(50,0,0)
direction = Direction.Create(1, 0, 0)
result = DatumPlaneCreator.Create(point, direction,True)
工作平面为方便后续选择,采用即用即删原则处理,因为工作平面后续无法通过射线法选择。当然也可对辅助平面进行重新命名,后续选择的时候通过名字选择即可。
3、通过坐标原点,X和Y方向向量,Z方向根据右手螺旋定则来定义
# 创建基准平面
origin = Point.Create(MM(47.981204535645), MM(7.58622565610922), MM(10.4888763009644))
xDir = Direction.Create(0.748146050160732, 0, -0.663534089274165)
yDir = Direction.DirY
result = DatumPlaneCreator.Create(origin, xDir,yDir)
# EndBlock
4、工作平面的命名与选择
point = Point.Create(50,0,0)
direction = Direction.Create(1, 0, 0)
Re= DatumPlaneCreator.Create(point, direction,True)
#选择刚刚已经创建好的平面并重新命名
sel=Selection.Create(Re.CreatedPlanes[0])
Re = RenameObject.Execute(selection,”AA”)
#选择重新命名的工作平面
Sel=Selection.CreateByNames(“AA”)
为更加方便大家系统学习WB脚本知识及软件二次开发流程,水哥特推出《基于Python脚本ANSYS Workbench 软件二次开发专题教程》,本教程分为6篇,分别为Python语言基础知识篇、SpaceClaim脚本知识篇、Mechanical脚本知识篇、Workbench项目管理脚本知识篇、项目脚本调试篇以及项目软件二次开发篇,本套课程总计约100课时,平均每个课时30~50分钟,全套课程总计约 70小时,通过本教程,学员可系统性的掌握利用Python语言进行ansys workbench二次开发的相关技巧,课程详情请点击下方文章了解:
暂无评论内容