ADN Open CIS
Сообщество программистов Autodesk в СНГ

29/05/2013

AutoCAD 2014 для разработчиков (JavaScript)

Сегодня официальный анонс продуктов семейства 2014. AutoCAD 2014 на днях будет доступен пользователям по всему миру. Вы, несомненно, найдете много информации в сети относительно особенностей продукта, так что я собираюсь сосредоточиться именно на возможностях и требованиях для разработчиков.

Опубликовано 29.05.2013     Читать далее >>>
29/05/2013

AutoCAD 2014 для разработчиков (VBA)

Сегодня официальный анонс продуктов семейства 2014. AutoCAD 2014 на днях будет доступен пользователям по всему миру. Вы, несомненно, найдете много информации в сети относительно особенностей продукта, так что я собираюсь сосредоточиться именно на возможностях и требованиях для разработчиков.

Опубликовано 29.05.2013     Читать далее >>>
24/05/2013

Отображение пользовательского примитива при перетаскивании

Если пользовательский примитив унаследован от AcDbEntity и использует методы polyline() и polygon() класса AcGiWorldGeometry внутри метода worldDraw(), то в ряде случаев функции могут возвращать состояние ошибки если используются при перетаскивании или редактировании при помощи ручек (grips).

Опубликовано 24.05.2013     Читать далее >>>
24/05/2013

Отображение модальных и немодальных форм в AutoCAD .NET

Еще один из примеров ошибок начинающих.

Иногда то что мы уже знаем становится у нас на пути. Если мы хотим показать форму в .NET, мы используем Form.ShowDialog. Правильно?

Опубликовано 24.05.2013     Читать далее >>>
24/05/2013

Отключение обработчиков событий

Тема на форуме AutoCAD .NET напомнила мне ситуацию, когда я потратил массу времени на отладку при разработке моего приложения DigSigStamp. Всё было замечательно, пока Kean не почистил мой код для отправки на сайт Labs. Тогда мои обработчики событий неожиданно перестали вызываться при повторном запуске моего кода...

Опубликовано 24.05.2013     Читать далее >>>
24/05/2013

Определение имени блока по вставке блока

Определение имени блока из вставки блока становится более сложным делом если этот блок динамический. Когда пользователь модифицирует динамический блок AutoCAD сначала создает анонимный блок, а затем создаёт ссылку на этот анонимный блок в этом чертеже. Ниже приведён код, который учитывает этот сценарий и получает имя основного (а не анонимного) блока...

Опубликовано 24.05.2013     Читать далее >>>
24/05/2013

Обеспечение параллельности транзитной графики экрану

Вы можете быть заинтересованы в использовании транзитной графики, которая всегда остаётся параллельной экрану, несмотря на любые изменения вида.

Метод «Editor.PointToWorld» можно использовать для конвертации точки, для которой известны её экранные координаты, чтобы получить её координаты в МСК (WCS). Этот метод можно использовать для вычисления точек в МСК (WCS) для которых известны координаты в ДСК (DCS)...

Опубликовано 24.05.2013     Читать далее >>>
24/05/2013

Об автосохранении и уведомлениях/событиях

Когда AutoCAD выполняет автосохранение, он сохраняет чертежи в каталог Temp операционной системы с именами "DrawingName_Numbers.ac$", как указано в диалоге Параметры, и посылает сообщение kSaveMsg всем приложениям:

Опубликовано 24.05.2013     Читать далее >>>
24/05/2013

О редактировании при помощи ручек и производительности

Если исследовать файлы заголовков ObjectARX SDK, то можно заметить, что реализация редактирования с помощью ручек (Gripedit) использует механизм клонирования при перетаскивании. Это означает, что каждый раз, когда курсор перемещается, AutoCAD создаёт новые клоны «захваченных» примитивов и сразу отбрасывает эти клоны.

Опубликовано 24.05.2013     Читать далее >>>
24/05/2013

О Visual Studio 2010, Visual Studio Express, набор средств платформы и AutoCAD 2010-2012

Вот некоторые ответы на наиболее часто задаваемые вопросы о Visual Studio, набор средств платформы (Platform Toolset) и AutoCAD::

