首页/文章/ 详情

SCDM二次开发快速入门|应用+技巧

5月前浏览17785

本文摘要(由AI生成):

SpaceClaim简称SCDM,是ANSYS的一款强大的多功能3D直接建模软件,作为其结构和流体分析默认几何前处理模块,为用户提供非常强大的脚本建模功能,可快速实现仿真模型参数化建模、几何修复和装配、边界位置识别等,大幅缩短仿真前处理周期,提升仿真效率。SCDM二次开发主要使用Python脚本语言,通过录制基础脚本,并在其基础上进行修改,添加几何特征识别算法,并扩展相应功能。SCDM提供了非常完备的API开发文档,文档结构包括文档、组件、图纸、材料、窗口和图层等。SCDM脚本编辑器提供自动补全功能,方便使用。通过几个简单的案例可以快速上手SCDM脚本开发。


SpaceClaim简称SCDM,是ANSYS的一款强大的多功能 3D直接建模软件,作为其结构和流体分析默认几何前处理模块,为用户提供非常强大的脚本建模功能,可快速实现仿真模型参数化建模、几何修复和装配、边界位置识别等,大幅缩短仿真前处理周期,提升仿真效率。

1SCDM二次开发概述

1.1 脚本建模的优点
  • 自动化繁琐的手工流程;
  • 自动化重复的任务;
  • 实现终端用户的命令;
  • 管理高度参数化的模型;
  • 在新模型中重用设置。

1.2 Python脚本语言

Python是种高级动态编程语言,是由Python之父 -Guido van Rossum在1991创建发行,应用范围从Web开发GUI开发数据科学人工智能再到DevOps

Python支持多种编程范式,包括面向对象的、命令式的、函数式的和过程式的,并拥有一个大型的、全面的标准库。其作为一种通用的脚本开发语言,相比其他编程语言更加简单、易学,而且其面向对象特性相比Java、C#、.Net更加彻底,非常适合快速开发。根据TIOBE编程语言社区排行榜,Python稳居前三,反应了当今Python的热门程度。所以学好Python,走遍天下都不怕!

1.png

SCDM和Workbench的脚本语言都是基于IronPython:是一种在 .NET 和 Mono 上实现的Python 语言。


IronPython是.NET框架的优秀补充,它为Python开发人员提供了.NET框架的强大功能。我们可以通过CLR平台,加载.NET Framework(基类库、GUI框架)和任何以.NET为基础的动态链接库;如下代码所示:脚本中可以引用“Microsoft.Office.Interop.Excel.dll”,实现仿真流程与Excel表格之间的交互。


2.png

2、脚本录制和运行

SCDM提供脚本录制功能,帮助我们记录基础脚本,并对每一步操作做了相应注释,方便用户后续查看及编辑脚本。

2.1 脚本录制
可以通过以下几个步骤录制操作脚本:
① 启动SCDM软件,选择File > Script打开脚本编辑器;
② 确保脚本编辑器中Record按钮为选中状态;
③ 像往常一样操作界面建模,SCDM会自动记录操作脚本。

3.jpg

2.2 脚本运行
模型创建完成后,按照以下步骤检查脚本的有效性:
① 点击Record按钮,取消选中状态,停止脚本录制;
② 在脚本开头添加“ClearAll()”命令,以便删除创建的几何并从头重新构建;

4.png

③点击Run Script按钮,运行脚本检查模型是否重新生成。

5.png

2.3 保存脚本
检查无误的脚本可以通过以下几种方式保存:
  • 可在Console中点击Save按钮,保存为.scscript二进制文件;
  • 或者在Console中单击Save as按钮,另存为Python格式.py的文件;
  • 作为Group发布并保存在模型中(.scdoc);
  • 作为工具发布(beta版),可作为工具使用。

6.jpg

7.jpg

2.4 脚本录制的局限性
SCDM脚本录制为我们提供了快速生成脚本的方法,但生成的基础脚本本身具有局限性,部分限制罗列如下:
  • 录制脚本中不包含所有的建模操作,部分特征选取和生成操作无法录制;

8.png

  • 录制脚本中几何特征选择随着几何尺寸或拓扑变化后,特征位置识别可能会失效,导致后续特征生成操作失败,稳定性不强;

9.jpg

  • 对于高度参数化或复杂的模型,基础脚本参数化程度低,也不利于参数管理和自动化建模;
  • 对于外部导入模型,基础脚本无法自动识别相应特征,无法对几何进行自动识别修复、零件自动装配、自动创建NamedSelection用于边界加载,适用性差;
  • 录制脚本只具备基础建模功能,若想与外界数据交互和扩展功能,如Excel表格、SQL数据库等,就需要在其基础进行二次开发。

3SCDM二次开发

基于上述局限性,在进行SCDM二次开发时,可先录制基础建模脚本,然后在其基础上进行修改,添加几何特征识别算法,并扩展相应功能。那在开始之前我们需要了解以下概念。
3.1 开发文档
SCDM提供了非常完备的API开发文档,文件位于软件安装目录,如下:
  • 脚本开发文档(Scripting API)
Install Dir\scdm\SpaceClaim.Api.V17\API_Scripting_Class_Library.chm

10.jpg

  • 核心开发文档(Core API)

Install Dir \scdm\SpaceClaim.Api.V17\API_Class_Library.chm

11.jpg

上述的开发文档API囊括了SCDM中的建模操作,能实现界面操作等同的功能。在使用开发文档之前,我们需要理解SCDM中的对象数据结构


