Присвоение сгибу нового радиуса и коэффициента

Автор bionorica2015, 18.05.25, 12:42:34

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

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

bionorica2015

+ Благодарностей: 1

Михаил88

#21
Вы точно поняли то, что я написал в сообщении #5?
Если бы вы сделали, как я написал, то задача была бы уже давно закрыта.
Проблема не стоит и выеденного яйца.

p3452

+ Благодарностей: 1

Михаил88

#23
Я когда экспериментировал так тоже пробовал. Работает, но не всегда. Если после изменения коэф. и радиуса программно, потом изменить сгиб и запустить снова на изм. радиуса и коэф. То опять не меняет.
Надо будет попозже ещё раз попробовать. Может я, что то упустил. Спасибо, что поделились.

Михаил88

Да уж, как и писал в прошлом сообщении, работает, но если потом сгиб изменил вручную (например, длину сгиба) и снова пытаюсь изменить коэффициент и радиус, то изменения не проходят.

bionorica2015

Цитата: p3452 от 21.05.25, 15:07:42Редактирование Листового тела 1.png
Вот соответсвующий код:
Редактирование Листового тела.png


Нет и ещё раз нет. Не получается. Михаил прав.

p3452

Надо понимать (!), что делает ЭТОТ код...
p/s: Откройте на экране закладку "Переменные" и запустите этот код - следите за столбцами "Выражение" и "Значение"...

Цитата: Михаил88 от 21.05.25, 16:57:06Да уж, как и писал в прошлом сообщении, работает, но если потом сгиб изменил вручную (например, длину сгиба) и снова пытаюсь изменить коэффициент и радиус, то изменения не проходят.
- Детальку (простенькую), в которой "не меняется" значение, в версии не старше 20, можите выложить...

Михаил88

#27
Я так и делал, запускал с открытым деревом переменных. Вы и сами можете легко проверить. Строите сгиб, с помощью кода меняете коэф. и радиус. Все меняется отлично. Далее вручную редактируете сгиб и меняете его длину. Далее опять пытаетесь кодом поменять коф. и радиус и в этот раз уже изменения не проходят.
kompas_document = application.ActiveDocument
kompas_document_3d = kompas_api7_module.IKompasDocument3D(kompas_document)
part7 = kompas_document_3d.TopPart
sheet_metal_container = kompas_api7_module.ISheetMetalContainer(part7)
sheet_metal_bends = sheet_metal_container.SheetMetalBends
sheet_metal_bend = sheet_metal_bends.SheetMetalBend(0)

sheet_metal_bend.BendCoefficient = 0.55
sheet_metal_bend.Radius = 3.5

model_obj = kompas_api7_module.IModelObject(sheet_metal_bend)
model_obj.Update()

print(part7.Update())
print(kompas_document_3d.RebuildDocument())

Записал видео. https://disk.yandex.ru/i/BQT8TBVTbGLcGw

Из видео видно, что 2 раза меняет удачно, но после изменения длины сгиба перестает менять.

+ Благодарностей: 1

p3452

Цитата: Михаил88 от 21.05.25, 19:14:56Из видео видно, что 2 раза меняет удачно, но после изменения длины сгиба перестает менять.
Все так...
Но ЭТО лишь, подтверждает все, что было сказано выше:
1. После исправления ошибок, в коде ТС, - код работает.
2. Параметризованные детали редактировать так как делает ТС - НЕЛЬЗЯ!
3. Если, очень хочется "ломать"-редактировать параметризованную деталь, через изменение значений, это можно сделать - разово и без сочетания с редактирование руками (иначе, получается двойное "ломание"), т.е нужно точно понимать, что делаешь...
4. Правильный способ редактирования параметризованных деталей - через редактирование переменных!
5. Ваша деталь, как и прочие, чудно редактируется через переменные, без каких либо последствий...
+ Благодарностей: 1

UU

Компас v24, таже песня.
Взял деталь Михаил88 для опытов, поменял через сгибы, меняет заходишь в редактирование сгиба нажимаешь крестик, радиус меняется до перестроения модели, после перестроения возвращается назад.
В детали есть ещё сгиб в самом листовом теле, если менять и его то там меняет, но теряет переменную.
Глюк на глюке.
Оптимальным, есть вариант менять через переменные, тем более, что они создаются автоматически в листовом теле.
Сделал простенькую библиотеку которая меняет:
- Радиус,
- Коэффициент нейтрального слоя
- Толщину листа.
SheetMetal.rar
+ Благодарностей: 2