ANSYS Workbench二次开发–SpaceClaim Python脚本知识–草图绘制相关脚本操作

ANSYS Workbench二次开发–SpaceClaim Python脚本知识–草图绘制相关脚本操作

Please Share Us

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

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

本文为 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二次开发的相关技巧,课程详情请点击下方文章了解:

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

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

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

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

昵称

取消
昵称表情代码

    暂无评论内容

YOU MAY LIKE…