2017-11-20 142 views
1

タイトルが1日以上記述しているようにしようとしていて、それを理解できないようです。CATIA v5。図のテキストボックスに3Dpartのパラメータの値を抽出するためのマクロ

状況:

私は、文字列として複数のユーザーメイドのパラメータを持つ3Dパーツを持っています。 私は新しい図面をフロント、上部に作成します。&等角図。 3D部品のパラメータの文字列値を読み込んで、図面の特定の場所に書き込むマクロを作成したいと考えています。これまで

仕事:

VB環境では、USER-から文字列値を抽出している間、私は私の紙面にマクロ召喚テキストを持つことができるんだけど、私はどのように把握することはできません私の3D部分にパラメータを作成しました。 は、私は、「材料」は私の3Dパーツのパラメータですが、私はリターンを得ることができないんだけど

myValue = material.Value 

を使用することを試みました。私は何を宣言するのか、パラメータを適切に参照する方法を知らない。

さらに、私はこれを書くことでマクロでの私の図面上のプレーンテキストを書き込むことができるよ:私が意図した場所に私の図面上の「記述」と言ってテキストを取得

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

が、私はすることができます代わりに変数を使ってテキストをどのように動かすかを理解していない。 試してみる:

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

私は返品を受け付けません。

私は試してきましたが、私はどこにも出てこないようです。どんな助けでも大歓迎です。

答えて

0

テキストに表示するPartまたはProductからParameterへの参照を取得する必要があります。また、DrawingTextオブジェクトのInsertVariableメソッドを使用してパラメータをリンクする必要があります。部品のパラメータが変更されると、図面内でパラメータを更新することができます。ここで

は、あなたが(あなたがより具体的に何をしたい達成するために、それを変更することができます)何をしたい達成することができ、簡単なサブです:ここで

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 
+0

感謝たくさん!フォローアップの質問がありますが、このコメントボックスはその多くの文字を許可していません。 私はstackoverflowに新しいです、私は新しい質問をする必要がありますか、このスレッドで続行する方法はありますか? –

+1

@LaurensRubenあなたの質問に答えた場合は、それを回答としてマークしてください。そうでなければ、別の質問であれば、新しいスレッドを作成することができます。 – AugustoQ

+0

@LaurensRubenこの質問を完了し、別の質問をしましょう。これらのコメントにはリンクを貼ってください。 – GisMofx

関連する問題