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

28/10/2014

Получение угла поворота и оси из матрицы AcGeMatrix3d

Метод AcGeMatrix3d::rotation возвращает новую матрицу с определенным углом поворота. А как из существующей матрицы получить угол поворота? Следующий код это делает.

Опубликовано 28.10.2014     Читать далее >>>
28/10/2014

Создание наклонной стены

Опубликовано 28.10.2014     Читать далее >>>
27/10/2014

Включение шрифтов и других файлов при использовании eTransmit API

Недавно мой коллега спросил меня о возможности найти все шрифты и другие файлы, которые включаются в комплект при использовании eTransmit API. Чтобы сконфигурировать, что именно будет сочтено в качестве зависящих компонентов когда чертеж добавляется в операцию TransmittalOperation, требуется настроить TransmittalInfo.
Опубликовано 27.10.2014     Читать далее >>>
26/10/2014

Формы внутри асинхронных команд внутри AutoCAD

Возможно вы уже попробовали очень приятную возможность асинхронного выполнения (async) в .NET 4.5

Когда внутри асинхронной команды AutoCAD 2015 мы используем формы, часто случается, что контекст синхронизации не восстанавливается корректно после закрытия формы. Это часто провоцирует непредсказуемое поведение. Например, результат работы Editor.WriteMesage не отображается в командной строке.

Простейший способ обойти эту проблему – это сохранить текущий контекст перед показом формы и восстановить его после закрытия формы.

Опубликовано 26.10.2014     Читать далее >>>
26/10/2014

Экспорт геометрии элемента

Опубликовано 26.10.2014     Читать далее >>>
25/10/2014

Уровень для объекта SpatialElement

Опубликовано 25.10.2014     Читать далее >>>
21/10/2014

LISP для CAD-менеджера

Доклад Autodesk University Russia 2014 о применении LISP для CAD-менеджера.
Опубликовано 21.10.2014     Читать далее >>>
14/10/2014

О развертывании AutoCAD 2015

По материалам Autodesk University Russia 2014. Текстовый вариант доклада о развертывании AutoCAD 2015.
Опубликовано 14.10.2014     Читать далее >>>
14/10/2014

Мультивыноска может привести к исключению eInvalidContext

Примитив MLeader (и эквивалентный ему AcDbMLeader in C++) поддерживает возможность использования блока в качестве текстового компонента, как описано в предыдущей статье. Один из необходимых шагов – это установка свойства BlockPosition (или setBlockPosition в C++), но это может привести к исключению eInvalidContext.
Опубликовано 14.10.2014     Читать далее >>>
10/10/2014

Как создать мультивыноску в .NET?

Ниже два примера, которые иллюстрируют создание мультивыноски (MLeader) в C#.
Опубликовано 10.10.2014     Читать далее >>>
09/10/2014

Получение габаритного контейнера сплайна с помощью ObjectARX

Вопрос:

Я хочу получить габаритный контейнер сплайна, но метод getGeomExtents() дает неточные результаты. Как можно получить точный габаритный контейнер для сплайна?

Ответ:

Для AcDbSpline метод getGeomExtents() возвращает неточный габаритный контейнер, т.к. вычисление точного контейнера сопряжено с временными тратами.

Чтобы получить точный габаритный контейнер вам придется вычислить его самостоятельно. Вы можете воспользоваться методом getPointAtParam() для прохода по сплайну и вычисления максимальных/минимальных координат X и Y. Точность вычисления габаритного контейнера зависит от того насколько частей кривая поделена. Коэффициент 1e6 даёт приемлемую точность и допустимое время для подсчета. Функции показанные ниже показывают как это можно сделать. Запустите команду SplineBB и выберите сплайн. Команда нарисует два габаритных контейнера. Красный возвращает метод getGeomExtents(), а желтый – это тот, который мы вычислили.

Опубликовано 09.10.2014     Читать далее >>>
07/10/2014

Как преобразовать Toolbar в элемент ленты

Известно, что старые файлы меню (mnu, mns, cui) прекрасно открываются в более поздних версиях AutoCAD. Одновременно с открытием (то есть загрузкой) меню преобразовывается в актуальный формат (для AutoCAD с версии 2010 используется формат cuix). Но совсем древние разработки базируются на панелях инструментов (Toolbar) и выпадающем меню. Собственно вопрос - как быстро сделать эти меню доступными в новых версиях AutoCAD?
Опубликовано 07.10.2014     Читать далее >>>
07/10/2014

Настройка CAdUiListCtrl

Если мы пользуемся классом CAdUiListCtrl и хотим его настроить получше, мы можем использовать пользовательское рисование. Это делается точно так же, как и с любым другим элементом управления MFC. Хорошую статью о том, как это делать (на английском) для элемента управления CListCtrl вы найдете здесь.
Опубликовано 07.10.2014     Читать далее >>>
05/10/2014

Удаление кнопок с панели быстрого доступа убивает AutoCAD

Если вы добавляете кнопки ленты на панель быстрого доступа AutoCAD (ПБД) убедитесь, что вы обеспечили уникальный ID для кнопки. Если у кнопки нет уникального ID, тогда AutoCAD может аварийно завершиться при скрытии/удалении любой другой стандартной кнопки ПБД.

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