之前的文章介紹了如何通過SOLIDWORKS正版軟件的VBA來(lái)開發(fā)一個(gè)簡(jiǎn)單的標(biāo)準(zhǔn)件生成器;后面我們會(huì)對(duì)這個(gè)標(biāo)準(zhǔn)件生成器進(jìn)行進(jìn)一步功能擴(kuò)充,今天我們來(lái)研究另一個(gè)問題:SOLIDWORKS裝配體零件遍歷。
SOLIDWORKS裝配體零件遍歷在二次開發(fā)中會(huì)經(jīng)常使用,比如:
1.創(chuàng)建裝配體結(jié)構(gòu)BOM,搜索結(jié)構(gòu)的所有層級(jí),并提取每個(gè)結(jié)構(gòu)、零件的屬性信息;
2.在裝配體中查找出所有的標(biāo)準(zhǔn)件、特定的零部件;
3.當(dāng)裝配體提示零件中存在被壓縮的特征時(shí),通過遍歷找出被壓縮特征的零部件;
4.遍歷整個(gè)結(jié)構(gòu),為每個(gè)零件進(jìn)行隨機(jī)上色;
5.批量檢查零件屬性的完整性;
那么在SOLIDWORKS VBA開發(fā)中,如何對(duì)裝配體結(jié)構(gòu)進(jìn)行完整的遍歷呢?以下是對(duì)裝配體遍歷的基本流程:
首先用戶需要先獲取當(dāng)前裝配體結(jié)構(gòu)的子組件,然后通過for循環(huán)遍歷該結(jié)構(gòu)的所有子組件,并且判斷每個(gè)子組件是屬于零件還是裝配體,如果是裝配體,則需要對(duì)該裝配體進(jìn)行子組件獲取,然后檢查該裝配體的下屬層級(jí)…如此往復(fù);
但因?yàn)槲覀儫o(wú)法預(yù)先知道任何一個(gè)裝配體結(jié)構(gòu)存在多少個(gè)層級(jí),所以也無(wú)法判斷需要執(zhí)行多少次for循環(huán),所以我們?cè)谶@里使用了遞歸的方式來(lái)處理該問題。
以下是裝配體遍歷的基本代碼:
在main主函數(shù)中,我們通過 Set swmodel = swApp.ActiveDoc 獲取到當(dāng)前正在被SOLDWORKS打開且處于當(dāng)前顯示界面的裝配體,通過 swmodelComps = swAsm.GetComponents(True) 或者這個(gè)裝配體的所有子組件,放到swmodelComps 這個(gè)數(shù)組中;
接下來(lái)調(diào)用GetAsmChild這個(gè)函數(shù),并且將swmodelComps數(shù)組作為變量傳遞到函數(shù)中;
在GetAsmChild函數(shù)中,通過:
For i = 0 To UBound(swmodelComps)
…
Next
語(yǔ)句對(duì)獲取到的子組件數(shù)組進(jìn)行遍歷,該遍歷只會(huì)搜索結(jié)構(gòu)的一個(gè)層級(jí),為了讓遍歷可以搜索結(jié)構(gòu)的所有層級(jí),所以有如下的條件判斷代碼:
If swmodel.GetType = 1 Then
MsgBox (swmodel.GetTitle)
ElseIf swmodel.GetType = 2 Then
swAsm = swmodel
GetAsmChild (swAsm.GetComponents(True))
End If
其中swmodel.GetType = 1 表示該獲取到的一個(gè)層級(jí)中的其中一條子組件屬于零件;
其中MsgBox (swmodel.GetTitle) 表示將該零件的名稱進(jìn)行顯示;
重點(diǎn)在對(duì)子組件屬于裝配體的處理,在swmodel.GetType = 2 的條件(子組件屬于裝配體)中,我們做了如下操作:
GetAsmChild (swAsm.GetComponents(True))
可以看到這是一個(gè)函數(shù)調(diào)用,調(diào)用了什么函數(shù)呢?調(diào)用了GetAsmChild,這實(shí)際上是調(diào)用了它自身,這種調(diào)用函數(shù)自身的情況就叫做遞歸;
可以看到,雖然函數(shù)相同,但是前后兩個(gè)GetAsmChild的變量卻不同,**次的GetAsmChild作為入口,傳遞的是我們打開的裝配體文件的信息,*二次到*N次,傳遞的則是每一個(gè)子組件(子裝配體)的信息,這樣層層嵌套,較終實(shí)現(xiàn)裝配體結(jié)構(gòu)的整體的遍歷。
以上是本次SOLIDWORKS VBA裝配體結(jié)構(gòu)遍歷的一些分享,希望能夠幫助大家。
詞條
詞條說(shuō)明
三維仿真軟件看似離普通民眾的日常生活較遠(yuǎn),實(shí)質(zhì)上卻發(fā)揮著不容忽略的作用,目前在領(lǐng)域內(nèi)的發(fā)展勢(shì)頭平穩(wěn),也受到了不少投資商的額外關(guān)注。正版三維仿真軟件售**昂,但依然抵擋不住準(zhǔn)客戶的垂青與信賴,不難看出該類軟件在客戶中間形成的強(qiáng)勁影響力。除了把目光聚焦于軟件的篩查和橫向比對(duì),安裝期間可能會(huì)遇到的問題也要?jiǎng)?wù)必明晰清楚。 1、*設(shè)備的硬件不兼容 安裝三維仿真軟件可能會(huì)發(fā)生硬件不兼容的問題,遇到此類困境先
solidworks 正版軟件如何隱藏零件或者裝配體細(xì)節(jié)?
在運(yùn)用solidworks正版軟件開發(fā)設(shè)計(jì)領(lǐng)域中,圖紙?jiān)O(shè)計(jì)數(shù)據(jù)是尤為重要的,而在我們研發(fā)設(shè)計(jì)的時(shí)候會(huì)遇到不少要發(fā)送圖紙給客戶的情況,相應(yīng)的我們?cè)诳紤]到公司數(shù)據(jù)的保密性時(shí),需要對(duì)圖紙的數(shù)據(jù)進(jìn)行一定的“加密”。這種情況有兩種“加密”方式:**種方式是把圖紙另存為IGS格式文件,? ? *二種方式是保存類型為零件,然后再勾選要保存的幾何為外部面選項(xiàng)這兩種方式的區(qū)別:**種另存為IGS
SOLIDWORKS 2020 新增功能 — 3D CAD**新功能
1、生成大型裝配體工程圖,提高工作效率 ? 詳圖模式:只需幾秒鐘即可打開工程圖,同時(shí)依然能添加和編輯 注解。 ? 適用于工程圖的圖形加速功能:利用基于硬件加速的渲染工具, 提高平移和縮放工程圖時(shí)的幀速率。 優(yōu)勢(shì) 較快速地處理帶有多張圖 紙、配置和資源密集型視圖 的工程圖。 SOLIDWORKS 2020 新增功能 — 3D CAD**新功能 2、加快裝配體設(shè)計(jì) ? 封套發(fā)布程序:將**裝配體中的
結(jié)構(gòu)優(yōu)化有限元分析的基本特點(diǎn)
結(jié)構(gòu)主義思潮蔓延在21世紀(jì)社會(huì)生活的各行各業(yè),當(dāng)人們已經(jīng)煩厭了以往強(qiáng)調(diào)整體視野的觀念后,朝向局部的結(jié)構(gòu)分析自然成為新的演進(jìn)趨勢(shì)。結(jié)構(gòu)優(yōu)化有限元分析是近兩年中國(guó)社會(huì)新出現(xiàn)的一種局部分析服務(wù),多數(shù)消費(fèi)者對(duì)其基本處在一無(wú)所知的狀態(tài)。下面就談?wù)劥朔治龅幕咎攸c(diǎn)。 一、提前定制個(gè)性化的分析方案 不同于以往建立分析模型后單一地套用該模型解讀各種不同領(lǐng)域的數(shù)據(jù)信息,有限元結(jié)構(gòu)分析的**特征便是強(qiáng)調(diào)分析對(duì)象的特殊
公司名: 鑫辰信息科技(深圳)有限公司
聯(lián)系人: 張生
電 話: 0755-89233676
手 機(jī): 13713805312
微 信: 13713805312
地 址: 廣東深圳龍崗區(qū)深圳市龍崗區(qū)龍崗大道8288號(hào)大運(yùn)軟件園27棟502
郵 編:
網(wǎng) 址: zhxiaojun928.cn.b2b168.com
solidworks2024代理|價(jià)格|經(jīng)銷|價(jià)格|購(gòu)買|報(bào)價(jià)|版權(quán)
solidworks2024白金版代理|價(jià)格|經(jīng)銷|價(jià)格|購(gòu)買|報(bào)價(jià)|版權(quán)
Cimatron 深圳代理|Cimatron價(jià)格|代理商|價(jià)格|報(bào)價(jià)|購(gòu)買
PADS LS 總代理|PADS價(jià)格|代理商|價(jià)格|報(bào)價(jià)|采購(gòu)
PADS ES 總代理|PADS價(jià)格|代理商|價(jià)格|報(bào)價(jià)|采購(gòu)
ALTIUMPROTEL 總代理|ALTIUMPROTEL價(jià)格|代理商|價(jià)格|報(bào)價(jià)|購(gòu)買
solidworks2024代理商丨solidworks2021報(bào)價(jià)丨solidworks價(jià)格
公司名: 鑫辰信息科技(深圳)有限公司
聯(lián)系人: 張生
手 機(jī): 13713805312
電 話: 0755-89233676
地 址: 廣東深圳龍崗區(qū)深圳市龍崗區(qū)龍崗大道8288號(hào)大運(yùn)軟件園27棟502
郵 編:
網(wǎng) 址: zhxiaojun928.cn.b2b168.com
海豚健康云多平臺(tái)數(shù)據(jù)分析交互系統(tǒng)
¥100000.00
¥10000.00