www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 工業(yè)控制 > 《機(jī)電信息》
[導(dǎo)讀]摘要:介紹了如何通過(guò)使用solidworks的屬性標(biāo)簽與VBA接口,快速實(shí)現(xiàn)文件屬性的填寫(xiě)和BOM的導(dǎo)出,避免設(shè)計(jì)過(guò)程中出現(xiàn)重復(fù)性的煩瑣工作,提升設(shè)計(jì)效率。

引言

Solidworks軟件是世界上第一個(gè)基于windows開(kāi)發(fā)的三維CAD系統(tǒng),其操作非常符合windows用戶的習(xí)慣,因此新手入門上手比較容易。使用該軟件可以大大縮短設(shè)計(jì)時(shí)間,將產(chǎn)品快速投向市場(chǎng),目前市面上做非標(biāo)設(shè)計(jì)的工程師大多用的都是該軟件。同時(shí),為實(shí)現(xiàn)數(shù)據(jù)共享,solidworks提供了VBA、VB.NET、C#等OLE的開(kāi)發(fā)語(yǔ)言接口,極大地方便了軟件使用。

在企業(yè)日常使用過(guò)程中,模板制作、文檔屬性和標(biāo)準(zhǔn)件管理都是企業(yè)標(biāo)準(zhǔn)化和信息化的重要環(huán)節(jié)。solidworks文檔的屬性作為模型的附屬信息,是后續(xù)信息化的基礎(chǔ)信息。屬性可用于鏈接到工程圖以及輸出BOM等。同時(shí),solidworks也提供了屬性標(biāo)簽編制的工具程序,可利用它來(lái)生成模型的自定義屬性界面,在界面中能方便地進(jìn)行模型的屬性修改等操作。

文獻(xiàn)闡述了一種進(jìn)行solidworks文檔屬性及BOM定制的方法,可以提高日常工作效率與防出錯(cuò)。但屬性編輯一般是手動(dòng)填寫(xiě),BOM輸出也需手動(dòng)處理或借助第三方插件完成,很多工作都是重復(fù)和煩瑣的。如果借助于VBA腳本按特定的規(guī)則進(jìn)行文件屬性的填寫(xiě),同時(shí)通過(guò)遍歷模型特征樹(shù)及讀取屬性信息,快速生成BOM文件,就可避免很多設(shè)計(jì)過(guò)程中的重復(fù)性工作。

1文件屬性填寫(xiě)VBA的實(shí)現(xiàn)

為了使VBA腳本能按特定的規(guī)則進(jìn)行文件屬性的自動(dòng)填寫(xiě),需要規(guī)范信息的輸入與輸出。本文的屬性名稱列表包括:項(xiàng)目、組件、名稱、規(guī)格、版本、外形尺寸、材料、單重、表面處理、類別、單機(jī)數(shù)量、設(shè)計(jì)、備注。

文獻(xiàn)闡述了如何用軟件自帶的屬性標(biāo)簽編制程序來(lái)生成solidworks文件的自定義屬性界面,屬性標(biāo)簽界面的內(nèi)容與文件的屬性內(nèi)容是一致的。材料和單重屬性可以是固定文字表達(dá)式,其他屬性則通過(guò)VBA填寫(xiě),同時(shí)也可以在執(zhí)行腳本后在自定義屬性界面手動(dòng)修改。

考慮到在一個(gè)項(xiàng)目的設(shè)計(jì)過(guò)程中,一些如項(xiàng)目名稱、設(shè)計(jì)者等的屬性基本不變,可將信息存于xm1文件中,在整個(gè)項(xiàng)目期間僅進(jìn)行一次寫(xiě)入,其間直接讀取這些內(nèi)容即可。對(duì)于一些特定材質(zhì)的零件的表面處理,也可以設(shè)置默認(rèn)的處理方式。屬性填寫(xiě)的界面如圖1所示,xm1文件格式內(nèi)容如圖2所示。

圖1屬性填寫(xiě)界面

xm1文件讀取與寫(xiě)入的部分腳本如下:

setxm1doc=CreateObject("Microsoft.xMLDOM")!創(chuàng)建xm1doc對(duì)象

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

ProjectName=xm1doc.getE1ementsByTagName("項(xiàng)目名稱").1tem(0).Text!讀取xm1節(jié)點(diǎn)

xm1doc.getE1ementsByTagName("項(xiàng)目名稱").1tem(0).Text=ProjectName!設(shè)置xm1節(jié)點(diǎn)

圖2xmI文件格式內(nèi)容

