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

09/01/2017

Основы Data Management API - Типы расширений

Рассматриваются особенности типов расширений
Опубликовано 09.01.2017     Читать далее >>>
06/01/2017

Основы Data Management API - Object Storage Service (OSS)

Рассматриваются особенности Object Storage Service (OSS)
Опубликовано 06.01.2017     Читать далее >>>
27/12/2016

Использование атрибута JournalingAttributeАвтор: Виктор Чекалин

Андрей Бушман задал интересный вопрос по использованию атрибута JournalingAttribute и свойству JournalMode. Какой-либо информации по их назначению не нашлось, добираться до истины пришлось самому.

Вот что мне удалось выяснить, после небольшого анализа.

Опубликовано 27.12.2016     Читать далее >>>
26/12/2016

Как можно создать фильтр, содержащий все типы кривых в чертежеАвтор: Александр Ривилис

Вопрос: Мне нужно дать возможность пользователю выбирать любые типы кривых - все типы полилиний, сплайны, дуги и т.д., и в том числе и пока неизвестные пользовательские кривые… Как это можно сделать?

Ответ: Для этой цели следует проанализировать SystemObjects.ClassDictionary, найти все классы-наследники класса Curve и получить их DXF-коды. Ниже приведен код, который реализует этот алгоритм:

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

Графическое отображение границ зоны

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

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

Поэтому я реализовал небольшую команду DisplayBoundary для отображения границы. В ней перебираются все сегменты границы выбранных зон или всех зон в модели и с помощью линий модели рисуется каждый сегмент.

Опубликовано 25.12.2016     Читать далее >>>
21/12/2016

Создание фильтра примитивов унаследованных от полилинийАвтор: Александр Ривилис

Вопрос: У меня есть собственные примитивы, унаследованные от AcDbPolyline. Я хочу иметь возможность фильтровать их, а также другие типы полилиний (AcDb2dPolyline и AcDb3dPolyline), при помощи функции acedSSGet. Я пробовал создавать фильтр при помощи такого кода:

Опубликовано 21.12.2016     Читать далее >>>
07/12/2016

Метки начала и конца отмены в лиспе

Почитав про транзакции в .NET, задумался: а если в лиспе сделать вложенные метки начала / конца отмены?
Опубликовано 07.12.2016     Читать далее >>>
02/12/2016

Как определить избыточное помещение

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

 

Я не могу полагаться на какую-либо конкретную спецификацию в модели.

Опубликовано 02.12.2016     Читать далее >>>
30/11/2016

Московская конференция "День Разработчика Autodesk 2016"

Московская конференция «День Разработчика Autodesk 2016»

Уважаемые коллеги, приглашаем вас 26 января 2017 г на очередную конференцию «День Разработчика Autodesk 2016». Если вы планируете или уже разрабатываете приложения с использованием технологий Autodesk, хотите узнать, в каком направлении Autodesk развивает свои облачные и десктопные API, то эта конференция для вас.

На этот раз девиз конференции: «Data at the Center». Это новый подход к работе с данными, который стал возможным благодаря облачным технологиям. Отдельно мы рассмотрим Autodesk Forge, платформу для решения инженерных и бизнес-задач, объединяющую новое поколение облачных API и веб сервисов.

В ходе конференции вы узнаете свежие новости о разработке приложений для облачных и десктопных платформ Autodesk, мы подробно остановимся на новых возможностях Data Management API, Model Derivative API, Viewer, Design Automation API, 3D Print API, BIM 360 API, Reality Capture API и Fusion 360 Client API и, конечно же, не забудем про наши десктопные платформы AutoCAD, Revit, Civil 3D, Inventor, Vault. Отдельно расскажем об использовании онлайн-магазина приложений Autodesk App Store для популяризации ваших приложений.

Опубликовано 30.11.2016     Читать далее >>>
29/11/2016

Основы Data Management API

Рассматриваются основы Data Management API Autodesk Forge
Опубликовано 29.11.2016     Читать далее >>>
14/11/2016

Как удалить команду из списка доступных команд AutoCADАвтор: Александр Ривилис

Это экзотическая ситуация, но может возникнуть необходимость полностью запретить команду AutoCAD. Один из вариантов – выполнение метода veto() в событии DocumentLockModeChanged. Но при этом команда есть в списке доступных команд и её выполнение начинается, а затем прерывается.

