Аннотация CATIA для ссылки на интерфейс пользователя

#vba #catia

Вопрос:

Я пытался получить данные поверхности из аннотации, измерить кривую и проверить, правильно ли упоминается в аннотации или нет.

используя annotation.getsurfaces(variant1()) , но это возвращает строку вместо поверхности. Я не могу получить поверхность с помощью part1.createreferencefromname(variant(0)) или part1.findobjectbyname(variant(0)) мне нужно измерить эту поверхность, возвращенную с annotation.getsurfaces(variant1())

Спасибо,

Ответ №1:

Привет, я очень мало играл с аннотациями, поэтому, возможно, не дам лучшего ответа. Вы могли бы изменить строку из чего-то подобного (извините, что я выдавливаю себя :))

 "Part1/Geometrical Set.1/Extrude.1/Face"
 

Для

 "Part1/Geometrical Set.1/!Extrude.1"
 

Затем используйте

 Dim PartDoc as PartDocument 'your part document
Dim Ref as Reference

Set Ref = PartDoc.Product.CreateReferenceFromName("Part1/GeometricalSet.1/!Extrude.1")
 

Другой вариант-получить название функции "Extrude.1" и использовать:

 Dim Shape as HybridShape 'here you have to declare the right type for you
Set Shape = PartDoc.Part.FindObjectByName("Extrude.1")
 

Будьте осторожны, потому что вы можете получить другой объект, если у вас есть такой же с тем же именем где-то еще!

Вы можете изучить BRep sytax подробнее, если вы достаточно смелы и создадите что-то подобное (просто пример из документации api).

 CreateReferenceFromName("Produit1/Column_2/!Selection_FVertex:(Vertex:(Neighbours:(Face:(Brp:(StrFunRibSweep.1;0:(Brp:(GSMLine.1);Brp:(IntSection.1;9999)));None:();Cf11:());Face:(Brp:(StrFunRibSweep.1;1);None:();Cf11:());Face:(Brp:(StrFunRibSweep.1;0:(Brp:(GSMLine.1);Brp:(IntSection.1;10018)));None:();Cf11:()));Cf11:());StrFunRibSweep.1;Z0;G4702)")
 

Чтобы измерить что-то, вы можете использовать объект Measurable , Space Analysis и там вы можете использовать Func GetMeasurable(Reference iMeasuredItem) As Measurable

Комментарии:

1. Спасибо за ответ, но большую часть времени аннотация связана с краем на поверхности или атрибутом толщины, таким как отверстие или щель. Мне нужно измерить радиус края или длину прорези. Есть ли какое-либо решение для этого случая