在電子文檔存檔的同時(shí),模型文件名字也可以作為輸入信息來(lái)源,零件名稱、規(guī)格圖號(hào)及種類等可以根據(jù)文件名字來(lái)進(jìn)行判斷。solidworks電子文件存檔要求如下:所有3D模型文件分三類一自制件(包含零件和裝配件)、外購(gòu)件(需要外購(gòu)的電機(jī)、氣缸等及非標(biāo)定制件等)和標(biāo)準(zhǔn)件(主要為緊固件,如螺釘、平墊、彈墊等)。

自制件命名:圖號(hào)+空格(半角)+名稱。

外購(gòu)件命名:型號(hào)+空格+名稱+(品牌),空格和括號(hào)均為半角符號(hào),如"R32x80s雙軸氣缸(亞德客)":沒(méi)有品牌的,名稱后面可空缺。

標(biāo)準(zhǔn)件命名:從邁迪或too1box等其他3D庫(kù)導(dǎo)入且以GB開(kāi)頭的件,名字保持不變:非GB開(kāi)頭的件,按外購(gòu)件處理。

文獻(xiàn)介紹了如何利用VBA宏來(lái)自動(dòng)分離零件文件名中的代號(hào)與名稱。本文通過(guò)讀取模型文件名字,并以半角符號(hào)的空格作為標(biāo)志提取,可以得到零件名稱和規(guī)格圖號(hào),實(shí)現(xiàn)功能的部分腳本如下:

'PartTit1e=圖號(hào)+空格+名稱

spacePos=Instr(PartTit1e,"")'獲取分隔標(biāo)識(shí)符(空格)的位置

PartNumber=Left(PartTit1e,spacePos-l)'獲取圖號(hào)/規(guī)格

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

由于自制件的圖號(hào)是以公司項(xiàng)目代號(hào)開(kāi)頭,與外購(gòu)件這些型號(hào)可以區(qū)分開(kāi)來(lái),而標(biāo)準(zhǔn)件則是以GB開(kāi)頭,因此可以憑此區(qū)分類別。

文獻(xiàn)提出了通過(guò)VBA腳本批量處理原有的solidworks模型屬性的思路和方法。

在裝配體下執(zhí)行腳本,可以對(duì)特征樹(shù)里面的每個(gè)部件和零件進(jìn)行遍歷設(shè)置屬性,一次完成所有填寫(xiě),通過(guò)遞歸調(diào)用部件屬性設(shè)置函數(shù),實(shí)現(xiàn)的部分腳本如下:

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)'遞歸調(diào)用

Next

Endsub

屬性腳本執(zhí)行前的情況如圖3所示,屬性腳本執(zhí)行后的情況如圖4所示,所有屬性信息按預(yù)先設(shè)置自動(dòng)填寫(xiě)完成,如需修改,可在屬性標(biāo)簽頁(yè)直接修改相應(yīng)內(nèi)容。

文獻(xiàn)講述了如何使用solidworks軟件創(chuàng)建模型與工程圖鏈接,來(lái)實(shí)現(xiàn)工程圖標(biāo)題欄中相關(guān)內(nèi)容的自動(dòng)生成。因此,模型屬性可以自動(dòng)鏈接到工程圖圖框中,如圖5所示,避免人為出錯(cuò)。

2BOM清單輸出VBA的實(shí)現(xiàn)

縱觀整個(gè)B0M清單,除了零部件層次,其余信息可以直接從文件屬性中讀取,實(shí)現(xiàn)的部分腳本如下:

PrivatesubGetFi1eProperty(swMode1Doc2,configname)'獲取文件屬性

setcusPropMgr=swMode1Doc2.GetConfigurationByName(configname).

CustomPropertyManager

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

1RetVa1=cusPropMgr.Get2(B0M(4),Va10ut,Resolvedvalout(4))‘規(guī)格/圖號(hào)

零部件層次信息則從最頂層裝配體開(kāi)始,遍歷特征樹(shù)即可獲取相關(guān)信息,實(shí)現(xiàn)的部分腳本如下:

PrivatesubMyGetComponents(Components)‘獲取裝配體頂層子部件

ForEachswComponentInComponents‘遍歷頂層子部件

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

Doc2()

CallGetFileProperty(swModelDoc2,swComponent.ReferencedConfiguration)

EndIf

Next

Endsub

最終生成的BOM清單如圖6所示。

3結(jié)語(yǔ)

本文結(jié)合solidworks模板的建立、定制屬性標(biāo)簽界面、規(guī)范模型的命名、默認(rèn)設(shè)置的xml儲(chǔ)存以及VBA宏程序等技術(shù),實(shí)現(xiàn)了Solidworks模型文件屬性的一鍵快速填寫(xiě)和B0M文件的快速生成,避免了設(shè)計(jì)過(guò)程中的重復(fù)性工作,大大提高了設(shè)計(jì)文件的編制效率,同時(shí)為企業(yè)的標(biāo)準(zhǔn)化和信息化夯實(shí)了基礎(chǔ)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀
關(guān)閉