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

05/04/2016

AppPackage API в AutoCAD I/O API - Часть 2

Рассматриваются примеры AppPackage API в AutoCAD I/O API
Опубликовано 05.04.2016     Читать далее >>>
04/04/2016

AppPackage API в AutoCAD I/O API - Часть 1

Рассматриваются примеры AppPackage API в AutoCAD I/O API
Опубликовано 04.04.2016     Читать далее >>>
03/04/2016

WorkItem в AutoCAD I/O API - часть 2

Рассматриваются примеры использования API деятельности в WorkItem I/O API
Опубликовано 03.04.2016     Читать далее >>>
02/04/2016

WorkItem в AutoCAD I/O API - часть 1

Рассматриваются примеры использования API деятельности в WorkItem I/O API
Опубликовано 02.04.2016     Читать далее >>>
01/04/2016

API деятельности в AutoCAD I/O API - Часть 2

Рассматриваются примеры использования API деятельности в AutoCAD I/O API
Опубликовано 01.04.2016     Читать далее >>>
01/04/2016

Медицинский анализ в Fusion 360

Рассматриваются особенности нового функционала Autodesk Fusion 360
Опубликовано 01.04.2016     Читать далее >>>
31/03/2016

API деятельности в AutoCAD I/O API - Часть 1

Рассматриваются примеры использования API деятельности в AutoCAD I/O API
Опубликовано 31.03.2016     Читать далее >>>
30/03/2016

Конвертация AcDb3DSolid в AcDbPolyFaceMesh средствами ObjectARXАвтор: Александр Ривилис

Вопрос: Стоит задача получить на основе AcDb3DSolid сеть AcDbPolyFaceMesh. Как это можно сделать?

Ответ: Ниже код, который позволяет это сделать. Возможны вариации в настройке AcBrMesh2dControl, определяющей насколько сеть будет повторять контуры твердого тела и какие элементы будут в основе этой сети.

Опубликовано 30.03.2016     Читать далее >>>
27/03/2016

Установка цвета всем граням твёрдого тела

Ниже вы видите код, который показывает как пройти по всем граням твердого тела и покрасить каждую из граней в свой цвет:
Опубликовано 27.03.2016     Читать далее >>>
09/03/2016

Управление форматом вывода данных чисел в Панели свойств AutoCADАвтор: Александр Ривилис

Управление форматом вывода данных чисел в Панели свойств AutoCAD

В статье Как показать правильно числовое значение в Панели Свойств (OPM)? в общих чертах описывается возможность управлять форматом вывода числовых значений в Панели свойств. Всё более-менее просто если свойство статическое. В этом случае имеется возможность указать формат числа в idl-файле. А вот в случае динамического свойства требуется выполнить специальную подготовку. Форматом вывода управляют методы GetCurrentValueName и GetCurrentValueType. Вот пример, обеспечивающий независящее от единиц представление действительного числа:

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

Превращение всех элементов в DirectShape

Новый интересный пример использования DirectShape предоставил наь Nikolay Shulga, старший инженер из команды разработчиков Revit.

Вот что он пишет:

26/02/2016

Особенности работы с макросами

Андрей Фазлеев часто использует макросы для своих задач. Во время работы с ними, у него сложилось собственное восприятие работы с макросами, и он любезно решил поделиться с нами этими особенностями.

Далее, привожу текст с его слов:

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

Как показать диалоговое окно редактирования поля (Field) средствами .NETАвтор: Александр Ривилис

Вы можете показать диалоговое окно AutoCAD редактирования поля, используя функцию “AcFdUiInvokeFieldDialog” из ObjectARX при помощи P/Invoke. При помощи этой функции можно показать диалог и вернуть объект поля, выбранный пользователем, переданный как первый параметр. Код ниже показывает как это сделать:

Опубликовано 24.02.2016     Читать далее >>>
22/02/2016

Полное подавление пользовательского интерфейса AutoCAD из .NET

В первой статье из этой серии, мы видели, как отключить AutoCAD ленту. Во второй статье мы увидели как скрыть панели AutoCAD (с некоторыми оговорками). В этом посте мы собираемся показать как сделать всё намного лучше и проще при помощи одной строки кода.

Но прежде всего, хотелось бы сказать большое спасибо что большой "спасибо" James Meading и Alexander Rivilis, которые помогли нам.

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

Но к полуночи, Alexander показал MFC код, который полностью подавляет пользовательский интерфейс AutoCAD но более низком уровне: подавляет полностью окно AutoCAD со всеми элементами интерфейса без необходимости скрывать что-либо.

