SOLIDWORKS之VBA宏(三)
在使用SOLIDWORKS軟件宏時(shí),用戶會(huì)經(jīng)常訪問零件、裝配體、工程圖的屬性,或向?qū)傩灾蟹祵懽侄涡畔ⅰ?/p>
SOLIDWORKS的屬性位于兩個(gè)位置:①自定義屬性,②配置特定屬性;自定義屬性適用于零件中僅存在單配置,或是多配置但同物料編碼的情形。配置特定適用于多配置系列化零件情形,即每個(gè)配置的物料編碼都不相同的情況;但這也不是完全限定的,用戶可以基于自身理解和需求來實(shí)現(xiàn)不同效果。
屬性的提取和返寫可以用于以下情形:
1.提取零件中已有的多個(gè)屬性,對(duì)多個(gè)屬性進(jìn)行合并,比如由長寬高信息合并生成規(guī)格信息;
2.通過提取到的多個(gè)屬性,根據(jù)映射規(guī)則生成新的屬性字段,比如由文件的類型、規(guī)格等信息生成物料編碼;
3.提取結(jié)構(gòu)的對(duì)應(yīng)屬性,對(duì)結(jié)構(gòu)中的不同零件進(jìn)行分類,輸出不同類型的BOM;
4.在EXCEL中添加零件的各類屬性字段信息,并返寫到SOLIDWORKS文件中,實(shí)現(xiàn)批量操作;
5.批量讀取配置特定屬性,返寫至自定義屬性中;
一:如何讀取文件
以下介紹在VBA宏中,如何讀取文件的自定義屬性、配置特定屬性:

用于獲取當(dāng)前激活的SOLIDWORKS文件,并將獲取到的激活文件賦值給swDoc變量;
代碼:var1 = swDoc.CustomInfo(“物料編碼”)
用于讀取文件自定義屬性中字段為“物料編碼”的屬性值(如果有),并將該值賦給var1;
代碼:var2 = swDoc.GetCustomInfoValue(“默認(rèn)”,“零件類型”)
用于讀取文件”默認(rèn)”配置特定中字段為“零件類型”的屬性值(如果有),并將該值賦給var2;
用戶在獲取到這些所需的屬性字段后,即可對(duì)這些屬性字段進(jìn)行輸出或者是執(zhí)行其他的字符串操作;執(zhí)行完成后,可以將生成的新屬性字段返寫至SOLIDWORKS文件中;
二:激活文件返寫
以下介紹在VBA宏中,如何向一個(gè)激活的文件返寫屬性:

用于刪除自定義屬性中原始字段(如果有),然后再添加該字段,并在添加該字段時(shí),為該字段指定新的值(“0001”);
代碼中的swDmCustomInfoText為該字段的變量類型,與下圖中的Type對(duì)應(yīng),所有代碼類型對(duì)應(yīng)的關(guān)鍵字請(qǐng)查閱SOLIDWORKS API Help;

代碼:
swDoc.DeleteCustomInfo2 “默認(rèn)”, “零件類型”
swDoc.AddCustomInfo3(“默認(rèn)”, “零件類型”, swDmCustomInfoText, “焊件”)
用于刪除“默認(rèn)”配置特定中的原有字段信息(“零件類型”),然后再添加該字段,及字段所對(duì)應(yīng)的值(“焊件”)。
三:實(shí)例演示
接下來,我們通過一個(gè)實(shí)例來演示一個(gè)完整的過程;零件已經(jīng)預(yù)先人工輸入了一些屬性信息,如下圖所示:

讀取零件的屬性信息,判斷打開的零件是否屬于焊件結(jié)構(gòu);如果是焊件,則提取該焊件的“長”、“寬”、“高”屬性,并將該長寬高信息組合,返寫到零件的“規(guī)格”屬性字段中;代碼如下:

宏執(zhí)行結(jié)果如下:

注意:如果用戶需要對(duì)裝配體下屬的零件進(jìn)行屬性批量讀取、返寫,需結(jié)合我前面的文章,遍歷整個(gè)裝配體結(jié)構(gòu),來實(shí)現(xiàn)該效果,在這里不做過多贅述。