SCDM二次开发速成:技巧与应用

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

1、SCDM二次开发概述

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数据库等,就需要在其基础进行二次开发。

3、SCDM二次开发

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

  • 脚本开发文档(Scripting API)

InstallDir\scdm\SpaceClaim.Api.V17\API_Scripting_Class_Library.chm


  • 核心开发文档(Core API)

InstallDir\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 StructureSCDM中的组件是包含许多对象模型的容器,也是脚本开发最常用到的类对象。结构如下:

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的子对象。父对象和子对象的访问方法如下代码所示。

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

15.png


4、案例演示

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

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

16.jpg


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



案例3:创建圆环

18.jpg


案例4:批量填充圆孔

19.jpg


案例5:批量导出坐标点

20.jpg


5、后记

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


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空