SolidWorks*Excel+VBA-强势插入
- 2026-09-21 17:18:24
SolidWorks*Excel+VBA-强势插入还在为装配零部件不知道从哪插,不知道插哪些而纠结嘛,这不就来了,一发提神醒脑,两发金枪不倒,三发长生不老! 装配嘛,就得玩个姿态 反正SW自身文件管理系统的特点就是,同名文件哪怕在不同文件夹都不能同时打开,虽然能降低文档调用出错率,但是对二开及其不友好,原本想细分所有出错情况并区分报错信息,原谅我还是我太肤浅了。 最后还是一句:on error resume next,开摆(╯' - ')╯︵ ┻━┻ 
已关注
关注
重播 分享 赞
Sub InsertModel() '插入零部件Dim SwApp As SldWorks.SldWorks, SwCurModel As ModelDoc2Dim OpennedModel As ModelDoc2, Openned As Boolean, SwErr As LongDim AddModelName As String, AddResult As BooleanDim k As Integer, Posn As LongOn Error Resume NextSet SwApp = GetObject(, "SldWorks.Application")If SwApp Is Nothing ThenMsgBox "请先打开SolidWorks!", vbExclamation, "不正经的机械仙人"Exit SubEnd IfSet SwCurModel = SwApp.ActiveDocIf SwCurModel Is Nothing ThenMsgBox "未打开任何SW文件!", vbExclamation, "不正经的机械仙人"Exit SubEnd IfIf SwCurModel.GetType <> swDocASSEMBLY ThenMsgBox "当前不是SW装配文件!", vbExclamation, "不正经的机械仙人"Exit SubEnd IfIf myselcondi ThenWith ThisWorkbook.ActiveSheetFor k = 1 To SelnumberProcessBarUpdater k, Selnumber, "正在插入模型:", "共" & Selnumber & "个,第" & k & "个 ..."Posn = Selarray(k)AddModelName = .Cells(Posn, 2) & "\" & .Cells(Posn, 3) & .Cells(Posn, 4)Set OpennedModel = SwApp.GetOpenDocument(AddModelName)If Not OpennedModel Is Nothing ThenSet OpennedModel = Nothing: Openned = TrueEnd IfIf UCase(.Cells(Posn, 4)) = ".SLDPRT" ThenIf Not Openned Then SwApp.OpenDoc2 AddModelName, swDocPART, False, False, True, SwErrElseIf UCase(.Cells(Posn, 3) & .Cells(Posn, 4)) = UCase(SwCurModel.GetTitle) ThenGoTo InsMine '同名装配,不允许插入自己,无关乎路径ElseIf Not Openned Then SwApp.OpenDoc2 AddModelName, swDocASSEMBLY, False, False, True, SwErrEnd IfAddResult = SwCurModel.AddComponent(AddModelName, 0, 0, 0)If AddResult Then.Cells(Posn, 1) = "模型插入√"AddResult = FalseElseInsMine: .Cells(Posn, 1) = "插入失败!"End IfIf Openned ThenOpenned = FalseElseSwApp.QuitDoc AddModelNameEnd IfNextEnd WithElseMsgBox "未选择正确行,程序结束!", vbExclamation, "不正经的机械仙人"End IfErr.ClearSet SwCurModel = NothingSet SwApp = NothingApplication.StatusBar = FalseEnd Sub

本文来自网友投稿或网络内容,如有侵犯您的权益请联系我们删除,联系邮箱:wyl860211@qq.com 。