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

21/02/2014

Загружаем тип линии в неактивный документ

Следующий код загружает типы линий, начинающиеся на литеру 'H' из файла acad.lin во все открытые документы. Заметим что команда должна быть зарегистрирована для контекста приложения (т.е. с флагом ACRX_CMD_SESSION).

Опубликовано 21.02.2014     Читать далее >>>
20/02/2014

Решение по созданию стены со смещением

Как вы знаете, при создании стены, ее осевая линия всегда располагается по середине стены.  Мы это обсуждали в статье Структурные слои стены.

Опубликовано 20.02.2014     Читать далее >>>
20/02/2014

Совместимость макросов VBA в AutoCAD2014x64

Нередко возникают вопросы, связанные с переходом на AutoCAD 2014 x64 с более ранних версий (или с 32-разрядной версии AutoCAD 2014). Звучит это примерно так: "Мой макрос VBA использует несколько дополнительных контролов (далее OCX) или библиотек типов (TypeLibrary). Макрос прекрасно работал в AutoCAD вплоть до версии 2014. Сейчас макрос выдает ошибку, связанную именно с этими OCX/TypeLibrary"
Опубликовано 20.02.2014     Читать далее >>>
19/02/2014

Идеология версий API PLM 360

Описывается логика смены версий и длительность поддержки устаревающих версий
Опубликовано 19.02.2014     Читать далее >>>
19/02/2014

Лёгкое программирование под Autodesk Vault. Часть 2Автор: Дмитрий Емельянов

Что такое Vault API
Опубликовано 19.02.2014     Читать далее >>>
19/02/2014

Создаем копию текущего документа в новом документе.

Вопрос:
Как можно создать точную копию текущего документа в новом документе?

Решение:
Одно из решений – сначала создание временного файла-шаблона из текущего файла, а затем создание нового чертежа из этого шаблона. Затем шаблон можно удалить. Вот шаги, которые последовательно нужно проделать:

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

Разделение на страницы в PLM 360

Рассматриваются особенности отображения запрошенной информации на страницах
Опубликовано 17.02.2014     Читать далее >>>
17/02/2014

Как оставить видимыми элементы Ленты во время выполнения?

AutoCAD API для работы с Лентой - достаточно удобен для настройки интерфейса. Однако изменения в интерфейсе не являются постоянными. Это значит, что есть ситуации когда требуется дополнительный код для того, чтобы элементы Ленты, созданные через этот API, оставались видимыми: обычно это при переключении Рабочего пространства или когда что-то изменено в командах НПИ (_CUI) и БЫСТРНПИ (_QUICKCUI).

Вот как можно оставить эти элементы видимыми и убедиться, что ваша Лента остается видимой.

Опубликовано 17.02.2014     Читать далее >>>
15/02/2014

Подавление команд AutoCAD

Метод acedRegCmds->removeCmd(), работает только с командами, зарегистрированными из ARX приложения. Этим способом нельзя отменить встроенные команды AutoCAD. Команда AutoCAD _UNDEFINE предназначена именно для подавления встроенных команд. Так как после команд _OPEN и/или _NEW команды переопределяются AutoCAD’ом, необходимо вызывать команду _UNDEFINE каждый раз, когда AutoCAD посылает уведомление kLoadDwgMsgвашей программе.
Опубликовано 15.02.2014     Читать далее >>>
14/02/2014

Два различных типа соединений элементов

В Revit очень много элементов имеют взаимосвязь друг с другом.

Мы уже ранее затрагивали пару раз тему работы с объединением элементов:

Опубликовано 14.02.2014     Читать далее >>>
13/02/2014

Как реализовать Windows хук с использованием acedRegisterFilterWinMsg в .NET

Имеется возможность установить хук для сообщений Windows, который на низком уровне перехватывает события в системе, которые производят большинство действий, таких как движение мыши или открытие диалога.

Внутри AutoCAD есть специальный метод для этой цели, который не пересекается со встроенными возможностями Windows, но имеет похожие возможности: acedRegisterFilterWinMsg

Опубликовано 13.02.2014     Читать далее >>>
13/02/2014

Чтение элементов в рабочем пространстве

Рассматривается два основных способа получения элементов в рабочем пространстве
Опубликовано 13.02.2014     Читать далее >>>
12/02/2014

Обработка ошибки при создании не валидного элемента с помощью Failure API

Мы уже ранее обсуждали примеры использования Failure API:

Вот еще одна немного запутанная ситуация, заставляющая нас снова вернуться к обсуждению этой темы с другого ракурса. Проблему озвучил Стефен Фауст (Stephen Faust) из компании Revolution Design, Inc.

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

Связь надстройки Vault Add-in в AutoCAD 2014

Возможно, вы хотели бы получить подключение к серверу Vault из надстройки Vault Add-in в AutoCAD 2014. В статье приведен пример на VB.NET, который проделывает эту операцию. Пожалуйста, имейте в виду, что этот подход не проходил ни через никакие системы проверки качества (QA) и официально не поддерживается. Тем не менее, в тестах он работает.

Опубликовано 12.02.2014     Читать далее >>>
11/02/2014

Использование стандартных диалогов AutoCAD для выбора цвета, типа линии, веса линии в .NET

AutoCAD имеет ряд удобных диалоговых окон, доступных в пространстве имен "Autodesk.AutoCAD.Windows". Следующий код показывает, как использовать три из них, в частности: ColorDialog, LinetypeDialog и LineWeightDialog. Эти три класса позволяют очень легко реализовать пользовательский интерфейс выбора соответствующих свойств.
Опубликовано 11.02.2014     Читать далее >>>
11/02/2014

Внутренние имена функций в утилите DependencyWalker

Утилита Dependency Walker, доступная www.dependencywalker.com, является “бесплатной утилитой, которая (…) выводит список всех функций, которые экспортируются модулем, и которые могут вызываться другими модулями”.

Для нас это представляет интерес для программирования AutoCAD так как некоторые API недоступны и/или недокументированы, но экспортируются из кода на C++. В этом случае в .NET для вызова этого кода нужно воспользоваться атрибутом DllImport.

Опубликовано 11.02.2014     Читать далее >>>
11/02/2014

Свойства VDF на стороне клиента

В статье рассматриваются интересные возможности VDF: клиентские свойства, с которыми - в отличии от серверных - вы вряд ли знакомы
Опубликовано 11.02.2014     Читать далее >>>
11/02/2014

Используйте | "OR" с DefaultAcquisitionOption для скачивания и получения при помощи AcquireFiles

Любопытная недокументированное возможность функции скачивания файла Vault SDK
Опубликовано 11.02.2014     Читать далее >>>
08/02/2014

Удаление неиспользуемых опорных плоскостей

Как-то во время проведения тренинга по Revit API, участники тренинга придумали вопрос, решение которого можно использовать для демонстрации использования FilteredElementCollector. В результате получилось вполне полезная команда. Необходимо было удалить все опорные плоскости, которые не содержат ни одного элемента. Так я создал команду DeleteUnnamedNonHostingReferencePlanes.

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

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