Об автосохранении и уведомлениях/событиях
Когда AutoCAD выполняет автосохранение, он сохраняет чертежи в каталог Temp операционной системы с именами "DrawingName_Numbers.ac$", как указано в диалоге Параметры, и посылает сообщение kSaveMsg всем приложениям:
О редактировании при помощи ручек и производительности
Если исследовать файлы заголовков ObjectARX SDK, то можно заметить, что реализация редактирования с помощью ручек (Gripedit) использует механизм клонирования при перетаскивании. Это означает, что каждый раз, когда курсор перемещается, AutoCAD создаёт новые клоны «захваченных» примитивов и сразу отбрасывает эти клоны.
О Visual Studio 2010, Visual Studio Express, набор средств платформы и AutoCAD 2010-2012
Вот некоторые ответы на наиболее часто задаваемые вопросы о Visual Studio, набор средств платформы (Platform Toolset) и AutoCAD::
Не-COM свойства только для чтения
Если вы хотите сделать ваше свойство только для чтения (затемненное), то достаточно вернуть eNotApplicable из функции subSetValue
Не-COM свойства со списком возможных значений
В Палитре свойств вы можете найти свойства, которые принимают только значения, которые перечислены для свойства. Если вы хотите создать такое свойство, тогда вам нужно создать новый перечисляемый тип и использовать его для создания нового AcRxValueType, который реализует интерфейс IAcRxEnumeration
Можно ли использовать с базами в памяти функции ADS?
Можно ли в ObjectARX при помощи acedGetFileD() запросить только каталог?
Вопрос:
Можно ли в ObjectARX при помощи acedGetFileD() запросить только каталог?
Ответ:
Хотя вы можете установить флаг, чтобы отключить выбор файла по умолчанию или ввод нового имени файла, функция acedGetFileD() предназначена для возврата полного имени файла, а не каталога. Если вам нужно выбрать только имя каталога, вы можете использовать функцию acedGetFileNavDialog()
Копия AcDbRegion или AcDb3dSolid равна NULL при перетаскивании
Вопрос:
Если я наследую новый класс от AcDbRegion или AcDb3dSolid то его метод isNull() возвращает true если этот экземпляр перетаскивается. Как я могу обойти эту проблему?
Ответ:
Во время перетаскивания, AutoCAD создает новую копию объекта каждый раз, когда мышь перемещается, для того чтобы сохранить точность. Это создает проблемы в случае примитивов, чьи операции копирования занимают длительное время...
Как узнать, используя ObjectARX, находимся ли мы в пространстве Листа?
Вопрос:
Как узнать, используя ObjectARX, находимся ли мы в пространстве Листа?
Ответ:
Следующий фрагмент кода даёт ответ на этот вопрос:
Как заставить AutoCAD обновить графическую область экрана
Вопрос:
Как заставить AutoCAD обновить графическую область экрана?
Ответ:
Вы можете заставить обновить графическую область, вставив следующие строки в код...
Как преобразовать AcGeMatrix3d в VARIANT
Вопрос:
В классе AcAxMatrix3d есть метод для преобразования VARIANT в AcGeMatrix3d, но нет метода для обратного преобразования. А как можно сделать обратное преобразование?
Ответ:
Следующий код выполняет преобразование AcGeMatrix3d в VARIANT:
Поддержка команды ПОДЕЛИ (DIVIDE) в собственном примитиве
Вопрос:
Как обеспечить поддержку моим примитивом команды AutoCAD ПОДЕЛИ (DIVIDE)?
Ответ:
Чтобы обеспечить поддержку моим примитивом команды ПОДЕЛИ (DIVIDE) необходимо унаследовать его от класса AcDbCurve или одного из его производных классов. Минимальное количество методов, которое следует переопределить для работы команды ПОДЕЛИ (DIVIDE):
Как средствами ObjectARX не допустить сохранение в DWG-файл некоторых примитивов
Вопрос:
Я хочу запретить некоторым примитивам сохранятся в dwg-файл. Как это сделать?
Ответ:
Если вы хотите предотвратить сохранение каких-то примитивов в DWG-файл, а точнее исключить некоторые примитивы из операции сохранения, вы можете для этой цели использовать реактор AcEdEditorReactor