Опубликовано 24.05.2013     Читать далее >>>
24/05/2013

Некорректные значения системных переменных EXTMIN / EXTMAX в чертеже

AutoCAD подразумевает такие значения по-умолчанию для EXTMIN и EXTMAX: (1.0E+20, 1.0E+20, 1.0E+20) и (-1.0E+20,-1.0E+20,-1.0E+20) как разработчики заложили в программу. Это порядка 1/10 длины Вселенной.

Возможно появление чертежей, в которых эти значения останутся неизменными, несмотря на то, что в них уже добавлены примитивы. Одна из возможных причин этого – не был метод "Database.UpdateExt" после того как примитивы были добавлены в базу чертежа.

Опубликовано 24.05.2013     Читать далее >>>
24/05/2013

Не-COM свойства только для чтения

Если вы хотите сделать ваше свойство только для чтения (затемненное), то достаточно вернуть eNotApplicable из функции subSetValue

Опубликовано 24.05.2013     Читать далее >>>
24/05/2013

Не-COM свойства со списком возможных значений

В Палитре свойств вы можете найти свойства, которые принимают только значения, которые перечислены для свойства. Если вы хотите создать такое свойство, тогда вам нужно создать новый перечисляемый тип и использовать его для создания нового AcRxValueType, который реализует интерфейс IAcRxEnumeration

Опубликовано 24.05.2013     Читать далее >>>
24/05/2013

Можно ли в ObjectARX при помощи acedGetFileD() запросить только каталог?

Вопрос:

Можно ли в ObjectARX при помощи acedGetFileD() запросить только каталог?

Ответ:

Хотя вы можете установить флаг, чтобы отключить выбор файла по умолчанию или ввод нового имени файла, функция acedGetFileD() предназначена для возврата полного имени файла, а не каталога. Если вам нужно выбрать только имя каталога, вы можете использовать функцию acedGetFileNavDialog()

Опубликовано 24.05.2013     Читать далее >>>
24/05/2013

Копия AcDbRegion или AcDb3dSolid равна NULL при перетаскивании

Вопрос:
Если я наследую новый класс от AcDbRegion или AcDb3dSolid то его метод isNull() возвращает true если этот экземпляр перетаскивается. Как я могу обойти эту проблему?

Ответ:
Во время перетаскивания, AutoCAD создает новую копию объекта каждый раз, когда мышь перемещается, для того чтобы сохранить точность. Это создает проблемы в случае примитивов, чьи операции копирования занимают длительное время...

Опубликовано 24.05.2013     Читать далее >>>
24/05/2013

Как узнать, используя ObjectARX, находимся ли мы в пространстве Листа?

Вопрос:
Как узнать, используя ObjectARX, находимся ли мы в пространстве Листа?

Ответ:
Следующий фрагмент кода даёт ответ на этот вопрос:

Опубликовано 24.05.2013     Читать далее >>>
23/05/2013

Как заставить AutoCAD обновить графическую область экрана

Вопрос:
Как заставить AutoCAD обновить графическую область экрана?

Ответ:
Вы можете заставить обновить графическую область, вставив следующие строки в код...

Опубликовано 23.05.2013     Читать далее >>>
23/05/2013

Переименование или копирование анонимного блока с использованием LISP или VBA (VBA)

Вопрос: как можно анонимному блоку задать другое имя, например, TestBlock?

Ответ: задать имя анонимному блоку возможно. Например, можно переименовать анонимный блок со служебным именем *T1 в TestBlock. Во время вызова команды _.insert или _.block в списке доступных блоков имя TestBlock не показывается, хотя блок с таким именем и существует...

Опубликовано 23.05.2013     Читать далее >>>
16/05/2013

Как преобразовать AcGeMatrix3d в VARIANT

Вопрос:
В классе AcAxMatrix3d есть метод для преобразования VARIANT в AcGeMatrix3d, но нет метода для обратного преобразования. А как можно сделать обратное преобразование?

Ответ:
Следующий код выполняет преобразование AcGeMatrix3d в VARIANT:

Опубликовано 16.05.2013     Читать далее >>>