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

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     Читать далее >>>
10/01/2015

Двумерные координаты конечных точек кривой на 3D-виде

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

Вопрос: Я хочу получить двумерные координаты конечных точек кривой, находясь в 3D-виде.

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

Ошибка при создании арматурных стержней из кривых

Мы знаем, что создать арматуру можно с помощью нескольких перегруженных методов. Одним из них является метод CreateFromCurves:

Код - C#: [Выделить]
 public static Rebar CreateFromCurves(

    Document doc, RebarStyle style, RebarBarType barType,

    RebarHookType startHook, RebarHookType endHook, Element host,

    XYZ norm, IList<Curve> curves,

    RebarHookOrientation startHookOrient,

    RebarHookOrientation endHookOrient,

    bool useExistingShapeIfPossible, bool createNewShape);

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

Текстуры для произвольной фигуры

Вопрос: Можно ли задать текстуру (материал) для произвольной фигуры?

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

Создание зависимостей труб по осевой линии

Заказчик хочет использовать Revit API для создания зависимостей двух труб по центру их осей. Я думаю, это вполне осуществимо, и вот такой у меня родился план действий:

  • Получить осевую линию труб с помощью метода Element.get_Geometry()
  • Создать новую зависимость методом Document.Create.NewAlignment()
Опубликовано 27.12.2014     Читать далее >>>
25/12/2014

Категории для произвольной фигуры

Вопрос: Я хотел бы создать произвольные фигуры (DirectShape) для визуального отображения разлиных типов балок и поместить их в различные категории. Пока что я могу создать их только во встроенной категории, например, вот так:

Код - C#: [Выделить]
  ElementId id = new ElementId(

    BuiltInCategory.OST_StructuralFraming );

 

  DirectShape ds = DirectShape.CreateElement(

    doc, id, "A", "B" );

А могу ли я создать свою категорию и использовать ее при создании фигуры?

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

Разработка CRX приложений

Мы получили несколько общих вопросов от разработчиков использующих AcCoreConsole. Это два вопроса (и ответы любезно предоставленные членом нашей команды разработчиков AutoCAD) …

Вопрос 1: Какие библиотеки ObjectARX я могу прилинковать к моей DLL для загрузки в AcCoreConsole (или другого AcCore-продукта, который Autodeskможет выпустить в будущем)?

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