当前位置:首页 > 工业控制 > 《机电信息》
[导读]摘要:介绍了如何通过使用solidworks的属性标签与VBA接口,快速实现文件属性的填写和BOM的导出,避免设计过程中出现重复性的烦琐工作,提升设计效率。

引言

Solidworks软件是世界上第一个基于windows开发的三维CAD系统,其操作非常符合windows用户的习惯,因此新手入门上手比较容易。使用该软件可以大大缩短设计时间,将产品快速投向市场,目前市面上做非标设计的工程师大多用的都是该软件。同时,为实现数据共享,solidworks提供了VBA、VB.NET、C#等OLE的开发语言接口,极大地方便了软件使用。

在企业日常使用过程中,模板制作、文档属性和标准件管理都是企业标准化和信息化的重要环节。solidworks文档的属性作为模型的附属信息,是后续信息化的基础信息。属性可用于链接到工程图以及输出BOM等。同时,solidworks也提供了属性标签编制的工具程序,可利用它来生成模型的自定义属性界面,在界面中能方便地进行模型的属性修改等操作。

文献阐述了一种进行solidworks文档属性及BOM定制的方法,可以提高日常工作效率与防出错。但属性编辑一般是手动填写,BOM输出也需手动处理或借助第三方插件完成,很多工作都是重复和烦琐的。如果借助于VBA脚本按特定的规则进行文件属性的填写,同时通过遍历模型特征树及读取属性信息,快速生成BOM文件,就可避免很多设计过程中的重复性工作。

1文件属性填写VBA的实现

为了使VBA脚本能按特定的规则进行文件属性的自动填写,需要规范信息的输入与输出。本文的属性名称列表包括:项目、组件、名称、规格、版本、外形尺寸、材料、单重、表面处理、类别、单机数量、设计、备注。

文献阐述了如何用软件自带的属性标签编制程序来生成solidworks文件的自定义属性界面,属性标签界面的内容与文件的属性内容是一致的。材料和单重属性可以是固定文字表达式,其他属性则通过VBA填写,同时也可以在执行脚本后在自定义属性界面手动修改。

考虑到在一个项目的设计过程中,一些如项目名称、设计者等的属性基本不变,可将信息存于xm1文件中,在整个项目期间仅进行一次写入,其间直接读取这些内容即可。对于一些特定材质的零件的表面处理,也可以设置默认的处理方式。属性填写的界面如图1所示,xm1文件格式内容如图2所示。

图1属性填写界面

xm1文件读取与写入的部分脚本如下:

setxm1doc=CreateObject("Microsoft.xMLDOM")!创建xm1doc对象

xm1doc.Load(PathName)!加载xm1文件

ProjectName=xm1doc.getE1ementsByTagName("项目名称").1tem(0).Text!读取xm1节点

xm1doc.getE1ementsByTagName("项目名称").1tem(0).Text=ProjectName!设置xm1节点

图2xmI文件格式内容

在电子文档存档的同时,模型文件名字也可以作为输入信息来源,零件名称、规格图号及种类等可以根据文件名字来进行判断。solidworks电子文件存档要求如下:所有3D模型文件分三类一自制件(包含零件和装配件)、外购件(需要外购的电机、气缸等及非标定制件等)和标准件(主要为紧固件,如螺钉、平垫、弹垫等)。

自制件命名:图号+空格(半角)+名称。

外购件命名:型号+空格+名称+(品牌),空格和括号均为半角符号,如"R32x80s双轴气缸(亚德客)":没有品牌的,名称后面可空缺。

标准件命名:从迈迪或too1box等其他3D库导入且以GB开头的件,名字保持不变:非GB开头的件,按外购件处理。

文献介绍了如何利用VBA宏来自动分离零件文件名中的代号与名称。本文通过读取模型文件名字,并以半角符号的空格作为标志提取,可以得到零件名称和规格图号,实现功能的部分脚本如下:

'PartTit1e=图号+空格+名称

spacePos=Instr(PartTit1e,"")'获取分隔标识符(空格)的位置

PartNumber=Left(PartTit1e,spacePos-l)'获取图号/规格

PartName=Mid(PartTit1e,l+spacePos,Len(PartTit1e)-spacePos-7)'获取名称

由于自制件的图号是以公司项目代号开头,与外购件这些型号可以区分开来,而标准件则是以GB开头,因此可以凭此区分类别。

文献提出了通过VBA脚本批量处理原有的solidworks模型属性的思路和方法。

在装配体下执行脚本,可以对特征树里面的每个部件和零件进行遍历设置属性,一次完成所有填写,通过递归调用部件属性设置函数,实现的部分脚本如下:

PrivatesubMysetComponentsProp(swMode1Doc2,ParentPartNo)

Components=swMode1Doc2.GetComponents(True)

ForEachswComponentInComponents'遍历顶层子部件

setswComMode1Doc2=swComponent.GetMode1Doc2()

swConfigName=swComponent.ReferencedConfiguration

ret=setFi1eProperty(swComMode1Doc2,swConfigName,ParentPartNo)

IfswComMode1Doc2.GetType=swDocAssEMBLYThenCa11

MysetComponentsProp(swComMode1Doc2,ParentPartNo)'递归调用

Next

