Добавление новой точки на кривой в CATIA V5 VBA

Я пишу код VBA для Catia V5, чтобы определить конечную точку на опорной линии.

Участок кода выглядит следующим образом:

Dim oReference1 As Reference
Dim oHybridShapeFactory As HybridShapeTypeLib.HybridShapeFactory
Dim intPoint As HybridShapePointOnCurve
Dim oCount As Double
oCount = 10

LenVal = GetLengthValue(oPart, MessRef) 'LenVal stems from a function and is equal to 654.5 (for instance) of Type Double

Dim NoOfSections As Integer
NoOfSections = LenVal / oCount

Dim i As Double

For i = 0 To NoOfSections
     Set intPoint = oHybridShapeFactory.AddNewPointOnCurveFromDistance(oReference1, (i * (LenVal / NoOfSections)), False)
     ...

В строке Set intPoint... есть сообщение об ошибке:

ошибка выполнения 91: переменная объекта или переменная с блоком не определена

Я копался в справочной документации. Кажется, все определено как требуется — функция AddNewPointOnCurveFromDistance принимает Reference, double и boolean как HybridShapePointOnCurve.


person najusten    schedule 06.02.2020    source источник


Ответы (1)


Вы определяете объекты, но не устанавливаете их значения.

Так что, прежде чем идти в петлю...

'Set the HSF
Set oHybridShapeFactory = oPart.HybridShapeFactory
'Get the curve
Dim oCurve as HybridShape
Set oCurve = oPart.FindObjectByName("MyInputCurve") ' this is not the only way to get a curve object
Set oReference1 = oPart.CreateReferenceFromObject(oCurve)
person C R Johnson    schedule 06.02.2020
comment
Спасибо за ваш отзыв! Я добавил предложенные вами четыре строки кода непосредственно перед циклом For, но получил следующее сообщение об ошибке в строке Set oReference1 = oPart.CreateRef....: Ошибка выполнения '-2147024809 (80070057)'; Не удалось выполнить метод CreateReferenceFromObject - person najusten; 06.02.2020
comment
Моя ошибка, я забыл правильно указать, строковое имя опорной строки в отправляемом вами фрагменте My Input Curve - судя по всему, теперь он проходит через этот раздел! - person najusten; 06.02.2020