Нужно знать, что за объект с ID==6
Кроме того, в AutoFeaData нет параметра M_ID
С уважением, Алексей Тищенко
Форум пользователей программных комплексов ЛИРА-САПР, МОНОМАХ-САПР, САПФИР-3D, ЭСПРИ
|
28.02.2026 19:35:19
С уважением, Алексей Тищенко
Змінено: - 04.03.2026 11:04:29
|
|||
|
|
|
|
28.02.2026 19:33:42
Поправили. С уважением, Алексей Тищенко
Змінено: - 02.03.2026 11:12:01
|
|||
|
|
|
|
27.02.2026 13:19:54
С лестницами могут быть проблемы в дополнительных параметрах. Сейчас для лестниц все параметры генерации лестницы являются дополнительными. То есть скрипт, который их генерирует, скорее всего при регенерации полностью обновляет эти параметры, и все параметры, которые добавлялись, например, через ноды, могут пропасть. OBP_VALUES = 0x10 # получить значения параметров NPA_PT_STRING = 0x01 NPA_PT_INT = 0x03 NPA_PT_FLOAT = 0x04 NPA_EXT_PARAM =0x20000000 # локальные параметры добавленные при импорте из IFC и т.п. doc = node.GetDocument() prj = doc.GetActiveProject() obj = prj.GetModelByID(10) obj.AddParameter('IType','345', NPA_PT_STRING|NPA_EXT_PARAM, OBP_VALUES)
Для лестниц, а также для других объектов лучше добавлять свои параметры вот так. С уважением, Алексей Тищенко
Змінено: - 27.02.2026 13:22:18
|
|||||
|
|
|
|
29.01.2026 09:30:35
В присланной модели связи на стенах остались.
Обратите внимание на триангуляцию плит и места опирания их на стены. Как следствие геометрическая изменяемость схемы, не игнорируйте протокол расчета. Перед расчетом армирования оцените деформированную схему и полученные усилия. Важно проверить настройки варианта конструирования, у Вас расчет настроен на усилия из загружений, а не их комбинации. Посмотрите информацию о типах армирования, у Вас используется "Стена" и "Плита".
С уважением, Алексей Тищенко
Змінено: - 29.01.2026 09:31:43
|
|||
|
|
|
|
27.01.2026 12:24:12
import clr
def solve(node): pass OBP_VALUES = 0x10 # получить значение параметров doc = node.GetDocument() prj = doc.GetActiveProject() obj = prj.GetModelByID(5) arr_prm = Array[object]([]) ref_arr_prm = get_ref(arr_prm) obj.GetMnParam(ref_arr_prm, OBP_VALUES) arr_prm = ref_arr_prm.Value num_param = arr_prm.Length # количество параметров if num_param > 0 : # если есть параметры for i in range(0, num_param, 3): # обрабка элементов name = arr_prm[i] # название параметра value = arr_prm[i + 1] # значение flags = arr_prm[i + 2] # флаги С уважением, Алексей Тищенко
Змінено: - 27.01.2026 13:47:53
|
|
|
|
|
|
22.01.2026 15:59:08
Изначально это было заточено под создание плагинов на C++ через библиотеку SpPlugin.dll. Преимущественно, пользователи используют JScript, C# и Python без вспомогательной DLL, напрямую с Сапфиром, и, к сожалению, этот хелп не подходит — там немного другие прототипы функций. А пока стоит смотреть примеры в хелпе — там всё правильно.
С уважением, Алексей Тищенко |
|
|
|
|
|
15.01.2026 15:11:01
С уважением, Алексей Тищенко |
|||
|
|
|
|
15.01.2026 15:03:02
С уважением, Алексей Тищенко |
|||
|
|
|
|
15.01.2026 10:51:49
Storey.GetModelByIndex(indexModel) и Storey.GetModelByIndex2(indexModel) получают объекты автоматизации для одного и того же объекта модели САПФИРа, но предоставляют разный набор функций. AutoModel - это общий базовый тип для всех типов объектов и содержит универсальные методы, подходящие почти для любых элементов. Поэтому GetModelByIndex целесообразно использовать в случаях, когда тип объекта заранее неизвестен - например, когда мы просто перебираем все объекты на этаже. А GetModelByIndex2 позволяет получить автоматизированный объект конкретного типа и получить доступ к более специализированным свойствам этого объекта. С уважением, Алексей Тищенко |
|||
|
|
|