首页/文章/ 详情

ANSYS二次开发精品课|答疑记录分享

4月前浏览9979

本文摘要(由AI生成):

本文讨论了在使用ANSYS的SCDM(SpaceClaim Direct Modeler)时,如何通过脚本访问和操作圆柱面、草图绘制、创建几何形状、处理ACT Console中的tkinter错误、投影方法、Mechanical分析设置、Mechanical界面脚本使用、定义接触设置以及SCDM界面按钮点击的脚本命令。特别强调了使用SelectionPoint对象指定草图修剪位置、通过Cylinder类实例获取圆柱面半径和周长、利用SketchHelper类实现草图镜像、样条曲线生成正弦曲线等高级操作,并提供了相应的脚本示例和解决方案。


年初推出的《SCDM脚本建模和二次开发系列课》,已有3万多的播放量,128人收藏关注,感谢大家的支持帮助。

01.png

已订阅的朋友,可以加入课程答疑群,享受一对一交流答疑服务,下面整理出了几个共性的群里学员的问题,希望能正好解决你的疑惑

问题:@小田老师,请问SCDM中修剪方法里传入的SelectionPoint.Create参数是什么意思,为什么会影响草图的修剪结果,一直没有搞懂,开发文档中也没有找到问题解答。


回答:这个参数的意思我在《第十章-草图绘制、编辑及平面创建详解》中详细介绍过,参数对应的是SelectionPoint对象,是和直线长度、曲线弧度相关的变量。在草图修剪的时候,需要指定需去除的一侧,通过SelectionPoint对象就能够指定位置。


问题:@小田老师,在SCDM中如何使用脚本访问Cylinder圆柱面的半径和周长呢?


回答:如果选中的面cylFace类型是圆柱面时,通过cylFace.Shape.Geometry就可以获得Cylinder类的实例,然后通过Cylinder类的实例属性Radius就可以得到半径,完整的命令:
radius = cylFace.Shape.Geometry.Radius
面的面积:cylFace.Area,周长:cylFace. Perimeter


深入理解可以回顾下《第五章- 脚本开发文档及DOC对象详解》内容,我讲解了Doc对象、Moderer对象、Geometry对象关系,如果再举一反三的话,以同样的方式可以访问环面Torus,锥面Cone,以此类推。

问题:@小田老师,草图绘制时,通过SCDM脚本中如何打开参考线的镜像功能呢?


回答:使用SketchHelper类下的SetMirrorLine方法,就可以实现,需要在定义镜像线之后,开始创建草图,就会出现效果,可以参考如下案例:


问题@小田老师,SCDM脚本有没有办法使用方程创建几何呢,比如我要做一条正弦曲线,就只能使用样条曲线创建吗?


回答:是的,理论上SCDM中任意的曲线都可以采用样条曲线生成,原理就是生成曲线上点,然后通过样条曲线连接,点的间隔越小越逼近真实形状;例如生成正弦曲线:


问题@小田老师,在ACT Console中运行tkinter出错,这是什么问题呢?

回答:Python(CPython)和IronPython二者语法相同,但是底层实现的方式不一样,我在前面课程强调过,IronPython只支持.NET的WinForms或者WPF界面开发,tkinter是CPython版本的类库,同样Numpy,Matplotlib等都不支持。如通过WinForms类库可以在ANSYS中实现GUI开发,可以参照《第一十八章 SCDM脚本工具及ACT向导开发》中内容。


问题@小田老师在SCDM中2019R2投影方法ProjectToSolid.Execute不能运行怎么办?


回答:2019R2中API版本为17,其实也是可以投影的,只不过需要转变思路:采用拉动工具中的直到复 制功能:选中需要投影面,然后指定方向,按住Ctrl,指定需要直到面(投影面),最后修复压印就可以,对应的脚本如下:



问题@小田老师老师,Mechanical分析设置中,该怎么设置大变形和弱弹簧选项呢?

回答:可以通过给定AnalysisSetting的属性WeakSpringsLargeDeflection对应值类型,脚本参考如下:


问题@小田老师,如何在Mechanical界面使用workbench脚本,比如访问设计点数据?


回答:可以在Mechanical脚本中使用wbjn模块下的ExecuteCommand方法向Workbench发送脚本;如果需要返回值,使用returnValue方法返回。可以参考以下示例;

另外在课程《SCDM脚本建模及ANSYS二次开发》的第54讲,我详细介绍过,演示如何在Mechanical中创建材料,需要朋友去观看。

问题@小田老师,请问如何在Mechanical中使用脚本定义接触设置?

回答:首先在Connections节点插入接触,然后更改属性、指定接触的面对,关键在于源面和目标面怎么指定,通常两种方式:

①在SCDM中创建命名选择,指定相应命名选择给SourceLocation、TargetLocation属性;

Mechanical中识别这两个位置,得到面的Id或者Entity,然后创建一个SelectionInfo对象,指定给SourceLocationTargetLocation属性。下面代码可以参考下

问题@小田老师,SCDM界面上按钮点击有什么对应的脚本命令吗?


回答:SCDM上每一个控件都有对应的Command名称,可以通过SpaceClaim.Api.V18命名空间下的Command类去调用,比如说界面上简化按钮<Simplify>可以通过以下脚本调用。


SpaceClaimACTWorkbench结构基础流体基础二次开发通用
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2020-08-04
最近编辑:4月前
小田老师
硕士 | 仿真工程师 欢迎关注ANSYS仿真与开发!
获赞 650粉丝 3782文章 62课程 4
点赞
收藏
作者推荐
未登录
1条评论
仿真秀0930090805
签名征集中
3年前
小田老师,你好,我是跟着你的课程在学习开发的,遇到一个问题请教您,我在SCDM里开发界面,界面上有个按钮执行Openfilediolge(),就卡死了,这个怎么解决也?多谢!
回复
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