#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. Спасибо за ответ, но большую часть времени аннотация связана с краем на поверхности или атрибутом толщины, таким как отверстие или щель. Мне нужно измерить радиус края или длину прорези. Есть ли какое-либо решение для этого случая