SOLIDWORKS強(qiáng)大功能—宏(二)

    之前的文章介紹了如何通過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)遍歷的一些分享,希望能夠幫助大家。


    鑫辰信息科技(深圳)有限公司專注于Solidworks代理商,SolidWorks深圳代理,SolidWorks經(jīng)銷商等

  • 詞條

    詞條說(shuō)明

  • 安裝三維仿真軟件可能會(huì)遇到哪些問題

    三維仿真軟件看似離普通民眾的日常生活較遠(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)系方式 聯(lián)系我時(shí),請(qǐng)告知來(lái)自八方資源網(wǎng)!

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

聯(lián)系人: 張生

電 話: 0755-89233676

手 機(jī): 13713805312

微 信: 13713805312

地 址: 廣東深圳龍崗區(qū)深圳市龍崗區(qū)龍崗大道8288號(hào)大運(yùn)軟件園27棟502

郵 編:

網(wǎng) 址: zhxiaojun928.cn.b2b168.com

八方資源網(wǎng)提醒您:
1、本信息由八方資源網(wǎng)用戶發(fā)布,八方資源網(wǎng)不介入任何交易過程,請(qǐng)自行甄別其真實(shí)性及合法性;
2、跟進(jìn)信息之前,請(qǐng)仔細(xì)核驗(yàn)對(duì)方資質(zhì),所有預(yù)付定金或付款至個(gè)人賬戶的行為,均存在詐騙風(fēng)險(xiǎn),請(qǐng)?zhí)岣呔瑁?
    聯(lián)系方式

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

聯(lián)系人: 張生

手 機(jī): 13713805312

電 話: 0755-89233676

地 址: 廣東深圳龍崗區(qū)深圳市龍崗區(qū)龍崗大道8288號(hào)大運(yùn)軟件園27棟502

郵 編:

網(wǎng) 址: zhxiaojun928.cn.b2b168.com

    相關(guān)企業(yè)
    商家產(chǎn)品系列
  • 產(chǎn)品推薦
  • 資訊推薦
關(guān)于八方 | 八方幣 | 招商合作 | 網(wǎng)站地圖 | 免費(fèi)注冊(cè) | 一元廣告 | 友情鏈接 | 聯(lián)系我們 | 八方業(yè)務(wù)| 匯款方式 | 商務(wù)洽談室 | 投訴舉報(bào)
粵ICP備10089450號(hào)-8 - 經(jīng)營(yíng)許可證編號(hào):粵B2-20130562 軟件企業(yè)認(rèn)定:深R-2013-2017 軟件產(chǎn)品登記:深DGY-2013-3594
著作權(quán)登記:2013SR134025
Copyright ? 2004 - 2024 b2b168.com All Rights Reserved