首页 文章

CATIA v5 . 用于将3Dpart参数的值提取到图形上的文本框中的宏

提问于
浏览
1

我一直在努力做 Headers 所描述的一天,我似乎无法弄明白 .

情况:

我有一个3D部分,其中包含多个用户自制的参数作为字符串 . 我用前视图,顶视图和等轴视图创建了一个新图形 . 我希望创建一个宏来读取我的3D零件参数的字符串值,并将它们写在图纸上的特定位置 .

到目前为止工作:

我能够在我的绘图中有一个宏召唤文本,但我无法弄清楚如何在VB环境中从我的3D部分中的用户自制参数中提取字符串值 . 我试过用

myValue = material.Value

“材料”是我的3D部分的参数,但我无法获得回报 . 我不知道要声明什么以及如何正确引用参数 .

此外,通过编写以下内容,我能够使用宏在我的绘图上写明文:

Set myText = MyDrawingViews.ActiveView.Texts.Add("description", 22, 38)

我在预期位置的图纸上得到了一条说明“描述”的文字,但我无法弄清楚如何用变量来驱动文本 . 当我尝试:

dim myValue as string
myValue = "description"
Set myText = MyDrawingViews.ActiveView.Texts.Add(myValue, 22, 38)

我没有得到回报 .

我一直在尝试,但我似乎无法到达任何地方,任何帮助将不胜感激 .

1 回答

  • 0

    您需要从文本中的 PartProduct 获得对 Parameter 的引用 . 此外,您应该使用 DrawingText 对象的 InsertVariable 方法来链接参数 . 当参数在零件中更改时,可以在图纸中更新 .

    这是一个简单的Sub,可以完成你想要的东西(你可以修改它来完成你想要的更具体):

    Sub AddTextWithLinkedParameter(dViewToContainTheText As DrawingView, xPos, yPos, Optional param As Parameter)
    
        Dim dtext As DrawingText
        Set dtext = dViewToContainTheText.Texts.Add("", xPos, yPos)
    
        If Not param Is Nothing Then
            dtext.InsertVariable 0, 0, param
        End If
    
    End Sub
    

    这是一些测试它的示例代码:

    Sub testParameterText()
        Debug.Assert False
        '
        'Manually Activate the Part Document
        'that contains a string parameter called "Property
        '
        Dim myParam As Parameter
        Dim partDoc As PartDocument
        Set partDoc = CATIA.ActiveDocument
        Set myParam = partDoc.Part.Parameters.Item("Property")
    
        Debug.Assert False
        'manually switch to a drawing document
    
        Dim dDoc As DrawingDocument
        Set dDoc = CATIA.ActiveDocument
    
        Dim dSheet As DrawingSheet
        Set dSheet = dDoc.Sheets.ActiveSheet
    
        Dim dView As DrawingView
        Set dView = dSheet.Views.Item("Main View")
    
        AddTextWithLinkedParameter dView, 20, 20, myParam
    
    End Sub
    

相关问题