1) восстанавливать примитив: (entdel en), получать информацию и удалять повторно.Бился-бился, пытаясь воплотить в жизнь это решение, а потом прочитал у Николая Полещука в книге:
"Объект, который стал источником события, не может быть модифицирован из функции действия, реагирующей на это событие".
Я бы выполнял эти проверки перед удалением, если это возможноПеред удалением тоже должно что-то сработать для запуска проверки. Что, если не реактор?
Перед удалением тоже должно что-то сработать для запуска проверки. Что, если не реактор?Теоретически должен сработать реактор :vlr-objectOpenedForModify
Бился-бился, пытаясь воплотить в жизнь это решение, а потом прочитал у Николая Полещука в книге:Отмечай в этом реакторе, а удаляй в командном реакторе (завершение команды: :vlr-commandEnded или :vlr-commandCancelled или :vlr-commandFailed)
Цитировать
"Объект, который стал источником события, не может быть модифицирован из функции действия, реагирующей на это событие".
В конце концов ты можешь в любой момент времени отобрать в список "свои примитивы" и поставить объектные реакторы на их удаление.Можно при вставке "своих примитивов" сразу вешать на них объектные реакторы vlr-object-erased (и unerased), но при удалении вернётся только имя объекта. Свои же примитивы если и хранить списком, то списком Handle, который не меняется при переоткрытии чертежа. А при обработке события реакторы нельзя использовать (vla-get-Handle), т.к. она вернёт nil.
но при удалении вернётся только имя объекта.Вообще-то я думал, что тебя интересует сам факт удаления "твоего" примитива. Если же тебя интересуют и их свойства, то восстанавливай их в командном реакторе и получай их свойства. Ну или мигрируй на ObjectARX или .NET
Вообще-то я думал, что тебя интересует сам факт удаления "твоего" примитива.Так и есть. Но помимо самого факта удаления некоего примитива с расширенными данными важно понять, какой из них был удалён. А при удалении примитива от реактора мы получаем максимум его имя, а не указатель, что однозначно могло бы указать на примитив для осуществления неких внеших действий (например, удаление ссылки на объект во внешнем текстовом файле по указателю).
Ну или мигрируй на ObjectARX или .NETВ .NET есть возможность узнать свойства (в т.ч. указатель на объект, наличие расширенных данных) удалённого объекта и аналоги лисповских реакторов для этого?
В .NET есть возможность узнать свойства (в т.ч. указатель на объект, наличие расширенных данных) удалённого объекта и аналоги лисповских реакторов для этого?Если ты имеешь в виду метку (handle) примитива, то да. Реакторов в нём поболее чем в лиспе. Самое большое количество возможностей в ObjectARX.