SOLIDWORKS强大功能—宏(二)
好酷屋教程网小编为您收集和整理了SOLIDWORKS强大功能—宏(二)的相关教程:之前的文章介绍了如何通过SOLIDWORKS正版软件的VBA来开发一个简单的标准件生成器;后面我们会对这个标准件生成器进行进一步功能扩充,今天我们来研究另一个问题:SOLIDWORKS装配体零件遍历。
之前的文章介绍了如何通过SOLIDWORKS正版软件的VBA来开发一个简单的标准件生成器;后面我们会对这个标准件生成器进行进一步功能扩充,今天我们来研究另一个问题:SOLIDWORKS装配体零件遍历。
SOLIDWORKS装配体零件遍历在二次开发中会经常使用,比如:
1.创建装配体结构BOM,搜索结构的所有层级,并提取每个结构、零件的属性信息;
2.在装配体中查找出所有的标准件、特定的零部件;
3.当装配体提示零件中存在被压缩的特征时,通过遍历找出被压缩特征的零部件;
4.遍历整个结构,为每个零件进行随机上色;
5.批量检查零件属性的完整性;
那么在SOLIDWORKS VBA开发中,如何对装配体结构进行完整的遍历呢?以下是对装配体遍历的基本流程:
首先用户需要先获取当前装配体结构的子组件,然后通过for循环遍历该结构的所有子组件,并且判断每个子组件是属于零件还是装配体,如果是装配体,则需要对该装配体进行子组件获取,然后检查该装配体的下属层级…如此往复;
但因为我们无法预先知道任何一个装配体结构存在多少个层级,所以也无法判断需要执行多少次for循环,所以我们在这里使用了递归的方式来处理该问题。
以下是装配体遍历的基本代码:
在main主函数中,我们通过 Set swmodel = swApp.ActiveDoc 获取到当前正在被SOLDWORKS打开且处于当前显示界面的装配体,通过 swmodelComps = swAsm.GetComponents(True) 或者这个装配体的所有子组件,放到swmodelComps 这个数组中;
接下来调用GetAsmChild这个函数,并且将swmodelComps数组作为变量传递到函数中;
在GetAsmChild函数中,通过:
For i = 0 To UBound(swmodelComps)
…
Next
语句对获取到的子组件数组进行遍历,该遍历只会搜索结构的一个层级,为了让遍历可以搜索结构的所有层级,所以有如下的条件判断代码:
If swmodel.GetType = 1 Then
MsgBox (swmodel.GetTitle)
ElseIf swmodel.GetType = 2 Then
swAsm = swmodel
GetAsmChild (swAsm.GetComponents(True))
End If
其中swmodel.GetType = 1 表示该获取到的一个层级中的其中一条子组件属于零件;
其中MsgBox (swmodel.GetTitle) 表示将该零件的名称进行显示;
重点在对子组件属于装配体的处理,在swmodel.GetType = 2 的条件(子组件属于装配体)中,我们做了如下操作:
GetAsmChild (swAsm.GetComponents(True))
可以看到这是一个函数调用,调用了什么函数呢?调用了GetAsmChild,这实际上是调用了它自身,这种调用函数自身的情况就叫做递归;
可以看到,虽然函数相同,但是前后两个GetAsmChild的变量却不同,第一次的GetAsmChild作为入口,传递的是我们打开的装配体文件的信息,第二次到第N次,传递的则是每一个子组件(子装配体)的信息,这样层层嵌套,最终实现装配体结构的整体的遍历。
以上是本次SOLIDWORKS VBA装配体结构遍历的一些分享,希望能够帮助大家。
以上就是好酷屋教程网小编为您收集和整理的SOLIDWORKS强大功能—宏(二)相关内容,如果对您有帮助,请帮忙分享这篇文章^_^
本文来源: https://www.haoku5.com/IT/63a5007abc08510b53070294.html
相关推荐
热门专题
PS快捷键_PS快捷键大全
经典的Photoshop快捷键大全,如果你是入门阶段的水平,熟读此文并掌握,马上进阶为中级水平。matlab怎么换行?matlab换行教程
今天小编为大家带来的是matlab换行的教程,想知道怎么换行的小伙伴来看看接下来的这篇文章吧,相信一定会帮到你们的。matlab怎么换行?matlab换行教程1、首先在matlab主页面板中点击【Matlab求矩阵的乘积的操作方法
很多用户在使用Matlab的时候,不是很熟悉其中怎么求矩阵的乘积的?本期为你们带来的教程就描述了Matlab求矩阵的乘积的操作方法。Matlab求矩阵的乘积的操作方法打Matlab,在命令行窗口分区工具diskgenius强制删除文件的具体使用流程
很多人不知道分区工具diskgenius如何强制删除文件?今日为你们带来的文章是关于分区工具diskgenius强制删除文件的具体含义讲解,还有不清楚小伙伴和小编一起去学习一下吧。分区工具diskggoldwave怎么启用延迟录制计时器?goldwave启用延迟录制计时器教程
很多小伙伴在使用goldwave的时候,想知道怎么启用延迟录制计时器,下面小编就为大家分享教程,感兴趣的小伙伴不要错过哦!goldwave怎么启用延迟录制计时器?goldwave启用延迟录制计时器教pycharm使用技巧
今天小编给大家讲解pycharm使用技巧,有需要或者有兴趣的朋友们可以看一看下文,相信对大家会有所帮助的。pycharm使用技巧使用PyCharm软件需要python运行环境,这里我已经下载好。CAD看图软件哪个好用?如何使用CAD看图软件
在CAD中,大家都知道CAD图纸是使用CAD制图软件来绘制完成的,那保存的格式就是为dwg格式和dxf格式的。那需要对图纸内容进行查看的时候,就要适用到CAD看图软件。但看图软件有很多,那么CAD看图diskgenius怎么将分区中的文件复制到指定目录?diskgenius将分区中的文件复制到指定目录方法
使用diskgenius的时候,很多小伙伴不知道怎么将分区中的文件复制到指定目录,下面小编就给大家带来方法,有需要的小伙伴不要错过哦。diskgenius怎么将分区中的文件复制到指定目录?diskg分区工具diskgenius将硬盘合并分区的详细流程
说起分区工具diskgenius伙伴们都不陌生,那么使用怎么使用分区工具将硬盘合并分区呢?下面一起看看关于分区工具diskgenius将硬盘合并分区的详细流程吧。分区工具diskgenius将硬盘合MathType中公式与文字错位的处理方法
最近有很多朋友向我咨询关于MathType中公式与文字错位的问题,今天就为大家介绍MathType中公式与文字错位的处理方法,希望能够帮助到大家。MathType中公式与文字错位的处理方法方法一