Есть более радикальный метод – использование метода RemoveCommand недокументированного класса Utils из пространства имён Autodesk.AutoCAD.Internal. Этот метод – обертка для метода AcEdCommandStack::removeCmd из ObjectARX. Ему передаются два параметра – имя группы команд и имя команды. Обычно достаточно передать глобальное имя команды, но бывают и исключения. Поэтому мы удалим команду и по глобальному и по локальному имени. Так как мы не знаем в какой локализации AutoCAD будет выполняться код, то нам нужно получить имя локализованной команды по её глобальному имени. Для этой цели в ObjectARX есть функция acedGetCName которая в версиях AutoCAD до 2012 включительно содержится в acad.exe, а позднее в accore.dll Мы воспользуемся P/Invoke для вызова её из .NET

Опубликовано 14.11.2016     Читать далее >>>
07/11/2016

Как получить 3D-полилинию, по которой получается тело сдвигаАвтор: Александр Ривилис

Вопрос: Имеется труба - твердое тело, полученной сдвигом круга (Circle) по траектории, образованной 3D-полилинией (3DPoly). Как получить вершины 3D-полилинии?

Ответ: Вариантов решения этой задачи несколько:

1) Использование метода GetGripPoints. Для тела у которого не очищена история редактирования если пропустить первые четыре ручки, то мы получим вершины 3D-полилинии. Но если история очищена, то получить вершины таким образом не получится, так как расположение ручек совсем другое.

2) Использовать BREP .NET API для получения информации о вершинах.

Второй вариант мы и рассмотрим, так как он более универсальный. Нам следует получить все ребра (Edge) твердого тела, выделить из них круглые (CircularArc3d) и эллиптические (EllipticalArc3d) и найти их центры.

Опубликовано 07.11.2016     Читать далее >>>
29/10/2016

Разделение ячеек спецификацииАвтор: Виктор Чекалин

Евгений Пашин задал на форуме интересный вопрос. В пользовательском интерфейсе есть возможность объединения и разделения ячеек спецификации. С помощью Revit API объединить ячейки достаточно просто. Нужно попользоваться методом TableSectionData.MergeCells. А как снять объединение с помощью Revit API?

Опубликовано 29.10.2016     Читать далее >>>
29/10/2016

Рисование кривых по списку точек

Вопрос: Я пытаюсь нарисовать соприкасающиеся друг с другом кривые в активном документе ActiveUIDocument.Document, из списка точек XYZ. Большинство примеров рисования кривых демонстрируется в редакторе семейств FamilyDocument и я так и не могу их адаптировать для рисования в проекте. Необходимо создавать рабочую плоскость для таких кривых?

Опубликовано 29.10.2016     Читать далее >>>
29/10/2016

Стоит ли использовать постоянные объектные реакторы?

Тот факт, что в AutoCAD можно "прописать" собственные реакции на какие-либо действия ACAD'a, не секрет.
Опубликовано 29.10.2016     Читать далее >>>
26/10/2016

Как выполнить Overrule для замкнутого сплайна так, чтобы он был заполнен своим цветомАвтор: Александр Ривилис

Вопрос: Как выполнить Overrule для замкнутого сплайна (Spline) так, чтобы он был заполнен своим цветом?

Ответ: Простейший способ – это выполнить аппроксимацию сплайна и рисовать сплайн при помощи Geometry.Polygon указав в качестве параметра точки аппроксимации.

Ниже пример как это можно реализовать:

Опубликовано 26.10.2016     Читать далее >>>
24/10/2016

Как в .NET выбрать грани 3DSOLID и изменить им цвет.Автор: Александр Ривилис

Недавно мы обсуждали как это сделать средствами ObjectARX. Сегодня рассмотрим, как это делается в .NET API:

Опубликовано 24.10.2016     Читать далее >>>
21/10/2016

Как в ObjectARX выбрать грани 3DSOLID и изменить им цветАвтор: Александр Ривилис

Оказалось, что на такой, казалось бы простой и распространенный вопрос найти примера в интернете не удается. Более того несколько функций, которые я использовал для решения этой задачи входят в состав ObjectARX SDK начиная с версии 2008, но никогда ни в одном примере не фигурировали. Есть готовые примеры как найти выбранную грань 3DSOLID, но они очень громоздки, зависят от ПСК, точки зрения, точки указания и т.д. В этом же примере всё очень просто и лаконично и основывается на функции обычного выбора примитивов acedSSGet:

Опубликовано 21.10.2016     Читать далее >>>
18/10/2016

Обзор Data Management API

Рассматриваются общие сведения по Data Management API Autodesk Forge
Опубликовано 18.10.2016     Читать далее >>>