You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在VBA中为SolidWorks零件设置独立REV码并批量保存

实现每个选中零件对应独立REV码的方案

核心思路

利用控件命名的关联性配对CheckBox和对应的REV文本框:给每个零件的CheckBox命名为chkPart{n}(n为序号,如chkPart1、chkPart2),对应旁侧的REV文本框命名为txtREV{n},通过提取控件名称中的序号实现一一绑定。

具体实现步骤

1. 规范UserForm控件命名

  • 零件选择CheckBox命名规则:chkPart1、chkPart2、chkPart3...
  • 对应REV文本框命名规则:txtREV1、txtREV2、txtREV3...

2. 修改主程序代码

遍历UserForm内的CheckBox,判断选中状态后,通过名称序号匹配对应TextBox,获取独立REV码并执行零件保存:

Sub BatchSavePartsWithUniqueREV()
    Dim swApp As SldWorks.SldWorks
    Dim swModel As SldWorks.ModelDoc2
    Dim swAssy As SldWorks.AssemblyDoc
    Dim swComp As SldWorks.Component2
    Dim chkBox As MSForms.CheckBox
    Dim txtBox As MSForms.TextBox
    Dim partIndex As Integer
    Dim revCode As String
    
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    Set swAssy = swModel
    
    '遍历所有CheckBox控件
    For Each chkBox In UserForm1.Controls
        If TypeName(chkBox) = "CheckBox" And chkBox.Value = True Then
            '提取名称中的序号(从chkPart{n}中分离n)
            partIndex = Val(Right(chkBox.Name, Len(chkBox.Name) - 7)) '7是"chkPart"的字符长度
            
            '匹配对应REV文本框
            Set txtBox = UserForm1.Controls("txtREV" & partIndex)
            revCode = Trim(txtBox.Text)
            
            '获取选中的零件组件
            Set swComp = swAssy.GetComponentByName(chkBox.Caption)
            Set swModel = swComp.GetModelDoc2
            
            '执行带独立REV的保存逻辑(按需修改)
            If Not swModel Is Nothing Then
                '示例:写入REV自定义属性并保存
                swModel.Extension.SetCustomPropertyValue "", "REV", revCode
                swModel.SaveAs2 swModel.GetPathName(), swSaveAsVersion_e.swSaveAsCurrentVersion, swSaveAsOptions_e.swSaveAsOptions_Silent, Nothing
            End If
        End If
    Next chkBox
    
    MsgBox "批量保存完成"
End Sub

3. 优化建议

  • 若零件数量动态变化,可在UserForm加载时,根据装配体零件数自动生成CheckBox和TextBox,并按规则命名。
  • 给TextBox添加输入验证(如限制为字母数字),避免无效REV码输入。

内容的提问来源于stack exchange,提问作者JetskiS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 04:37:33