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代理商,SolidWorks深圳代理,SolidWorks经销商等

  • 词条

    词条说明

  • 正版solidworks为什么越来越受欢迎

    正版solidworks是美国Solidworks公司开发的三维CAD软件,其功能强大,操作简单,软件均得到广泛应用。为了提高设计效率,实现协同设计,通过正版solidworks‍软件能够小范围内的实现同样的分层管理功能的需要。那么正版solidworks受欢迎的原因有哪些呢? 1、功能好 众所周知,正版solidworks‍是一个典型的多类型文档关联系统,较为典型的是装配体文件,它还引用了其他装

  • 快速批量打印工程图,这个工具少不了!

    在日常使用SOLIDWORKS展开设计工作中需要批量打印图纸时,你是将工程图另存为PDF格式后通过PDF拼图工具进行拼图打印吗?今天我们将给大家提供*二种方式,即使用SOLIDWORKS Task Scheduler工具,对工程图进行批量打印,并且可以进行任务排定,按计划打印工程图,如需要拼图打印,也可以使用此工具批量将工程图转为PDF格式。Task Scheduler工具为安装SOLIDWORK

  • SOLIDWORKS用户使用增材制造的六种基本工具

    增材制造,也就是通常所说的3D打印,是一种制造过程,通过添加材料,一层一层,建立一个零件。这个过程从在用户的本地CAD程序中设计的3D模型开始。然后对该零件进行分析,并将其划分为许多个部分,以创建该零件的构建计划。 目前常用的增材制造技术有立体石印(SLA)、选择性激光烧结(SLS)、直接金属激光烧结(DMLS)、选择性激光熔融(SLM)和熔融丝制造(FFF),还有其他的技术。 SOLIDWORK

  • SOLIDWORKS Visualize 渲染利器(二)

    通过SOLIDWORKS Visualize渲染利器我们了解到,在Visualize当中对光源的使用。在制作的渲染工作当中,除了对光源的处理,还有其他的参数调节。对于3D模型所呈现的效果好看与否,主要还是通过定义模型的材质来展现。比如设备当中的金属、玻璃、塑料这些外观都是常用的一些材质。在Visualize设计时可以很轻易的变更这些材质外观显示样式。比如金属材质,可以通过修改粗糙度来变更金属材质的

联系方式 联系我时,请告知来自八方资源网!

公司名: 鑫辰信息科技(深圳)有限公司

联系人: 张生

电 话: 0755-89233676

手 机: 13713805312

微 信: 13713805312

地 址: 广东深圳龙岗区深圳市龙岗区龙岗大道8288号大运软件园27栋502

邮 编:

网 址: zhxiaojun928.cn.b2b168.com

八方资源网提醒您:
1、本信息由八方资源网用户发布,八方资源网不介入任何交易过程,请自行甄别其真实性及合法性;
2、跟进信息之前,请仔细核验对方资质,所有预付定金或付款至个人账户的行为,均存在诈骗风险,请提高警惕!
    联系方式

公司名: 鑫辰信息科技(深圳)有限公司

联系人: 张生

手 机: 13713805312

电 话: 0755-89233676

地 址: 广东深圳龙岗区深圳市龙岗区龙岗大道8288号大运软件园27栋502

邮 编:

网 址: zhxiaojun928.cn.b2b168.com

    相关企业
    商家产品系列
  • 产品推荐
  • 资讯推荐
关于八方 | 八方币 | 招商合作 | 网站地图 | 免费注册 | 一元广告 | 友情链接 | 联系我们 | 八方业务| 汇款方式 | 商务洽谈室 | 投诉举报
粤ICP备10089450号-8 - 经营许可证编号:粤B2-20130562 软件企业认定:深R-2013-2017 软件产品登记:深DGY-2013-3594
著作权登记:2013SR134025
Copyright © 2004 - 2024 b2b168.com All Rights Reserved