|
加入QQ群
参与讨论和学习
或扫描二维码加入
12#的簡化參考
OpenFile_Configuration.rar
(11.62 KB, 下载次数: 136)
SWP 2015/12/4 14:00 更新
'
' 在某文件路徑下批量開零件及裝配件並寫入配置特定
' 開 SW 軟件,執行 main 主程式
' sc liang 2015/12/3
' 測試版 2012 sp4
'
'定義變數型態
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc
Dim boolstatus As Boolean
Dim Part As Object
Dim sFileName As String
Dim path As String
Dim Type_ As String
Dim nErrors As Long
Dim nWarnings As Long
Dim S1 As Integer
Dim S2 As Integer
Dim Path_Name As String
Dim Code_Name_C As String
Dim Code_ As String
Dim Name_ As String
Dim strmat As String
Dim strmas As String
Dim swModelDoc As SldWorks.ModelDoc2
Dim swConfig As SldWorks.Configuration
Dim CustPropMgr As SldWorks.CustomPropertyManager
'~~~ 主程式 ~~~
Sub Main()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
path = InputBox("Enter a folder path containing any Solidworks files (For example '' C:test '' )", "Parts path location") '鍵入存檔路徑
sFileName = Dir(path & "*.sld*") '取出SW檔
'循環開檔
Do Until sFileName = ""
Type_ = Right(sFileName, 3) '取得SW文件擴展名後三位
Select Case Type_ '判定SW文件型式
'開零件檔
Case "PRT"
Set swModel = swApp.OpenDoc6(path + sFileName, swDocPART, swOpenDocOptions_Silent, "", nErrors, nWarnings)
Call Configuration_ '呼叫副程式
'開組件檔
Case "ASM"
Set swModel = swApp.OpenDoc6(path + sFileName, swDocASSEMBLY, swOpenDocOptions_Silent, "", nErrors, nWarnings)
Call Configuration_ '呼叫副程式
End Select
swModel.Save '存檔
swApp.CloseDoc swModel.GetTitle '關檔
Set swModel = Nothing
sFileName = Dir '同路徑取出下個SW文件檔名
Loop
End Sub
'~~~ 執行配置特定 副程式 ~~~
Public Sub Configuration_()
Set swModelDoc = swApp.ActiveDoc
Set swConfig = swModelDoc.ConfigurationManager.ActiveConfiguration
Set CustPropMgr = swModel.Extension.CustomPropertyManager(swModel.ConfigurationManager.ActiveConfiguration.Name) '配置特定之延伸設定
'設定變量
Path_Name = swApp.ActiveDoc.GetPathName '取得"路徑名稱及擴展名",不管擴展名是否隱藏
S1 = InStrRev(Path_Name, "") '符號在路徑之最後位置數
Code_Name_C = Right(Path_Name, Len(Path_Name) - S1) '取得"件號_名稱.擴展名"
S2 = InStr(Code_Name_C, "_") '_符號在"件號_名稱.擴展名"之位置數
Code_ = Left(Code_Name_C, S2 - 1) '取得"件號"
Name_ = Mid(Code_Name_C, S2 + 1, Len(Code_Name_C) - S2 - 7) '取得"件號_名稱"
strmat = Chr(34) + Trim("SW-Material" + "@@") + "@" + Code_Name_C + Chr(34) '屬性材料
strmas = Chr(34) + Trim("SW-Mass" + "@@") + "@" + Code_Name_C + Chr(34) '屬性單重
'刪除欄
CustPropMgr.Delete ("代號")
CustPropMgr.Delete ("名稱")
CustPropMgr.Delete ("材料")
CustPropMgr.Delete ("單重")
'新增
CustPropMgr.Add2 "代號", swCustomInfoText, Code_
CustPropMgr.Add2 "名稱", swCustomInfoText, Name_
CustPropMgr.Add2 "材料", swCustomInfoText, strmat
CustPropMgr.Add2 "單重", swCustomInfoText, strmas
CustPropMgr.Add2 "備註", swCustomInfoText, " "
End Sub
复制代码 |
|