В коде я блокирую документ, но если во время таскания блоков попытаться максимально отзуммировать, то AutoCAD выдаёт критическую ошибку - "System.AccessViolationException Attempted to read or write protected memory....". Лечится эта проблема если вызывать метод не напрямую, после нажатия кнопки, а через команду [CommandMethod("Command", CommandFlags.Session)]. Есть ли возможность вызывать метод напрямую, а не через команду?Не надо вызвать напрямую. Надо вызвать через команду. И не очень понятно вообще зачем тебе CommandFlags.Session для таскания блоков.
Я не могу вызывать через команду так как вот этот кусок выполняется весьВ коде я блокирую документ, но если во время таскания блоков попытаться максимально отзуммировать, то AutoCAD выдаёт критическую ошибку - "System.AccessViolationException Attempted to read or write protected memory....". Лечится эта проблема если вызывать метод не напрямую, после нажатия кнопки, а через команду [CommandMethod("Command", CommandFlags.Session)]. Есть ли возможность вызывать метод напрямую, а не через команду?Не надо вызвать напрямую. Надо вызвать через команду. И не очень понятно вообще зачем тебе CommandFlags.Session для таскания блоков.
Вообще же похоже тебе нужно искать ошибку у себя в коде.
А мне надо, чтобы кнопка ждала пока я не вставлю блоки.Кнопка ничего ждать не должна. Ты хочешь использовать Ленту так, как она в AutoCAD работать не должна. От этого и все проблемы.
Кнопка ничего ждать не должна. Ты хочешь использовать Ленту так, как она в AutoCAD работать не должна. От этого и все проблемы.Мои сумасшедшие идеи никому не дают покоя ;D Но ошибка вылетает даже тогда, когда кнопка не ждёт выполнения команды. А кнопку я выключаю для того, чтобы у пользователя не было возможности нажать её второй раз, пока выполняется Jig. Так как кнопка это своеобразный тумблер, когда её включаешь, то в чертёж вставляются элементы выбранной в ComboBox схемы, а когда выключаешь, то элементы этой схемы должны автоматически удаляться. А то может так получиться, что пользователь таскает блоки и ещё не успел их вставить, а уже удалил.
сейчас последовательность действий такая: формирование списка ObjectId описаний блоков, передача этого списка в мой Jig, действия над вставками блоков, возвращение координат, вставка блоков уже в чертёж.Логика правильная. Единственная проблема в том, что всё это крайне желательно делать из контекста документа, а не из контекста приложения.
Логика правильная. Единственная проблема в том, что всё это крайне желательно делать из контекста документа, а не из контекста приложения.Да я до этого и сделал, чтобы работало из контекста документа, а но коли появилась новая информация, то грех её не использовать. Может быть, если бы не было этой ошибки, то я бы не стал глубже разбираться в работе Jig.