Я посмотрел на код Alexander’а и обнаружил, что его несложно сделать работающим и в C# при помощи P/Invoke. И вот так этот код выглядит сейчас:

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

Как отключить Ленту средствами .NET

Мне попался интересный вопрос на форуме AutoCAD .NET, заданный Pete Elliott:

Когда AutoCAD загружается, я вижу что мои панели выключены (серые) до того момента, когда он не закончит загружаться. Наша программа выполняет дополнительную загрузку данных после того, как AutoCADпопадает в состояние «простоя». Но если пользователь нажмёт одну из кнопок на панели до того, как все данные будут загружены, AutoCADаварийно завершит свою работу. Есть ли способ отключить панели (как это делает AutoCAD) пока загрузка не выполнена, а затем включить их? Я не смог найти API, которое бы позволило это сделать. Приму любые предложения с благодарностью!

Мне кажется, что это будет полезно знать всем. Для сегодняшней статьи я буду считать, что под "Панелями " Pete имеет в виду Ленту. (Это мне подходит, так как я нашел способ как это сделать для Ленты, но я сделаю все возможное, чтобы опубликовать последующую статью для Панелей если в этом возникнет потребность.

Основной подход достаточно прост: вы получаете доступ к текущему "Набору палитр Ленты " при помощи класса RibbonServices (мы вызываем метод для создания новой Ленты, но обычно он возвращает существующую Ленту если вызывается из команды). Затем мы используем его, чтобы отключить "Элемент управления Ленты ", а также его фоновое отображение вкладок. Мы также отключим отображение всплывающих подсказок на то время, пока Лента отключена.

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

Изменение установок Профиля AutoCAD при помощи .NET

Есть много параметров, используемых AutoCAD, которые хранятся в различных частях реестра. Многие из них также можно читать и писать через getenv / setenv в LISP или acedGetEnv / acedSetEnv в ObjectARX и вот так в .NET:

Простая альтернатива использованию COM-объекта Preferences в AutoCAD

Если это не переменная окружения и к ней нет доступа через getenv/setenv к ней можно получить доступ при помощи API Реестра для чтения/модификации значений.
Замечание: если интересующее значение является строчным, тогда к нему можно получить доступ при помощи объекта UserConfigurationManager для чтения/записи:
http://through-the-interface.typepad.com/through_the_interface/2008/05/storing-custom.html

В качестве примера попробуем изменить переключатель "Разрешить уведомления" для печати из .NET.

Если вы хотите выяснить где данная настройка сохраняется в реестре (если она действительно хранится там), то вы можете использовать такой инструмент, как Process Monitor, чтобы увидеть, какое свойство в реестре модифицируется при изменении настройки с помощью пользовательского интерфейса. В случае печати это свойство было найдено здесь:

Так что мы можем его изменить при помощи следующего кода:

Опубликовано 17.02.2016     Читать далее >>>
16/02/2016

Визуализация при помощи RenderToImage API

Как вы возможно уже знаете API графической системы было изменено в AutoCAD 2015, как описано в статье Изменения в графике в AutoCAD 2015. В AutoCAD 2016 рендер RapidRT заменил рендер MentalRay, который использовался в предыдущих версиях. В свете этого в ObjectARX 2016 появился новый класс AcDbRapidRTRenderSettings. Все эти изменения требуют изменений в вашем коде в случае, если вы использовали метод AcGsView::RenderToImage для генерации изображения модели AutoCAD.

Следующий код должен генерировать визуализацию изображения как в AutoCAD 2016, так и в предыдущих версиях. Чтобы учесть различные изменения графической системы и средства визуализации, приведенный ниже код широко использует возможности условной компиляции.

Чтобы попробовать это, откройте чертеж и задайте направление взгляда в AutoCAD, такой как вы хотите для того чтобы генерировать визуализированное изображение. Настройте параметры визуализации и выполните визуализацию в AutoCAD. После того как вас устроят результаты, сделать настройки визуализации текущими. Это должно сохранить предустановки визуализации в качестве активных. Приведенный ниже код, получает параметры на основе активной предустановки, и используют их для создания изображении.

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

Программное создание диалога "Сохрани как..."

Эта статья появилась как результат запроса от пользователя. Здесь я покажу простую реализацию диалога для сохранения файла.

Хотя у нас есть функция acedGetNavDialog, но у неё нет возможности управлять списком форматов чертежей.

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

Интерфейс OData

Особенности работы с интерфейсом OData
Опубликовано 11.02.2016     Читать далее >>>
10/02/2016

Пошаговая инструкция по AutoCAD I/O API

Введение в создание приложений при помощи AutoCAD I/O API
Опубликовано 10.02.2016     Читать далее >>>