Pull to refresh
10
Karma
0
Rating
Илья Слободин @ISL

User

Миграция ленты, меню и панели инструментов в nanoCAD. Импорт CUIX

Технология, скрывающая реализацию в каждой конкретной системе и позволяющая запустить одно и то же приложение в разных САПРах есть, называется MultiCAD.NET, см. нашу статью на эту тему: https://habr.com/ru/company/nanosoft/blog/242497/. Правда технология не скриптовая.

Миграция ленты, меню и панели инструментов в nanoCAD. Импорт CUIX

LISP в nanoCAD-е есть, загружается привычными способами, командой APPLOAD или по-лисповому (load "my.lsp"). А вот VBA в nanoCAD-е, к сожалению, нет — к появлению nanoCAD-а Microsoft уже не продавал движок VBA новым клиентам. Тем не менее ActiveX/COM API в nanoCAD-е есть, и VBA приложения можно портировать VB.NET. Код переезжает с минимальными исправлениями, а формы приходится перерисовывать, сохраняя названия контролов.

Создание пользовательского меню, панели инструментов и ленты в Платформе nanoCAD

Замечание верное, но лишь отчасти. WINE это не виртуальная машина и не эмулятор, а подсистема Win32 API, работающая поверх ядра Linux. Тема интересная, но в комментариях к данной статье это явно офтопик.

Воткнуть невтыкаемое: устанавливаем на GStarCAD плагины от AutoCAD-a

Наш опыт портирования приложений на nanoCAD отчасти изложен в статье habrahabr.ru/company/nanosoft/blog/248753, написанной по мотивам доклада на конференции о кросс-САПР-платформенной разработке. В статью не вошло введение из доклада, посвящённое истории возникновения и развития API клонов AutoCAD-а, но его можно прочитать в презентации или посмотреть в записи доклада, они в конце статьи.

Пошаговый обзор: единое MultiCAD.NET приложение в nanoCAD, AutoCAD, ZWCAD

Архив по ссылке из статьи обновлён.

Создание плагинов для AutoCAD с помощью .NET API (часть 3 – работа со слоями)

Чтобы скоротать время до первой половины мая, можно почитать статьи про MultiCAD.NET API, приложения на котором работают, в том числе, и под AutoCAD-ом.

Создание плагинов для AutoCAD с помощью .NET API (часть 1 – первые шаги)

просто текстовым редактором (к примеру) найти в DLL-файле строку CommandMethod?
Именно так. Но этот способ, скорее, не для того, чтобы выбросить лишние ссылки, а чтобы найти где смотреть как оно устроено.

Создание плагинов для AutoCAD с помощью .NET API (часть 1 – первые шаги)

Вот, к примеру, возьмем тот же самый атрибут CommandMethod. Где можно посмотреть, в каком из DLL-файлов он находится?
Сперва найти строку «CommandMethod» в тексте одной из .dll библиотек, потом открыть найденную библиотеку в ILSpy или .NET Reflector.

Создание плагинов для AutoCAD с помощью .NET API (часть 1 – первые шаги)

Например, можно создать обычную форму Windows с полями ввода, отобразить ее на экране с помощью ShowModal()
Плохой способ, т.к. в этом случае существует вероятность в AutoCAD поймать Fatal Error. Вместо этого следует пользоваться статическими методами класса Autodesk.AutoCAD.ApplicationServices.Application: для WPF это методы ShowModalWindow и ShowModelessWindow, а для WinForms — методы ShowModalDialog и ShowModelessDialog.

Тут дело даже не в Fatal Error, а в том, что упомянутые статические методы собирают список окон, которые автоматически закрываются при вызове Editor.GetPoint() и подобных функций.

Разработка .NET-приложений для AutoCAD в рамках архитектуры MVC

Если модель сериализовать целиком, а чертёж использовать только как хранилище «чёрного ящика» сериализованных данных, то конечно выйдет расточительно. Но ведь можно каждый объект модели сериализовать самостоятельно.