3.2 文档结构-Document Structure
在SCDM中,文档(Document)是加载和保存模型的单元。假设文档已保存,则文档对应于磁盘上的SpaceClaim的*.scdoc格式文件。所以,SCDM中所有的对象和数据结构都是建立在文档基础上的。SCDM中文档包含以下对象:


12.png

组件-Parts
  • 文档总是包含至少一个组件,称为其主要组件,这代表着一个设计(Design)。如果主组件有内部元件(Components)(属于同一文档的其他组件的实例),文档也将包含其他组件。内部元件也用于梁轮廓、中面元件和展开钣金元件。


图纸-Drawing Sheets


  • 文档包含零个或多个图纸。


材料-Materials


  • 文档包含零个或多个文档材料,这些材料由该文档中的元件(Parts)、设计体(Design Bodies)或梁(Beams)使用。


窗口-Windows


  • 一个文档包含一个或多个窗口,显示结构树中对象几何结构,还提供与之交互的图形界面。


图层-Layers


  • 文档包含一个或多个图层,活动层是窗口的属性。


3.3 组件结构-Part Structure
SCDM中的组件是包含许多对象模型的容器,也是脚本开发最常用到的类对象。结构如下:


13.jpg

元件-Components
  • 一个组件包含零个或多个元件;元件是另一个模板组件的实例;模板组件可能属于同一个文档(内部元件),也可能属于另一个文档(外部元件)。


设计体-Design Bodies


  • 一个组件包含零个或多个设计体。设计体可以是开放的(面体-Surface Body)或封闭的(实体-Solid Body)。设计主体包括设计面(Design Faces)和设计边(Design Edges)。


基准面-Datum Planes


  • 组件包含零个或多个基准面。正如其名称所示,基准面既可以用作构造平面,也可以包含平面中的设计曲线和文字注释。移动基准面时,也会移动其子平面。


设计曲线-Design Curves


  • 组件包含零条或多条设计曲线。设计曲线具有三维几何形状,尽管它们通常是在平面上绘制的。例如,如果复 制和粘贴设计边,就会创建设计曲线,而这些曲线不必位于平面上,也可以属于基准面和图纸。


坐标系-Coordinate Systems


  • 组件包含零个或多个坐标系。一个坐标系包含三个相互垂直的坐标轴。


折弯钣金壁-Sheet Metal Bends


  • 如果一个组件是钣金件,那么它包含零或更多的钣金折弯,这可能是圆柱形或锥形。如果一个部件是钣金件,那么它就具有钣金方面,这是表示钣金信息的伴生对象,包括折弯。


-Beams


  • 一个组件包含零个或多个梁,这些梁具有修剪后的曲线路径、平面横截面以及有关横截面相对于梁路径的位置和方向的信息。


点焊接头-Spot Weld Joints
组件包含零个或多个点焊接头;点焊接头有一组点焊,每个点焊在设计面上焊接两个或多个点。


3.4 文档和Doc对象


Doc对象属于文档对象,是唯一具有文档属性的对象。Doc对象包括:Part、Component、DesignBody、DesignFace、DatumPlane等。
Doc对象是父-子树包含层次结构的一部分,其中父对象表示容器(Container),子对象表示内容(Contents)。如果一个Doc对象被删除,它的所有子对象(子对象,递归地)也会被删除。我们可以看下面例子来加深理解。
例如:一个Part包含零个或者多个DesignBody对象,每个DesignBody对象包含一个或多个DesignFace对象。DesignFace的父级是DesignBody,DesignBody的父级是Part;同样地,DesignBody是Part的子对象,DesignFace是DesignBody的子对象。父对象和子对象的访问方法如下代码所示。


14.jpg

3.5 自动补全


SCDM脚本编辑器提供自动补全功能:通过在对象后加“.”,编辑器会自动列出对象属性和方法,方便使用。


15.png

4、案例演示


下面我们通过几个简单的案例来快速上手SCDM脚本开发。


案例1:获取目标面的特征属性

16.jpg

案例2:获取几何实体的特征属性

17.jpg

案例3:创建圆环

18.jpg

案例4:批量填充圆孔

19.jpg

案例5:批量导出坐标点

20.jpg

5后记


最近针对客户的仿真需求,使用SCDM加Mechanical、Fluent做了几个大大小小的二次开发项目,深感SCDM的脚本功能的强大。在仿真模板开发环节中,个人感觉最难就在于前处理建模部分:如何生成高度参数化模型、如何自动修复外部导入模型、如何自动识别特征位置等等。上述问题通过SCDM二次开发都能完美解决,你说厉不厉害!
另外,个人计划录制些SCDM脚本二次开发的培训课程,不知道大家感不感兴趣呢?最后,对于SCDM脚本开发或课程内容安排,大家有什么疑问和建议,欢迎文章留言交流哦。




SpaceClaim
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2019-08-15
最近编辑:5月前
小田老师
硕士 | 仿真工程师 欢迎关注ANSYS仿真与开发!
获赞 649粉丝 3769文章 62课程 4
点赞
收藏
未登录
7条评论
Jenny
签名征集中
1年前
可以连接solidwork进行吗?
回复
风起
静水流深
1年前
厉害
回复
宋i
签名征集中
2年前
运行脚本不报错,也不运行是什么问题呢
回复
仿真秀1221160031
签名征集中
3年前
请教一下生成的SCDM二进制插件,安装后为什么在安装目录还会生成.py源文件?用的2020R2版本
回复 1条回复
糖醋排骨
签名征集中
4年前
优秀,初次接触,挺有感悟的
回复
刘波
签名征集中
4年前
能否出几期ansys maxwell的呢?
回复 1条回复
5年前
强大。期待老师出一些SCDM+FLUENT仿真脚本运行的课程
回复 1条回复
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