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

07/02/2015

Использование WeakEventManager с событиями AutoCAD

Недавно мы получили вопрос от разработчика об использовании Менеджера Слабых Событий (WeakEventManager) при работе с событиями AutoCAD. В этой статье мы увидим три разных версии подписки на событие завершение команды (CommandEnded) класса Document. Преимущество использования WeakEventManager в предотвращение утечки памяти, когда на событие подписаны, но они уже не нужны. Но при этом использование WeakEventManager имеет свою цену, так как события теперь доставляются через менеждер событий. Дополнительная цена использования шаблона слабых событий отлично расписана в этой статье Reed Copsey.

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

Опубликовано 07.02.2015     Читать далее >>>
06/02/2015

Ассоциация гиперссылки с BlockTableRecord

В ObjectARX BlockTableRecord обеспечивает доступ к коллекции своих гиперссылок при помощи AcDbEntityHyperlinkPE интерфейса. В AutoCAD 2015 к гиперссылкам можно получить доступ и при помощи AutoCAD .NET API.

Вот образцы кода на C++ и на .NET, которые создают блок с гиперссылкой к блогу AutoCAD DevBlog:

Опубликовано 06.02.2015     Читать далее >>>
06/02/2015

Отладка dcl

Не секрет, что диалоги в лиспе - это практически всегда dcl. Если разработать dcl не так уж и трудно, то заставить нормально работать сколько-нибудь сложный диалог удается далеко не всегда. Каким образом можно облегчить себе жизнь - именно этому и посвящена статья.
Опубликовано 06.02.2015     Читать далее >>>
04/02/2015

Управляемая альтернатива ExplodeAllProxy

Андрей Бушман у себя на сайте опубликовал код, решающий те же задачи, что и знаменитый ExplodeAllProxy от Александра Ривилиса. Пользуясь выцыганенным у Андрея разрешением, публикую мои изменения его кода.
Опубликовано 04.02.2015     Читать далее >>>
03/02/2015

Vault 2015 R2

Рассматриваются особенности программирования под первый промежуточный релиз Vault 2015 R2
Опубликовано 03.02.2015     Читать далее >>>
03/02/2015

Продажа своих веб-служб в Autodesk Exchange путём ежемесячной подпискиАвтор: Daniel Du

Описывается механизм оформления продажи веб-служб на регулярной основе
Опубликовано 03.02.2015     Читать далее >>>
31/01/2015

Две недокументированные функции в Vault 2015 R2

Описание интересных функций Vault
Опубликовано 31.01.2015     Читать далее >>>
29/01/2015

Показ модальных и немодальных HTML страниц в AutoCAD

Начиная с AutoCAD 2014 появились два новых API для показа HTML-страниц в AutoCAD за счет небольших дополнений к существующим API:

Опубликовано 29.01.2015     Читать далее >>>
27/01/2015

Отслеживание меток примитивов в команде БЛОКРЕД

Метки примитивов в AutoCAD являются уникальными внутри базы, но AutoCAD может их менять, при этом оставляя их уникальными. Редактирование блока при помощи команды БЛОКРЕД (BEDIT) – это одна из операций, когда можно ожидать что метки примитивов будут меняться. Если ваш код хранит значений меток примитивов внутри BlockTableRecord, вам может быть интересным отследить изменение значений меток примитивов при редактировании блока.

Опубликовано 27.01.2015     Читать далее >>>
26/01/2015

Выбор примитивов для изменения свойств

Чтобы выбрать примитивы и оставить видимыми свойства выбранных примитивов в Панели Свойств необходимо вашей команде установить флаг CommandFlags.Redraw. Это гарантирует то, что AutoCAD оставит выбранные примитивы подсвеченными. После этого вы можете изменить их общие свойства по своему разумению. Далее небольшой фрагмент кода для выбора всех примитивов:
Опубликовано 26.01.2015     Читать далее >>>
26/01/2015

