Нужно чтобы выполняемая команда не сбрасывала текущий выбранный пользователем набор.У команды должны быть флаги CommandFlags.UsePickSet и CommandFlags.Redraw
А зачем CommandFlags.Redraw?Нужно чтобы выполняемая команда не сбрасывала текущий выбранный пользователем набор.У команды должны быть флаги CommandFlags.UsePickSet и CommandFlags.Redraw
А зачем CommandFlags.Redraw?Этот флаг нужен если ты в своей команде меняешь набор предварительного выбора и хочешь, чтобы после завершения команды он остался таким, как сделала твоя команда. По постановке вопроса я не понял нужно ли менять/оставлять неизменным набор предварительного выбора. Из документации:
Redraw = 4 | When the pickfirst set or grip set are retrieved, they are not cleared within AutoCAD. Command can retrieve the pickfirst set and the grip set by using the ads_ssgetfirst function. Command can retrieve the pickfirst set via ads_ssget("I."). Command can set both the pickfirst and grip sets using the ads_sssetfirst function. Objects in these sets are redrawn with the proper grip handles and highlighting upon completion of the command. |
https://knowledge.autodesk.com/support/autocad/learn-explore/caas/CloudHelp/cloudhelp/2016/ENU/AutoCAD-NET/files/GUID-D4987D00-1164-4217-A82E-B8B49FFB7A29-htm.htmlВот по это ссылке посмотрел код
Когда набор SelectionSet перестаёт быть нужен не забывай вызывать для него .Dispose()А как быть с методом Dispose для SelectionSet к примеру в API acad 2010? Этого метода нет.
Заключить в оболочку каждый неуправляемый класс.И что это тебе даст? Ничего...
А как быть с методом Dispose для SelectionSet к примеру в API acad 2010? Этого метода нет.Увы, но никак.
Увы, но никак.Тогда что же получается, что в более ранних версиях я не высвобождал память под объекты
Может из-за того что объект SelectionSet объявлен локально внутри подпрограммы, а не глобально?Возможно срабатывает сборка мусора.