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

07/04/2014

Доступность Visual Studio 2012

Как объясняется в другой теме в этом блоге и в прекрасном блоге Киана Уомсли(и конечно в документации ObjectARX 2015), AutoCAD 2015 не является совместимым на уровне двоичных кодов с предыдущими версиями AutoCAD. Это означает, что версия Visual Studio, которая требуется для создания ваших приложений, также изменилась. А вот какая именно версия вам нужна зависит от того, какой API вы используете.
Опубликовано 07.04.2014     Читать далее >>>
31/03/2014

Основной файл меню AutoCAD

Как было сказано в статьях "Последовательность загрузки приложений в AutoCAD" и "Последовательность загрузки приложений в AutoCAD с учетом SECURELOAD", можно организовать загрузку своих приложений, используя mnl-файлы. Чем я до поры до времени успешно и пользовался.
Опубликовано 31.03.2014     Читать далее >>>
31/03/2014

AutoCAD 2015 для разработчиков

Вышла новая версия AutoCAD 2015 (русский LangPack пока не вышел, судя по http://knowledge.autodesk.com/support/autocad/downloads/caas/downloads/content/autocad-2015-language-packs.html), и пора обсудить новости для разработчиков. Начнем с общих изменений интерфейса. Первое, что бросается в глаза...
Опубликовано 31.03.2014     Читать далее >>>
31/03/2014

Использование типизированных коллекций в фильтрах и формах

В сегодняшней теме обсудим использование типизированных коллекций для легкой и эффективной работы со списками элементов Revit в Windows Forms, а именно:

  • Извлечение всех печатных видов плана этажей из модели с помощью всего одной строчки кода
  • Извлечение всех выбранных видов плана этажей из списка на форме с помощью одной строки кода
Опубликовано 31.03.2014     Читать далее >>>
29/03/2014

Изменение системных переменных DIMPOST и DIMAPOST в lisp

Вопрос: во время выполнения lisp я пробую изменить значение системной переменной DIMPOST в значение "\X". Программе не принимает передаваемое значение "\X". Кроме того, я хочу изменить засечки в размерном стиле, а установка значения "None" для первичных и альтернативных единиц эффекта не дает. Я могу сделать это вручную, но никак не в lisp.
Опубликовано 29.03.2014     Читать далее >>>
29/03/2014

Находим примитив под курсором при помощи Win32 и ObjectARX

Вопрос:
Как найти примитив под курсором с использованием чистого Win32?

Ответ:
Лучший способ для нахождения примитива под курсором/перекрестьем – использование класса AcEdInputPointMonitor. Но если вам нужно использовать только Win32, это можно сделать так …

Опубликовано 29.03.2014     Читать далее >>>
29/03/2014

API для восстановления чертежа - новый API в AutoCAD 2015

В течении продолжительного времени сообщество программистов просило дать возможность восстановления чертежей с помощью API. Этот запрос наконец-то был реализован в AutoCAD 2015. Теперь класс коллекции документов (DocumentCollection) приобрел новый метод AppContextRecoverDocument, которому передается имя чертежа для восстановления. Этот API присутствует и в ObjectARX и в .NET. В ObjectARX используется метод AcApDocManager::appContextRecoverDocument().

Опубликовано 29.03.2014     Читать далее >>>
29/03/2014

API для проверки чертежа - новый в AutoCAD 2015

В AutoCAD 2015 вы можете программно проверить файл чертежа с использованием API для проверки чертежа. Вы можете даже попробовать исправить ошибки в чертеже если использовать соответствующий аргумент API. Это API появилось и в ObjectARX и в AutoCAD .NET API.

В ObjectARX используется функция Acad::ErrorStatus acedAudit(AcDbDatabase* , bool bFixErrors, bool bEcho).

Опубликовано 29.03.2014     Читать далее >>>
29/03/2014

SystemVariableEnumerator - новый класс в AutoCAD 2015

Новый класс SystemVariableEnumerator обеспечивает возможность пройтись по всем публичным системным переменным и получить их имена, типы данных, диапазон изменения (если есть), статус «только для чтения» и где они хранятся. В ObjectARX соответствующий класс называется AcEdSysVarIterator

Пример использования:

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

Отладка и запуск lisp-приложений в консольном AutoCAD

Разбираясь с консольным AutoCAD (напоминаю, что он появился в AutoCAD 2013), обнаружил интересную вещь, связанную с автоматически загруженными приложениями
Опубликовано 28.03.2014     Читать далее >>>
28/03/2014

Очистка файла dwg при открытии

Не секрет, что при открытии файла крайне желательно получить максимально очищенный от мусора файл. Причем так, чтобы очистка выполнялась в максимальном объеме, а ручной работы не было вообще.
Опубликовано 28.03.2014     Читать далее >>>
27/03/2014

Как определить нажата ли кнопка Отмена в диалоговом окне DCL

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

Допустим, вы используете командные реакторы чтобы определить, когда определенные команды отменяются, но когда команда имеет диалоговое окно, нет никакой разницы, если пользователь нажимает Отмена или Да (просто вызывается командный реактор редактора commandEnded). Так, как же вы можете обнаружить разницу между Да и Отмена при выборе в диалоговом окне?

Опубликовано 27.03.2014     Читать далее >>>
24/03/2014

Как получить текст из окна командной строки AutoCAD с использованием ObjectARX

ObjectARX API содержит функцию acedGetAcadTextCmdLine() которая возвращает доступ к CWnd MFC окна командной строки. Окно командной строки содержит множество дочерних окон (в зависимости от версии AutoCAD) так что нам понадобится пройтись по ним, чтобы найти текст, так что будем использовать Win32 API для итерации по окнам и получения текста.

Как-то так…

Опубликовано 24.03.2014     Читать далее >>>
24/03/2014

Хранение пользовательских настроек плагина для Revit

Вопрос: Я ищу подходящий способ как сохранить пользовательские настройки для моего плагина.

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

Есть какая-нибудь инструкция, или может быть в Revit API существует подобная функциональность?

Опубликовано 24.03.2014     Читать далее >>>
23/03/2014

Использование всплывающих подсказок в надстройке Revit

Вопрос: Кто-нибудь знает можно ли использовать строку состояния для отображения своих собственных сообщений в любой момент? И если можно, то как?

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

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

Необходимость использования Release версии библиотек MFC/CRT при компиляции ObjectARX приложения

Вопрос:
Мое приложение использует динамические версии MFC и DLL библиотеку времени выполнения. Когда я линкую Debug версию, появляется предупреждение о конфликте MSVCRT с другими библиотеками. Когда я использую ключ линковки /verbose:lib, я вижу, что линкуются debug-версии MFC и библиотеки времени выполнения. Руководство пользователя ObjectARX указывает не использовать debug-версии. Что следует сделать, чтобы линковать с release-версиями MFC?

Решение:
Все что нужно сделать – это убрать определение _DEBUG при включении файлов заголовков MFC header

Опубликовано 21.03.2014     Читать далее >>>
19/03/2014

Как получить устройства регулирования потока для напорной трубопроводной сетиАвтор: Виктор Чекалин

Напорная трубопроводная сеть (Pressure Network) в Civil содержит три типа объектов:

  • Напорные трубы (Pressure Pipes)
  • Фитинги (Fittings)
  • Устройства регулирования потока (Appurtenances)

Для работы с напорными трубопроводными сетями в Civil .NET API необходимо подключить сборку AeccPressurePipesMgd.dll.

Опубликовано 19.03.2014     Читать далее >>>
19/03/2014

Разрешение конфликтов MFC между ObjectARX MFC DLL и AutoCAD

Класс CAcModuleResourceOverride обеспечивает очень удобный способ для переключения дескриптора ресурсов MFC между AutoCAD и ресурсами вашего собственного ARX DLL приложения.

Если вам нужно использовать функции пользовательского интерфейса AutoCAD внутри ваших функций, вы можете использовать класс CAcModuleResourceOverride() опираясь на его деструктор (который восстанавливает дескриптор ресурсов MFC AutoCAD)

Опубликовано 19.03.2014     Читать далее >>>
17/03/2014

MFC: Проблемы с CAcModuleResourceOverride

Возможно вы замечали, что при использовании объекта CAcModuleResourceOverride для переключения дескриптора ресурсов по-умолчанию (дескриптора ресурсов AutoCAD) на дескриптор ресурсов вашего файла приложения, невозможно вызвать AutoCAD или некоторые ARX функции, такие как acedGetFileD().
Опубликовано 17.03.2014     Читать далее >>>
15/03/2014

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

Вопрос: В пользовательском интерфейсе с помощью контекстного меню балки есть команда «Отсоединить от плоскости». А как можно сделать то же самое, только программно?

После того, как я нажал правую кнопку на балке и выбрал «Отсоединить от плоскости», Revit удаляет параметр Рабочая плоскость, т.е. встроенный параметр BuiltInParameter.SKETCH_PLANE_PARAM, и делает активным параметр Базовый уровень, который до этого был только для чтения. Хотелось бы проделать эти действия с помощью Revit API.

Я попробовал удалить параметр Рабочая плоскость, но это не помогло. Свойство FamilyInstance.Host также является только для чтения, поэтому с помощью него не получится отсоединить балку от рабочей плоскости.

Есть ли способ отсоединить балку от плоскости программно?

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