Endsub

属性脚本执行前的情况如图3所示,属性脚本执行后的情况如图4所示,所有属性信息按预先设置自动填写完成,如需修改,可在属性标签页直接修改相应内容。

文献讲述了如何使用solidworks软件创建模型与工程图链接,来实现工程图标题栏中相关内容的自动生成。因此,模型属性可以自动链接到工程图图框中,如图5所示,避免人为出错。

2BOM清单输出VBA的实现

纵观整个B0M清单,除了零部件层次,其余信息可以直接从文件属性中读取,实现的部分脚本如下:

PrivatesubGetFi1eProperty(swMode1Doc2,configname)'获取文件属性

setcusPropMgr=swMode1Doc2.GetConfigurationByName(configname).

CustomPropertyManager

1RetVa1=cusPropMgr.Get2(B0M(3),Va10ut,Reso1vedVa10ut(3))'名称

1RetVa1=cusPropMgr.Get2(B0M(4),Va10ut,Resolvedvalout(4))‘规格/图号

零部件层次信息则从最顶层装配体开始,遍历特征树即可获取相关信息,实现的部分脚本如下:

PrivatesubMyGetComponents(Components)‘获取装配体顶层子部件

ForEachswComponentInComponents‘遍历顶层子部件

If(False=swComponent.ExcludeFromBOM)ThensetswModelDoc2=swComponent.GetModel

Doc2()

CallGetFileProperty(swModelDoc2,swComponent.ReferencedConfiguration)

EndIf

Next

Endsub

最终生成的BOM清单如图6所示。

3结语

本文结合solidworks模板的建立、定制属性标签界面、规范模型的命名、默认设置的xml储存以及VBA宏程序等技术,实现了Solidworks模型文件属性的一键快速填写和B0M文件的快速生成,避免了设计过程中的重复性工作,大大提高了设计文件的编制效率,同时为企业的标准化和信息化夯实了基础。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

与安卓系统相比,鸿蒙系统具有卓越的性能,不仅可以应对各种各样的设备,而且在多设备播放和物联网方面也有很强的优势。

关键字: 鸿蒙系统 智慧时代 安卓系统

在电力电子与电气工程领域,逆变器和变压器都是不可或缺的重要设备。尽管它们都在电力转换和传输过程中发挥着关键作用,但它们在功能、工作原理和应用场景等方面存在着显著的差异。本文将从科技视角出发,对逆变器和变压器的区别进行深度...

关键字: 逆变器 变压器

电动机作为现代工业与生活的重要动力源,广泛应用于各个领域。然而,在电动机的运行过程中,电容烧毁的问题时常发生,给生产和生活带来诸多不便。那么,电动机为何偏爱“烧电容”呢?本文将从电容的作用、烧毁原因以及预防措施等方面进行...

关键字: 电动机 电容

在日新月异的工业技术领域,变频器作为一种电力电子装置,已逐渐成为驱动设备、节能降耗的不可或缺的关键设备。AMB100变频器作为其中的佼佼者,凭借其出色的性能、广泛的应用领域以及高效的节能效果,为现代工业生产提供了强大的动...

关键字: amb100变频器 变频器

光伏发电作为本世纪最具有潜力的可再生能源技术之一,其清洁、环保、可再生的特性受到广泛关注。然而,任何一项技术都不是完美的,光伏发电同样存在一些明显的缺点和挑战,这些问题限制了其大规模应用和商业化推广。本文旨在深入探讨光伏...

关键字: 光伏发电 光电效应

在电源管理领域,低压差线性稳压器(LDO)因其结构简单、稳定性好、噪声低等特点而得到广泛应用。随着电子设备对电源性能要求的不断提高,片外电容的LDO设计逐渐成为研究的热点。其中,功率管作为LDO的核心部件,其设计尤为重要...

关键字: ldo 有片外电容 低压差线性稳压器

磁铁,作为一种能够吸引铁、镍、钴等金属的特殊物体,自古以来就引起了人们的极大兴趣。在现代科技中,磁铁的应用更是无处不在,从电动机、发电机到核磁共振成像设备,无不体现了磁铁的神奇力量。那么,磁铁与磁铁之间是如何相互作用的呢...

关键字: 磁铁 磁场

随着可再生能源技术的不断发展和应用,逆变器作为能源转换和储存的核心设备,其在电力系统中的作用日益凸显。根据储能类型的不同,逆变器可以分为电化学储能逆变器和机械储能逆变器两大类。这两类逆变器在结构、原理和应用场景等方面存在...

关键字: 逆变器 可再生能源

随着全球能源结构的深刻变革,可再生能源的推广和应用已成为当今世界的发展趋势。在这一大背景下,逆变器作为连接可再生能源发电设备和电网的关键设备,其重要性日益凸显。本文旨在探讨逆变器的发展背景,分析当前市场现状,并展望其未来...

关键字: 逆变器 可再生能源

在电力系统中,隔离开关是一种关键设备,用于隔离电源、倒闸操作以及接通和断开小电流电路。在10kV高压系统中,隔离开关的选择尤为重要,它直接关系到电力系统的安全稳定运行。本文将对10kV高压隔离开关的选择进行详细探讨,以期...

关键字: 隔离开关 高压电
关闭