【问题标题】:Display value of custom property Solidworks VBA Macro自定义属性 Solidworks VBA 宏的显示值
【发布时间】:2016-02-11 05:32:34
【问题描述】:

我想创建一个将绘图导出为 PDF 的宏,格式为:绘图名称 + 标题 + 日期。

我创建了一个宏,当我输入title 的值时,它完全符合我的要求。但是在这个项目中,我希望title 等于零件名称。因此我将此代码用于title 值:

$PRPSHEET:"SW-文件名(文件名)"

图纸显示Title 就好了。但是宏不起作用。我的宏不会将此代码转换为零件名称。我不知道为什么。有什么建议吗?

这就是我获得标题的方式:

Dim swCustProp As CustomPropertyManager

Function FormatFileLocation() As String

Dim Title As String
Dim bool As Boolean
Dim val As String

bool = swCustProp.Get4("title", True, val, Title) 'title is the name of the 
                                                  'property and has the value: $PRPSHEET:"SW-File Name(File Name)"
end function

编辑: 我尝试同时使用Titleval,但都给出了相同的错误结果。

【问题讨论】:

    标签: vba solidworks


    【解决方案1】:

    如果您使用的是 SOLIDWORKS 2014 或更高版本,您应该使用 swCustProp.Get5()。根据他们的documentation,Get4() 已过时。

    这段代码对我有用:

    Dim swApp As Object
    Dim swCustProp As CustomPropertyManager
    Dim mde As ModelDocExtension
    Dim swModel As ModelDoc2
    
    Sub main()
    
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    Set mde = swModel.Extension
    Set swCustProp = mde.CustomPropertyManager("")
    Call FormatFileLocation
    
    End Sub
    
    Function FormatFileLocation()
    
    Dim Title As String
    Dim bool As Boolean
    Dim val As String
    Dim resolved As Boolean
    
    bool = swCustProp.Get5("title", True, val, Title, resolved) 'title is the name of the
    'property and has the value: $PRPSHEET:"SW-File Name(File Name)"
    End Function
    

    这是我的绘图自定义属性:

    【讨论】:

    • 请将此字符串添加为值$PRPSHEET:"SW-File Name(File Name)" 您将无法获得链接到此属性的注释上显示的值...这正是问题所在。
    • @2pietjuh2 它是否在自定义属性评估值列中进行评估?它不适合我。这与您可以在图纸中引用多个零件或装配体这一事实有关,那么如果图纸中有多个零件或装配体,它如何知道使用哪个文件名?
    【解决方案2】:

    而不是从自定义属性中读取。您可以从活动绘图视图中读取它。

    Dim swApp As Object
    Dim swModel As ModelDoc2
    Dim swDraw As DrawingDoc
    
    Sub main()
    
        Set swApp = Application.SldWorks
        Set swDraw = swApp.ActiveDoc
        Call FormatFileLocation
    
    End Sub
    
    Function FormatFileLocation()
        Dim Title As String
        Dim v As View
        Set v = swDraw.ActiveDrawingView
        Set swModel = v.ReferencedDocument
        Title = swModel.GetTitle()
    End Function
    

    【讨论】:

      猜你喜欢
      • 2016-05-22
      • 1970-01-01
      • 2012-03-16
      • 2016-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-27
      • 2014-06-16
      相关资源
      最近更新 更多