2014-04-06 2 views
1

현재 CATIA V5로 작업 중이며 매크로 (VBA)를 사용하고 싶지만 몇 가지 문제가 있습니다!CATIA의 컷 뷰 텍스트 변경

내 질문은 : 자르기보기의 텍스트를 변경하는 방법은 무엇입니까? 내가 사용하려고

enter image description here

(그림 참조) myView.Texts.item (1)이 "텍스트"로 액세스 할 수 있지만 나는 CATIA는 ...

텍스트로 고려 해달라고 생각

사용자 개입없이이 텍스트를 변경하고 싶습니다 (선택 사항 없음). 그럴 수 있습니까?

+1

내가 CATIA 함께 일한 적이을하지만 당신은 [이] (http://www.scripting4v5.com/additional-articles/) 같은 온라인 자습서를 확인했다? 어쩌면 거기에서 뭔가를 찾을 수 있을까요? –

+1

또한 매크로 기록 옵션이 있습니까? 어쩌면 당신은 매크로를 기록하고 원하는 것을 할 수 있습니다. 그래서 코드가 어떻게 작동하는지 볼 수 있습니다. –

+1

고맙습니다 ...이 웹 사이트를 알고 있지만 해결책을 찾을 수 없습니다 ... 매크로를 기록하면 선택 항목을 사용하여 사용자 개입이 필요합니다 ... – user3503343

답변

1

제도 용 워크 벤치의 IME, VBA 스크립팅은 처음에는 매우 까다 롭습니다. "MyTexts"는 DrawingText 개체의 모음입니다.

MyDrawingText.Text = "MyNewTextValue" 

주요 문제는 수정하려는 특정 텍스트 개체를 처리하는 것입니다. 이 중 가장 좋은 방법은 DrawingView에서 전체 DrawingTexts 컬렉션을 스캔하고 고유 한 이름 인 DrawingText.Name="UniqueObjectName"을 적용하거나 스크립트에서 드로잉 텍스트를 만드는 것입니다. 그러면 DrawingText 객체에 대한 핸들을보다 쉽게 ​​얻을 수 있습니다. 거기에 원하는 값을 넣으십시오. 고유 이름을 만들면 나중에 스크립팅 할 때 드로잉이 더욱 강력 해집니다.

MyView.Texts.Count 또한 마지막으로 만든 DrawingText 객체가있는 경우 항목 번호를 가져 오는 데 유용합니다.

필요한 경우 추가 설명 드리겠습니다. 행운을 빕니다!

업데이트/편집 : 위에서 언급했듯이 제도 작업대로 스크립팅하는 것이 항상 쉬운 것은 아닙니다. 콜 아웃 텍스트는 DrawingView 컬렉션 인 DrawingTexts 컬렉션에 정확히 존재하지 않지만, 은 드로잉보기 안쪽에 있습니다.이 경우 섹션의 'ID'를 수정하려고합니다. 보기.이 속성은 VBA를 통해 노출되지 않습니다.

텍스트와 그리기를위한 부모 뷰를 검색하는 것입니다해킹/주변 일이있다 한 다음 스캔을 마련하기 위해 당신이 원하는 텍스트에 대한 Selection이 필요합니다 몇 가지 논리와 변화. 당신이 그곳에있을 때 이름을 바꿔야합니다. 이렇게하면 다시 돌아와 다시 찾을 수 있습니다. 여기

이 예는 컷 뷰의 텍스트 뷰 이름에 의해 정의 된 전면의 개체 해상도 (단면 뷰의 부모보기)

Sub ChangeCallout() 

'---- Begin resolution script for object : Front View 

Dim drawingDocument1 As DrawingDocument 
Set drawingDocument1 = CATIA.ActiveDocument 

Dim drawingSheets1 As DrawingSheets 
Set drawingSheets1 = drawingDocument1.Sheets 

Dim drawingSheet1 As DrawingSheet 
Set drawingSheet1 = drawingSheets1.Item("Sheet.1") 

Dim drawingViews1 As DrawingViews 
Set drawingViews1 = drawingSheet1.Views 

Dim drawingView1 As DrawingView 
Set drawingView1 = drawingViews1.Item("Front view") 'this is the parent view of the section view 

'---- End resolution script 

Dim sel As Selection 
Set sel = drawingDocument1.Selection 
Dim CalloutText As drawingText 

sel.Clear 'clear the selection/good practice 
sel.Add drawingView1 'add the parent view to the selection 
sel.Search "Drafting.Text,sel" 'this will search the current selection for all drawing texts and add them to the selection 

Dim thing As Variant 
Dim i As Integer 
For i = 1 To sel.Count 
    Set thing = sel.Item2(i) 
    Set CalloutText = thing.Value 
    'do some things/logic here to determine if this is a callout with some Ifs or Case statements 
    'CalloutText.Name = "Useful Unique Name" 
    'CalloutText.Text = "New Callout Label" 'whatever you want to rename it to 
Next 

End Sub 
+1

GisMofx에 감사하지만,이 캐쉬 MyView.Texts.Count는 0을 제공합니다 ...이 "텍스트"에 액세스 할 수 없습니다 – user3503343

+1

@ user3503343 마우스 포인터를 섹션 설명 선 텍스트 위로 이동하고 왼쪽 아래의 컨텍스트 표시 줄을 봅니다. _Text!/콜 아웃 (단면보기) .1 ... _ – GisMofx

+1

위의 내용을 편집하려했습니다 : @ user3503343 마우스 포인터를 섹션 설명 선 텍스트 위로 이동하고 왼쪽 하단의 컨텍스트 표시 줄을 봅니다. . _Text.1/콜 아웃 (단면도) .1 ... _ Text.1은 "GetItem()"함수에서 사용할 수있는 이름입니다. 또한 IDE의 삽입 메뉴에서 "객체 해상도 ..."를 사용해야합니다. 그런 다음 선택하고 드로잉으로 전환하고 마우스 왼쪽 버튼을 클릭하여 섹션 설명 선 문자를 선택하면 객체를 가져 오는 방법과 함께 IDE에 코드 팝업이 표시됩니다. 그것은 훌륭한 시작입니다. – GisMofx

1

로 시작, 그것은을 변경하려면 다음을 수행해야 울부 짖는 설명으로보기 이름 변경 :

Sub CATMain() 

    Dim oDraw As DrawingDocument 
    Set oDraw = CATIA.ActiveDocument 

    Dim oSectionView As DrawingView 
    Set oSectionView = oDraw.Sheets.ActiveSheet.Views.ActiveView 

    oSectionView.SetViewName "Prefix ", "B", " Suffix" 

End Sub