2017-11-20 1 views
1

제목이 설명하는 내용을 하루 이상지나 봤는데 그걸 알아낼 수 없습니다.CATIA v5. 그림의 텍스트 상자에 3Dpart의 매개 변수 값을 추출하는 매크로

상황 :

나는 문자열로 여러 사용자 제작 매개 변수를 사용하여 3D 부분이있다. 프런트, 위 & 등각 투영 뷰를 사용하여 새 도면을 만듭니다. 내 3D 파트의 매개 변수 문자열 값을 읽고 도면의 특정 위치에 쓰는 매크로를 만들고 싶습니다. 지금까지

일 : 내 도면에 매크로 소환 텍스트를 가질 수 있어요,하지만 방법에 VB 환경에서, 사용자 -에서 문자열 값을 추출하는 동안 내가 알아낼 수 없습니다

내 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 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

감사 : 여기

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 

그것을 테스트하기 위해 몇 가지 예제 코드입니다 : 여기

당신이 원하는 (당신은 더 구체적으로 원하는 것을 달성하기 위해 수정할 수) 달성 할 수있는 간단한 서브의 많이! 후속 질문이 있지만이 설명 상자는 그 많은 문자를 허용하지 않습니다. stackoverflow를 처음 사용하거나 새로운 질문을하거나이 스레드에서 계속할 수있는 방법이 있습니까? –

+1

@LaurensRuben 귀하의 질문에 대답이 있다면 대답으로 표시해야합니다. 그렇다면 다른 질문 인 경우이를위한 새로운 스레드를 만들 수 있습니다. – AugustoQ

+0

@LaurensRuben이 질문을 완성하고 다른 질문을하십시오. 이 의견에 링크를 붙여주십시오. – GisMofx

관련 문제