在 SolidWorks(SW)中无法删除自定义属性,通常是因为操作方式不正确、属性被锁定、或使用了不兼容的宏/工具。根据最新公开资料(截至2026年5月),以下是有效删除自定义属性的方法:一、手动删除方法
单个零件/装配体:打开零件或装配体文件。
点击菜单栏 “文件” → “属性”。
在弹出的对话框中切换到 “自定义” 选项卡。
选中要删除的属性,点击 “删除” 按钮(注意:不是“清除值”,而是删除整个属性条目)。
点击 “确定” 保存。
批量删除(适用于多个文件):SolidWorks 自带的 “任务计划程序” 只能添加或修改属性,不能删除已有属性
需借助 宏(Macro) 或第三方工具实现批量删除。
二、使用宏一键删除(推荐)
适用于批量删除零件(.sldprt)、装配体(.sldasm)中的自定义属性,支持递归遍历子文件夹。
操作步骤:打开 SolidWorks。
点击 “工具” → “宏” → “新建”,保存宏文件。
删除默认代码,粘贴以下核心逻辑
vba
Option Explicit
Sub BatchDeleteSWProps_YourLogic()
Dim swApp As SldWorks.SldWorks
Dim folderPath As String
Dim shellObj As Object
Dim fso As Object
Dim folder As Object
Dim file As Object
Dim swModel As SldWorks.ModelDoc
Dim fileName As String
Dim fullPath As String
Dim propName As Variant
Set swApp = CreateObject("SldWorks.Application")
swApp.Visible = True
If swApp Is Nothing Then
MsgBox "SolidWorks未启动!", vbCritical
Exit Sub
End If
Set shellObj = CreateObject("Shell.Application")
Set shellObj = shellObj.BrowseForFolder(0, "请选择要处理的根文件夹(会遍历所有子文件夹)", 16, 0)
If shellObj Is Nothing Then
MsgBox "未选择文件夹,操作取消!", vbExclamation
Exit Sub
End If
folderPath = shellObj.Self.Path
Set shellObj = Nothing
Set fso = CreateObject("Scripting.FileSystemObject")
Call ProcessAllSubFolders(swApp, folderPath)
MsgBox "所有零件属性删除完成!", vbInformation
Set swApp = Nothing
End Sub
Sub ProcessAllSubFolders(swApp As SldWorks.SldWorks, folderPath As String)
Dim fso As Object
Dim folder As Object
Dim subFolder As Object
Dim fileName As String
Dim swModel As SldWorks.ModelDoc
Dim fullPath As String
Set fso = CreateObject("Scripting.FileSystemObject")
' 处理当前文件夹下的所有 .sldprt 文件
fileName = Dir(folderPath & "\*.sldprt")
Do While fileName <> ""
fullPath = folderPath & "\" & fileName
swApp.CloseAllDocuments True
DoEvents
Set swModel = swApp.OpenDoc6(fullPath, swDocPART, swOpenDocOptions_Silent, "", 0, 0)
If Not swModel Is Nothing Then
For Each propName In swModel.GetCustomInfoNames
swModel.DeleteCustomInfo propName
Next
swModel.Save
swApp.CloseDoc fullPath
End If
Set swModel = Nothing
fileName = Dir
Loop
' 递归处理子文件夹
Set folder = fso.GetFolder(folderPath)
For Each subFolder In folder.SubFolders
ProcessAllSubFolders swApp, subFolder.Path
Next
End Sub
点击 “调试” → “编译”,确认无语法错误。
点击 运行(三角图标),选择根文件夹,等待自动处理。
⚠️ 重要提醒:操作前务必备份文件,避免误删重要属性!
三、其他注意事项
配置特定属性 vs 自定义属性:若属性同时存在于“配置特定”和“自定义”中,工程图会优先使用配置特定属性
需分别在 “配置” 选项卡下删除
属性文件丢失问题:如提示 properties.txt 丢失,可能导致属性管理异常,需修复路径
权限问题:确保文件未被只读锁定或由其他程序占用。
如需进一步自动化或团队标准化,可参考 SW自学网提供的宏下载
武汉格发信息技术有限公司 | 许可分析,许可优化,许可管理,许可授权,软件授权