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

24/12/2014

Быстрое получение количества примитивов в Пространстве Модели

LINQ предлагает легкий способ нахождения числа примитивов в Пространстве Модели без итерации по ней. Интерфейс IEnumerator обеспеченный классом BlockTableRecord может быть приведён к IEnumerable<ObjectId> для подсчета количества. Ниже пример кода :
Опубликовано 24.12.2014     Читать далее >>>
23/12/2014

Получение свойств и методов класса ActiveX/COM из .NET

Если вы используете COM-интерфейс AutoCAD или Inventor из .NET-приложения и хотите найти какие свойства и методы есть у объектов, то почитайте прекрасную статью (на английском), которая показывает, как это следует делать. Этот метод работает даже если ваш проект не ссылается на соответствующую библиотеку или сборку и вы используете позднее связывание:

Получение информации о типе имеющих IDispatch-интерфейс COM-объектов из управляемого кода

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

Уведомление в элементе статусной строки

В ObjectARX 2004 SDK был прекрасный пример на C++, который добавлял элементы в статусную строку и показывал уведомления для одного из этих элементов. Я выполнил миграцию этого примера для работы с AutoCAD 2015 и полный проект можно скачать здесь:

StatusBar

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

Просмотр чертежа в WPF палитре

Как мы уже знаем пример BlockView.Net демонстрирует использование Графической системы для просмотра чертежа на форме Windows. Этот пример для версии AutoCAD 2015 доступен здесь: http://adn-cis.org/izmeneniya-v-grafike-v-autocad-2015.html
Опубликовано 19.12.2014     Читать далее >>>
17/12/2014

Создание 3DSolid из набора SubDMesh

Если у вас имеется коллекция subDMesh и вы хотите создать из неё 3DSolid, сначала нужно сконвертировать каждую из сетей в поверхность. Если поверхности вместе образуют замкнутый объём, тогда из них можно создать твердое тело. Ниже пример кода:

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

Поворот на Пи

Вопрос: Я пытаюсь создать приложение, которое переведет модель из SolidWorks в Revit. Идея состоит в том, чтобы перерисовать модель SolidWorks в Revit.

Я столкнулся с очень странным поведением метода ElementTransformUtils.RotateElement, и мне интересно, сталкивались вы с этим или может у вас есть какие мысли по этому поводу.

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

Пересечение всех экземпляров семейств с элементом

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

Ответ: В Revit API нет метода, который позволили бы определить отношения между колоннами и стеной.

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

Совет по миграции: ACAD2011\12 в 13\14\15

Этот совет связан не только с ACAD, но и с перспективами Visual Studio и будет полезен всем, кто использует шаблон CMap, где ключом является AcDbHandle&

CMap<AcDbHandle, AcDbHandle&, CString, CString> handleMap;

Я недавно получил запрос, когда программист получил сообщение об ошибке C2440: 'typecast' : cannot convert from 'AcDbHandle' to 'long' , хотя этот код прекрасно работает в компиляторе VS 90.0 compiler но дает ошибку в VS 100.0\110.0. После небольшого исследования я обнаружил, что изменился шаблон по-умолчанию

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

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

Вчера мы обсуждали как создать размер между центрами семейств. Код команды, переведённый в том примере, довольно небольшой.

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

Его можно использовать везде, где вам нужно автоматически или интерактивно в модели выбрать два элемента одного типа.

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

Создание размера между центрами семейств

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

А как можно создать размер между центрами этих семейств?

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