• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Обновление ссылочного текста в эскизе

Автор ainis, 06.11.23, 13:38:35

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

ainis

В детали (см. вложение) имеется внешняя переменная L, которая задает расстояние между двумя квадратными столбиками. Это же расстояние отображается в эскизе (текст в эскизе задан как ссылка на переменную L).
С помощью внешнего приложения подключаюсь к этому документу, меняю переменную в цикле, столбики соответственно расходятся или сходятся. Но никак не удается изменить текст в эскизе, сделать его соответствующим текущему значению переменной, там всегда отображается предыдущее значение переменной. Т. е., например, переменной L программа присвоила значение "50", столбики раздвинулись на 50 мм, а в эскизе будет написано "Расстояние: 40,0", где "40" - предыдущее значение переменной L.
Часть кода программы:

'Эти объекты уже получены
'------------------------------------------
Dim KompasObject As KompasObject
Dim Document3D As Kompas6API5.ksDocument3D
Dim KompasPart As Kompas6API5.ksPart
Dim Kompas3DDocVarCollection As Kompas6API5.ksVariableCollection
'------------------------------------------
Dim Var As Kompas6API5.ksVariable = KompasObject.GetParamStruct(StructType2DEnum.ko_VariableParam)
Var = Kompas3DDocVarCollection.GetByName("L", True)
For I As Integer = 10 To 60 Step 10
 Var.value = CDbl(I)
 KompasPart.Update()
 KompasPart.RebuildModel()
 Document3D.RebuildDocument()
Next I

С API7, к сожалению, тоже возникают проблемы, так что желательно оставаться на API5.
Заранее спасибо за помощь.
Расстояние с индикацией.m3d

ainis

Нашел, как решить проблему.

Вот такой код обновляет эскиз правильно.

KompasPart.RebuildModelEx(False)
Document3D.RebuildDocument()
Document3D.RebuildDocument(True)

Но в дереве модели при этом эскиз помечается значком необходимости перестроения, что несколько неудобно.