首页/文章/ 详情

SCDM二次开发系列:对象选择

7月前浏览9525

本文摘要(由AI生成):

本文主要介绍了SCDM中进行特征操作之前,需要指定需操作的几何实体特征,并详细介绍了Selection类下的Create方法,以及Doc对象引用的三种方式:Smart Variable、Index和Ray。此外,还介绍了Selection类的常用方法和多对象选择,并通过案例操作演示了如何移动元件中小于或等于1.5e-5m3的所有主体到相同元件,并将元件重命名为“smallBodies”;移动组件中体积大于1.5e-5m3的所有主体到相同元件,并将元件重命名为“bigBodies”。


SCDM中进行特征操作(拉动移动填充组合)之前,都需要我们指定需操作的几何实体特征。例如,使用拉伸工具将面拉伸为体,需要先指定源面;同样在SCDM脚本建模中,使用特征生成方法时,我们需要先传入Selection实例对象作为参数,所以对象选择是SCDM二次开发中非常重要的操作。

1、Selection概述

在SCDM图形界面中,可以通过鼠标左键单击选择几何对象,选择对象就会以高亮形式显示。而在SCDM脚本建模中,需要调用Selection类下的Create方法,可以获得Selection实例,方法使用如下所示。

01.png

Selection.Create方法提供4种重载(Overload)形式,可以传递不同的参数,但参数都是以Doc对象为基础的,不同参数说明如下:

  • IDocObject:表示单个Doc对象,如IDesignBody-实体、IDesignFace-面、IDesignEdge-边等。

  • IDocObject[]:表示多个Doc对象集 合,类型为ICollection<IDocObject>。

  • IEvalSmartVariable:表示智能变量创建的脚本对象集 合。

  • IEnumerable<IDocObject>:表示给定Doc对象列表。

2、Doc对象引用

有三种方式引用实体(Entity)对象:Smart Variable(智能变量)、Index(索引)和Ray(射线)。

可以通过脚本编辑器中“插入选项”,将选中的几何实体对象作为脚本插入到脚本窗口中。

02.jpg


通过更改“插入选项”下的实体引用方式,可以插入以下三种不同引用方式的脚本命令,如下所示。

03.jpg

下面我们详细介绍以上三种对象引用方式。

2.1 Smart Variable

SCDM脚本录制时默认方法,通过智能变量引用Doc对象。智能变量存储的信息比任何其他类型都多,并且在几何更改期间匹配所选实体时更加健壮。智能变量是SCDM在后台创建的变量,包含有关所选项的大量数据;要想使用智能变量,脚本必须保存为.scscript文件(而不是.py文件:会丢失变量信息)。

2.2 Index – 索引

通过Doc对象的父子关系,通过选定实体的内部索引引用Doc对象;父子对象的访问方法我们在上一篇文章有详细解析。推荐在脚本录制和二次开发时使用索引引用的方式。

04.png


2.3 Ray – 射线

通过创建射线端点(Point)和指定方向(Direction)生成射线矢量,射线会穿过实体对象与之相交,通过相交的位置引用Doc对象。具体使用方法如下图所示。

05.png


案例解析:如下所示为长宽高都为100mm的正方体,在其顶面上方创建坐标点pt-(50, 50, 200),接着创建方向矢量dir-(0, 0, -1),通过调用RayFire.Fire方法,并给定参数ptdir,可得到射线相交的Doc对象集 合(1主体,2)

06.jpg


3、Selection类方法

3.1 常用方法

Selection类中常用方法如下所示,更多方法及详细使用细节可参考脚本开发文档。

07.jpg


3.2 多对象选择

在图形操作中,可以Ctrl+单击选择多个对象;在脚本建模中,同样支持多个Doc对象的选择。

  • 相同类型的Doc对象选择方法如下:

08.jpg

  • 混合类型Doc对象选择方法如下:

09.jpg


4、案例操作

通过脚本命令实现:移动元件中小于或等于1.5e-5m3的所有主体到相同元件,并将元件重命名为“smallBodies”;移动组件中体积大于1.5e-5m3的所有主体到相同元件,并将元件重命名为“bigBodies”。

10.jpg


以上是这期的全部内容,大家有什么疑问和建议,欢迎文章后留言交流哦。

SpaceClaim代码&命令
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2019-09-12
最近编辑:7月前
小田老师
硕士 | 仿真工程师 欢迎关注ANSYS仿真与开发!
获赞 650粉丝 3787文章 62课程 4
点赞
收藏
未登录
3条评论
AYong
签名征集中
4月前
如何得到对象的位置(X、Y、Z)和长宽高呢
回复
平
签名征集中
1年前
如何判断已选择对象的类型呢
回复
高飞
签名征集中
5年前
赞{d83d}{dc4d}{d83c}{dffb}
回复
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