Просмотр нормалей к граням сети

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

В этом случае желательно было увидеть нормали к сети. Следующий код показывает как это сделать:

Опубликовано 26.01.2015     Читать далее >>>
25/01/2015

Как получить зеркальный объект после применения метода ElementTransformUtils.MirrorElement

Для получения симметричного объекта в Revit API есть два метода:

  • ElementTransformUtils.MirrorElement
  • ElementTransformUtils.MirrorElements

Проблема в том, что эти методы не возвращают какое-либо значение. А это значит, что на прямую мы не можем получить результат, т.е. объект, полученный в результате зеркального отображение исходного объекта.

Опубликовано 25.01.2015     Читать далее >>>
24/01/2015

Скрыть все элементы кроме элементов заданной системыАвтор: Виктор Чекалин

Скрыть все элементы, кроме элементов заданной системы

На форуме, у пользователя goblya, возник интересный вопрос. Так как решение его проблемы оказалось не таким-то уж и простым, и пришлось повозиться с окончательным решением, то решил создать статью с решением.

Итак, задача. Необходимо скрыть все элементы на виде, кроме элементов системы, к которой принадлежит выбранный элемент.

У пользователя это почти получилось. Действовал он в правильном направлении, однако, некоторые элементы все же не скрывались.

Опубликовано 24.01.2015     Читать далее >>>
23/01/2015

Как получить все доступные параметры экземпляра для категорииАвтор: Виктор Чекалин

Получить все параметры заданной категории можно двумя способами.

Первый заключается в том, что нужно получить объект в модели заданной категории и взять его коллекцию параметров.

Опубликовано 23.01.2015     Читать далее >>>
22/01/2015

Порядок создания мультивыноски (MLEADER) в AutoCAD

Подняли тут тему на dwg.ru о порядке создания мультивыноски в AutoCAD. Результаты собственных изысканий представляю на суд общественности.
Опубликовано 22.01.2015     Читать далее >>>
15/01/2015

Прозрачность в AutoCAD средствами lisp

Понадобилось тут "поиграться" с прозрачностью примитивов и слоев в AutoCAD. Это оказалось очень интересно и очень познавательно.
Опубликовано 15.01.2015     Читать далее >>>
14/01/2015

Установка прозрачности слоя в .NET

Слою можно назначить (начиная с версии AutoCAD 2011) прозрачность при помощи диалога команды слой.

Это пример того, как можно достигнуть такого же результата при помощи AutoCAD .Net API.

Перед тем как попробовать этот код не забудьте установить системную переменную TRANSPARENCYDISPLAY в 1.

Опубликовано 14.01.2015     Читать далее >>>
12/01/2015

Прозрачность слоев в ObjectARX

Следующий код показывает процедуру изменения «прозрачности» слоя при помощи ObjectARX. Он устанавливает слою 0 прозрачность 60%. Чтобы на экране отобразились изменения требуется регенерация.

Опубликовано 12.01.2015     Читать далее >>>
12/01/2015

Извлечение информации о материале

Вопрос: Как можно с помощью Revit API извлечь типовые свойства представления материала и файл изображения выдавливания?

Я добрался до некоторых свойств представления материала:

Код - C#: [Выделить]
 foreach (Element elem in collector)

  {

    Material mat = elem as Material;

    AppearanceAssetElement ae = (AppearanceAssetElement)

      m_CurrentDocument.GetElement(mat.AppearanceAssetId);

    Asset set = ae.GetRenderingAsset();

    ......

  }

Но как получить название и путь к файлу?

Опубликовано 12.01.2015     Читать далее >>>
11/01/2015

Запись данных в расширяемую область хранения при импорте IFC

Вопрос: я успешно изменил модуль экспорта в IFC и добавил экспорт данных из расширяемой области хранения.

Сейчас мне нужно изменить модуль импорта IFC файла для записи этих данных обратно в расширяемую область хранения. Как это можно реализовать?

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