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

如何在SolidWorks宏的UserForm中加载宏同路径下的图片?

SolidWorks宏相对路径加载UserForm图片解决方案

直接使用./IMAGE.bmp或IMAGE.bmp这类相对路径加载图片失败,核心原因是SolidWorks宏运行时的当前工作目录并非宏文件所在目录,必须先获取宏文件的绝对路径,再拼接图片路径才能正常加载。

以下是两种可行的代码实现:

方法1:用VBA内置函数处理路径

Private Sub RENTRY_Click()
    Dim swApp As SldWorks.SldWorks
    Dim macroFullPath As String
    Dim macroDir As String
    Dim imgFullPath As String
    
    ' 获取SolidWorks应用对象
    Set swApp = Application.SldWorks
    ' 获取当前宏文件的完整路径
    macroFullPath = swApp.GetCurrentMacroPathFilename
    ' 提取宏文件所在目录
    macroDir = Left(macroFullPath, InStrRev(macroFullPath, "\"))
    ' 拼接图片的完整路径
    imgFullPath = macroDir & "IMAGE.bmp"
    
    ' 加载图片到Image控件
    Image1.Picture = LoadPicture(imgFullPath, 552, 358, Default)
End Sub

方法2:用FileSystemObject处理路径

Private Sub RENTRY_Click()
    Dim swApp As SldWorks.SldWorks
    Dim fso As Object
    Dim macroFullPath As String
    Dim macroDir As String
    Dim imgFullPath As String
    
    Set swApp = Application.SldWorks
    ' 创建文件系统对象实例
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    macroFullPath = swApp.GetCurrentMacroPathFilename
    ' 获取宏文件所在目录
    macroDir = fso.GetParentFolderName(macroFullPath) & "\"
    imgFullPath = macroDir & "IMAGE.bmp"
    
    Image1.Picture = LoadPicture(imgFullPath, 552, 358, Default)
End Sub

注意事项

  • 确保图片文件IMAGE.bmp与宏文件(.swp)存放在同一目录下
  • 文件名及后缀需完全匹配(Windows系统大小写不敏感,但建议保持统一)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 08:25:07