醉生梦 发表于 2017-3-1 08:30:37

solidworks 批量执行宏

各位大大好,在网上找到一个可以批量打开SW零件的宏,代码如下:

Sub Test()
Set swApp = Application.SldWorks
PartPath = "D:\Project\" '设定目录
PartFileName = Dir(PartPath & "*.sldprt") '搜寻首个零件档案名称
Do Until PartFileName = "" '直至搜寻到空值
Set Part = swApp.OpenDoc(PartPath & PartFileName, 1) '开启零件
'加入所需语句
'.
'.
'.
'.
Part.Save '保存
swApp.CloseDoc (PartFileName) '关闭零件
PartFileName = Dir '搜寻下一个零件档案名称
Loop '循环搜寻
End Sub

可是却只能打开零件,装配体和工程图就不能打开了,哪位大大可以帮忙改一下,使其可以打开文件夹中的SW所有的三种文件,在此拜谢!!!

工人师_OgIOQ 发表于 2017-3-1 09:10:04

劝你到三维网和开思找,那里有几位研究宏的大神。
还有为什么要批量打开零件文件,屏幕能装的下吗

魍者归来 发表于 2017-3-1 09:37:31

从第三行开始,每行的part楼主没看到么?替换成工程图和装配体就好。不知道怎么敲代码就自己录制宏,看一下就明白了,VBA很简单的

未来第一站 发表于 2017-3-1 09:41:47

本帖最后由 未来第一站 于 2017-3-1 09:47 编辑

必威APP精装版下载solidworks专家级两位楼上大侠到齐了:lol

footleft 发表于 2017-3-1 09:50:11

这个难道不是图中圈住的改为"slddrw"和"sldsam"吗?

醉生梦 发表于 2017-3-3 10:43:21

工人师_OgIOQ 发表于 2017-3-1 09:10
劝你到三维网和开思找,那里有几位研究宏的大神。
还有为什么要批量打开零件文件,屏幕能装的下吗

谢谢你
批量打开的用处是加入其他录制的宏,可以执行批量操作,提高工作效率

醉生梦 发表于 2017-3-3 10:45:25

魍者归来 发表于 2017-3-1 09:37
从第三行开始,每行的part楼主没看到么?替换成工程图和装配体就好。不知道怎么敲代码就自己录制宏,看一下 ...

那如何才能将打开三种文件的代码整合到一个宏里面?望大侠指教

醉生梦 发表于 2017-3-3 10:47:29

footleft 发表于 2017-3-1 09:50
这个难道不是图中圈住的改为"slddrw"和"sldsam"吗?

只是更改这个还不行的,要配合着更改下面的那 1    分别对应123
但是我想能不能将打开三种文件的代码整合到同一个宏中

ryouss 发表于 2017-3-4 14:21:37

本帖最后由 ryouss 于 2017-3-4 14:42 编辑

用 Select Case 做篩選循環,
不過如下宏只是做零件,裝配件及工程圖的叫出再關閉,沒實質意義.



'
' 在某文件路徑下批量開零件,裝配件及工程圖
' sc liang 2017/3/4
' 測試版 2012 sp4
'
Dim nErrors          As Long
Dim nWarnings      As Long

Sub Test()
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    path = "D:\Project\"   '存檔路徑
    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)
               Set Part = swApp.ActiveDoc
               Part.Save
'開組件檔
            Case "ASM"
                Set swModel = swApp.OpenDoc6(path + sFileName, swDocASSEMBLY, swOpenDocOptions_Silent, "", nErrors, nWarnings)
'開工程圖            
            Case "DRW"
                Set swModel = swApp.OpenDoc6(path + sFileName, swDocDRAWING, swOpenDocOptions_Silent, "", nErrors, nWarnings)
                  
      End Select
      Set swModel = Nothing
      swApp.CloseDoc (sFileName)
      sFileName = Dir   '同路徑取出下個SW文件檔名
    Loop
End Sub

魍者归来 发表于 2017-3-4 15:13:40

杨猛0230 发表于 2017-3-3 10:45
那如何才能将打开三种文件的代码整合到一个宏里面?望大侠指教

方案1:If…Then…Else 语句
方案2:Select…Case 语句
方案3:Do…Loop 语句
方案4:For…Next 语句
方案5:While…Wend 语句
方案6:……
……

页: [1] 2 3 4
查看完整版本: solidworks 批量执行宏