Для этого, впрочем, пришлось бы создавать пользовательские примитивы на C++, ведь в 2010 году, когда была написана статья, ещё не было технологии, позволяющей остаться в рамках .NET. О том, как это можно сделать сейчас, мы недавно писали в статье про сериализацию в MultiCAD.NET API.

Разработка .NET-приложений для AutoCAD в рамках архитектуры MVC

Обеспечение же синхронизации транзакций обоих типов...

Позволяла ли решаемая задача хранить в чертеже и саму модель, в виде неграфических данных? Тогда транзакция будет одна и необходимость в синхронизации отпадёт сама собой.

Создание плагинов для AutoCAD с помощью .NET API (часть 1 – первые шаги)

Потом узнайте цену покупки и повесьтесь.

Ну как не среагировать на такую подачу? Приведённый пример будет прекрасно работать и под бесплатным nanoCAD.

Попробуйте пересобрать пример, заменив пространство имён Autodesk.AutoCAD на HostMgd, как описано в статье "САПёР на полях САПР". Поскольку используется VS2013, не забудьте выставить TargetFramework=v3.5.

А там, глядишь, и до упомянутой программы для заказчика дело дойдёт.

Вышел — Nanocad 5.1 FREE

Примеров! Требуем срочно! Особенно по Multicad Net API.


Пожалуйста: habrahabr.ru/company/nanosoft/blog/198788/.

Не пример, но очередная статья про таблицы в MultiCAD.NET API.

Универсальный автотест, или как мы автоматизировали ручные тесты API в nanoCAD

Мы не пытаемся отвязаться от UI, нам как раз интересно проверить полную цепочку от двух WM_LBUTTONDOWN до возврата угла из GetPoint().

Применительно к данной задаче, действие в UI присходит в GetAngle(), который мы тестируем. PromptAngleOptions лишь содержит входные параметры.

Если бы мы тестировали какую-либо команду, использующую GetAngle(), скажем, команду поворота выбранных объектов, то GetAngle() можно было бы замокать. Но, тогда и процесс запуска команды стоило бы отключить от UI, и предпросмотр результата поворота, и далее до тех пор, пока мок не станет похож на спецсборку nanoCAD-а. Поэтому мы и пытаемся, по возможности, использовать существующие механизмы. UI тестировать через UI, работу с базой данных чертежа — без UI.

Универсальный автотест, или как мы автоматизировали ручные тесты API в nanoCAD

Преобразование появилось в nanoCAD 4.5.

Аналогичное преобразование в ObjectARX доступно только из модуля, загруженного в AutoCAD, будь то .NET или C++. Нам же нужно было добраться до этого преобразования снаружи, из внешней системы автоматизированного тестирования. Поэтому мы и расширили COM модель.

Работа с таблицами в MultiCAD.NET. Часть 1. Создание отчета на основе шаблона

Коллеги, не надо обострять. Предлагаю фразу «думал ваше мнение на чем то основано…» понимать как просьбу привести конкретные примеры.

Таблицы ATable это пользовательские примитивы (custom entities) или использован механизм, описанный в статье Создание «нестандартного» кастомного объекта для AutoCAD, работающего без Object Enabler?

Работа с таблицами в MultiCAD.NET. Часть 1. Создание отчета на основе шаблона

Аббревиатура ШГ верна, но смысл её другой: Шрифт ГОСТ 2.304.

Работа с таблицами в MultiCAD.NET. Часть 1. Создание отчета на основе шаблона

Более развернуто в какую сторону?

Мы совсем не против ATable, работающего под nanoCAD-ом, пользователям от этого только плюс. Тогда можно будет обмениваться чертежами между платформами и они везде будут «живыми», т.е. без мёртвой прокси графики.

Осталось только автора уговорить портировать ATable на nanoCAD, поможете?

Импорт координат из текстового файла в чертёж nanoCAD на MultiCAD .NET API

Вполне можем поставить такую статью в план, только осталось разобраться зачем это нужно. Какую задачу Вы пытаетесь решить подменой RXClass-а?
1

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Registered
Activity