2017-04-27 1 views
0

enter image description here카티아 V5 매크로 반복 (포인트 및 비행기)

내가 반복 (포인트 및 비행기) 0.1 내부의 점의 좌표를 취득하고자하는 카티아 V5 매크로를 사용하여 내부의 점의 좌표를 얻을 수 있습니다. 이 반복 (점 및 평면) .1은 기하학적 집합 안에 있습니다 (이미지에 표시됨).

나는 selection.search를 사용하여 Repetition (Points and Planes) .1을 선택했습니다. 그러나 나는 포인트의 좌표를 얻을 수 없다.

Dim objSel As Selection 

objSel.Search "'Generative Shape Design'.'Repetition (Points and Planes)',sel" 

난 기하학적 세트 (pntRep 이미지에 도시) 선택 후 포인트 TXT 파일 좌표 내보낼.

답변

1

Repetition (Points and Planes) 개체는 HybridBody로 처리되며 GeometricalSet과 동일합니다.

Dim HybridBodypntRep as HybridBody 
dim HybridBodyInternal as HybridBody 
set HybridBodypntRep = objSel.item(1).value 
for i = 1 to HybridBodypntRep.HybridBodies.Count 
    set HybridBodyInternal = HybridBodypntRep.HybridBodies.Item(i) 
    for j = 1 to HybridBodyInternal.HybridShapes.Count 
     'Here you will have access to all points and planes inside the Repetition 
     dim Element as HybridShape 
     set Element = HybridBodyInternal.HybridShapes.Item(j) 
     'Element is probably your point, just check it 
next 

:

그래서, Repetition 당신이해야 할 모든 인스턴스를 HybridBody로 위협 그를됩니다 얻기 위해, 당신은 다음과 같이 할 수 그걸 얻기 위해 Selection.Search 방법을 사용할 필요가 없습니다 Element 개체가 아마도 귀하의 Point 일 것입니다.

이 코드는 첫 번째 레벨에서 선택한 내부의 모든 내부 기하학 세트를 반복하고 그 내부의 모든 요소를 ​​찾습니다.

+0

@AgustoQ 답변 해 주셔서 감사합니다. 나는 "정의되지 않은 사용자 정의 유형"으로 오류가 발생하면서 HybridShapeTypeLib을 제거해야했습니다. – harishli2020

+0

귀하의 요청에 답변을 편집했습니다. VB.Net을 사용하여 Catia를 개발하고 일반적으로 객체 선언을 위해 네임 스페이스가 필요하지만 Catia VBA에서는 필요하지 않습니다. 미안합니다. – AugustoQ