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

14/02/2015

Как защитить интеллектуальную собственность моего приложения на Autodesk Exchange - часть 2Автор: Daniel Du

Рассматриваются особенности лицензирования веб-служб, опубликованных в Autodesk Apps Exchange
Опубликовано 14.02.2015     Читать далее >>>
13/02/2015

Создание DWF-подложки в AutoCAD лиспом

Понадобилось мне тут вставить несколько dwf (или dwfx, не столь суть важно) в текущий документ dwg. Естественно, что захотелось мне задачку решить лиспом, да без применения команд типа _.dwfattach.
Опубликовано 13.02.2015     Читать далее >>>
13/02/2015

Как защитить интеллектуальную собственность моего приложения на Autodesk Exchange - часть 1Автор: Daniel Du

Рассматриваются особенности лицензирования веб-служб, опубликованных в Autodesk Apps Exchange
Опубликовано 13.02.2015     Читать далее >>>
13/02/2015

Модификация Ленты

Вопрос:

Я хочу изменить содержимое Ленты (Ribbon) – добавлять/удалять панели, и т.д.. Как это можно сделать?

Ответ:

Это доступно только при помощи AutoCAD .NET API.

Есть два набора функций:

1) RibbonRuntimeAPI – содержащееся в AdWindows.dll в пространстве имён Autodesk.Windows

Позволяет модифицировать Ленту, но изменения не будут сохраняться в CUIx файл, так что при перезапуске AutoCAD, или даже при переключении рабочего пространства (системной переменной WSCURRENT) или при перезагрузке меню все сделанные вами изменения пропадут и вам понадобится всё повторять.

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

Как найти все внешние ссылки в текущей базе с помощью C#

Метод Database.GetHostDwgXrefGraph() возвращает иерархию внешних ссылок для текущего чертеж в виде объекта XrefGraph. Ниже простой пример, демонстрирующий его использование – печать структуры этой иерархии для текущего чертежа в командной строке.
Опубликовано 12.02.2015     Читать далее >>>
11/02/2015

При использовании WblockCloneObjects скопированные в Пространство Модели примитивы исчезают в текущем чертеже

Это известное поведение метода Database.WblockCloneObjects() когда он используется с чертежом, открытым в AutoCAD. Проделайте следующие шаги для того, чтобы обойти это ограничение:
  1. Сделайте целевой чертеж текущим документом
  2. Вызовите метод TransactionManager.QueueForGraphicsFlush() для запроса обновления графики

Пожалуйста не забудьте сделать целевой чертеж текущим до использования TransactionManager.QueueForGraphicsFlush() в противном случае это не даст никакого эффекта. Также не забудьте блокировать/разблокировать документ.

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

Получение глобального имени DIMLDRBLK в локализованной версии AutoCAD

Когда мы используем английскую версию AutoCAD, вы можете непосредственно получить имя системной переменной стрелки выноски, используя системную переменную DIMLDRBLK. Но когда используется локализованная версия AutoCAD, эта системная переменная хранит локализованную системную переменную, например, "Punkt" в немецкой и "Точка" в русской версии для стрелки выноски DOT.

Опубликовано 09.02.2015     Читать далее >>>
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     Читать далее >>>