Создание .NET приложений nanoCAD СПДС

27 марта 2013

В ходе внедрения решений nanoCAD в ОАО "ТПИ "ОмскГражданПроект" перед специалистами ЗАО "Сисофт Омск", осуществляющими внедрение, возник ряд задач по портированию старых приложений. В институте до настоящего времени использовали LISP приложения для AutoCAD, облегчающие рутинные операции. Эти приложения были сгруппированы в отдельное меню «ОГП». Специалисты ЗАО "Сисофт Омск" переписали эти приложения под новую платформу nanoCAD 4.0, в которой возможна загрузка приложений .NET.

Задача 1. Выравнивание однострочных текстов

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

Решением стали команды:

  • OGPtextAlignRight – выровнять по правому краю
  • OGPtextAlignLeft – выровнять по левому краю
  • OGPtextAlignCenter – выровнять по центру

Задача 2. Произведение математических вычислений с текстами

Команды умножения и сложения запрашивают селекцию нескольких однострочных текстов (а также многострочных текстов, размеров), содержание текстов, по возможности, преобразуется в числа, и производятся вычисления. Результат выводится в командную строку в виде арифметического выражения, а также предлагается вставить на чертеж однострочный текст – результат операции.

Команды вычитания и деления запрашивают по одному тексту-операнду.

Отдельная команда позволяет настраивать точность вычисления (количество знаков после запятой).

Решением стали команды:

  • OGPmathSum - Сложение
  • OGPmathMult - Умножение
  • OGPmathSubt - Вычитание
  • OGPmathDiv - Деление
  • OGPmathPrecision – Точность вычислений

Задача 3. Изменение знака числа. Подчеркивание текста

Команды запрашивают селекцию однострочных текстов. Подчеркивание – добавляет или удаляет %%u (признак подчеркивания) в начале строки. Изменение знака – переключают знак «плюс» на «минус» или добавляет «минус» если не было никакого знака.

Решением стали команды:

  • OGPtextUnderline – Подчеркивание текста
  • OGPtogglePlusMinus – Переключение +/-

Задача 4. Подсчет длины линий

Команда запрашивает селекцию отрезков и полилиний, и вычисляет сумму их длин. Результат выдается в командную строку.

Решением стала команда:

  • OGPSumLength – Сумма длин отрезков и полилиний

Видео-пример работы команд, решающих задачи 1-4:


Задача 5. Проецирование трехмерных чертежей

Достаточно часто попадаются чертежи, содержащие примитивы, расположенные в разных уровнях, либо вообще пространственные координаты. Вот, например, безобидный чертеж плана этажа:

При рассмотрении его в изометрии имеется такая картина:

То есть при открытии чертежа сразу непонятно, что исходные объекты расположены не в плоскости.

Соответственно, при работе с таким чертежом могут возникнуть ошибки измерений, некорректная отрисовка графики объектов и прочее.

Решением стала команда «Обнулить Z», которая позволяет спроецировать примитивы на плоскость XoY мировой системы координат. Получаемый чертеж:


Задача 6. Экспорт типов линий в *.lin файл

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

Решением стала команда «Экспортировать *.lin», которая сохраняет все подгруженные в текущий чертеж типы линий в отдельный файл, который можно впоследствии загрузить в новый чертеж.

Видео-пример работы команды, решающей задачу 6:


Ссылка для скачивания приложений

Утилиты доступны по ссылке: ogputils

Опубликовать статью