Показать сообщение отдельно
Старый 24.06.2019, 14:44   #434
Letos
Консультант
 
Регистрация: 28.06.2017
Сообщений: 555
Сказал(а) спасибо: 127
Поблагодарили 1,032 раз(а) в 366 сообщениях
Вес репутации: 345
Letos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордитсяLetos за этого человека можно гордится
По умолчанию

Цитата:
Сообщение от v22884 Посмотреть сообщение
Как определить какие именно отверстия из фурнитуры цепляют конкретную панель?
можно получить список фурнитуры, скрепляющей панель через panel.FindConnectedFasteners(). Встроенной функции, определяющей, что отверстие находится в конкретной панели, нет. Здесь есть самописный скрипт для выделения панелей с торцевыми отверстиями. В случае вашей задачи, вам не нужна функция CheckWithPanel() (она проверяет соответсвие направления отверстия с направлениями Х и У в ЛСК панели). Основная нужная функция - CheckHole(hole, fast, panel) вернёт true, если отверстие (hole), принадлежащее фурнитуре (fast) находится в панели (panel).
Цитата:
Сообщение от v22884 Посмотреть сообщение
Как удалить после Action.Commit() ?

p = Model.Selections[0]
pCopy = AddCopy(p);
Action.Commit()

DeleteObject(pCopy); //Здесь не работает.
После Action.Commit() объекты копируются из временной области модели в саму модель, соответственно объекта pCopy после коммита не существует. Если вы точно знаете, что будет делать ваш код, то можно попробовать следующий трюк:

Т.к. добавление объектов в модель идёт последовательно, то при добавлении 5 объектов скриптом в модель, последние 5 объектов - добавленные скриптом (небольшая оговорочка - если добавлен блок, содержащий 4 объекта, то в модели последним объектом будет блок, а остальные 4 будут внутри блока, согласно иерархии).
Вот небольшой пример по добавлению объекта, применению изменений и удалению объекта:
PHP код:
// Добавление панели
AddPanel(1001000).Owner;
// Применение действий скрипта с записью в историю
Action.Commit();
// Удаление последнего объекта в модели (панели, добавленной скриптом)
DeleteObject(Model.Objects[Model.Count 1]); 
Letos вне форума   Ответить с цитированием Вверх
4 пользователя(ей) сказали cпасибо:
LeoAN (07.07.2019), Ovsyanicov (08.05.2021), v22884 (26.06.2019), zorro (24.06.2019)