Jump to content
  • entries
    5
  • comments
    38
  • views
    1,497

About this blog

то да се, да и про nanoCAD

Entries in this blog

Ivanco

Изначально вопрос чтения, ком.строки был озвучен в клубе разработчиков nanoCAD.
Публикую свое решение здесь - может кому то пригодится. надеюсь что нет).


Собственно проблема - в nanoCAD API отсутствует возможность чтения истории командной строки.
Вообще взаимодействовать с ком.строкой конечно возможно.
Отправка комманд/сообщений, в т.ч. с опциями и т.д.

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

Путь решения был предложен там же (не мной).
и заключается в использовании WinAPI и дескрипторов окон (HWND).
древне/костыльный подход, но интересно же.
т.е. можно попробывать использовать вызовы WinAPI в C# на практике,
плюс научиться с помощью Spy++ (утлита в составе Visual Studio),  смотреть как UI nanoCAD видит операционная система.

как результат - приложен код решения, который выводит текст из ком.строки nanoCAD в консоль.

cmdHistory.thumb.png.7973066b6525ab2f953f4b2be1f505dd.png

CmdNanocadToConsole.cs

Ivanco

Инструмент для создания условно "кадастрового отчета".


По мотивам ветки форума-  "создание таблицы nanoCAD"


 Команда вызова  - LandPlotReport

 

Код на GitHub

 

#### Рабочие файлы:

 LandPlotReports_v1.0.0.zip

 

### Назначение:
Создание табличного отчета для границы кадастровых участков(полилиния).

 

#### Логика работы:
1. Пользователь указазывает границу/полилинию для обработки.
2. Для каждой вершины скрипт находит текст/описание точки (по совпадению координат).
3. Находятся все кадастровые участки(блоки) по определенному свойству.
 (жестко прописано в коде).
4. Для каждой точки границы, производится поиск совпадающих точек кадастровых участков.
(по полилиниям внутри блока, по точному совпадению координат).
5. Строится отчет/таблица для пользователя.

 

#### Важно:

1. Берется только первый текст/описание для каждой вершины.
2. Блоки кадастровых участков должны содержать свойство/описание поиска.

 

Поставляется "как есть".

#### Пример:

Demo_LandPlotReport.thumb.gif.3efc383cde98d7fa69adadc5ea162122.gif

Ivanco

Инструмент для объединения nanocad(СПДС) таблиц.
Написано на C#/MultiCAD.
Работоспособность проверена под NC2022.

Готова к использованию dll - NcadSpdsTable_APP.dll

Команда для запуска - WorkWithSpdsTable
 

GitHub - https://github.com/Ivanco21/NcadSpdsTable_APP

 

Описание возможностей:

  • объединение таблиц вертикально
  • объединение таблиц горизонтально
  • умеет образать шапку при объединении
  • в случае если разное кол-во столбцов/строк - добавляет пустые, для корректного объединения.


P.S.
- На сложных таблицах не тестировал.
- Порядок объединения, если кому то нужен(в порядке выбора, или по координатам) - нужно реализовывать - пишите.

Вертикально:

MergeTblsVerticaly.thumb.gif.d097ea93ea288180534dfe90b6b486e2.gif


Горизонтально:

MergeTblsHorizontaly.thumb.gif.53e5b61c574c9d8a429a91e5815b990b.gif

Ivanco

### Назначение:
Создание СПДС объектов в пространстве модели по таблице Excel.

 

#### Логика работы:
1. Скрипт читает указанный файл Excel.
2. В файле должны быть указаны:
    * ID объектов (из базы СПДС)
    * координаты вставки
    * параметры объекта которые необходимо применить к объекту.
3. Одна строка файла равно один объект СПДС.
4. Объект по ID ищется в БД СПДС, к нему применяются параметры.
5. Объект вставляется по координатам.

 

#### Рабочие файлы:

SpdsObjByExcelParams_v1.0.0.zip

Params.xlsm

 

Исходники на GitHub

 

#### Важно:

1. Структура таблицы должна быть как в приложенном файле. Кол-во параметров можно расширять вправо.
2. ID и параметры можно найти в "Мастер объектов" СПДС.
3. Чтение Excel реализовано через Open XML библиотеки.
    DocumentFormat.OpenXml.dll - должна находится в папке со основной dll.

 

P.S. часть парметров объекта "вид" и "имплементация" жестко прописана в коде.
Поставляется "как есть".

 

#### Пример:

SpdsObjByExcelTable.thumb.gif.2f13fee1549f98ff8a50cd93ce31ca2d.gif

Ivanco

Понадобилось реанимировать свое старое приложение для работы с полилиниями в nanoCAD.
Публикую может кому пригодиться.
Написано на C#/MultiCAD.
Исходники на GitHub, поставляется "как есть".
Работоспособность проверена под NC2021.
Готовая к использованию .dll ка PLL_APP_v05.dll
Для nanoCAD 22 - PLL_APP_nc22_v05.dll

 

Вызов меню командой - "Pll_Work"


Описание возможностей:

  1. По выбранной полилинии: создает таблицу с координатами вершин чертежа.
    Таблица в двух формах обычная и по "кадастровой форме". Плюс экспорт в CSV.
    Учитывается точность координат, есть возможность учитывать/не учитывать UCS и менять местами X/Y.

    pll_app_tables.thumb.gif.a452d9447cf62db616a9cae5500657bd.gif

     
  2. Нумерация вершин. Поддерживается изменение высоты текста и нумерация вершин не с первой позиции.
    Есть ньюанс: на замкнутых "совмещеннных" вершинах, умерация прозводится дважды(пояснение).pll_app_numerate.thumb.gif.f1afc0b8e6cc8d27565f490f1d1a67bb.gif
     
  3. Перенумерация вершин(только для замкнутых полилиний).
    По факту создание новой полилинии, с измененным порядком вершин.
     
  4. Расстановка геометрии по вершинам полилинии.
    Поддерживаются: примитивы, тексты, блоки.
    pll_app_obj_arrange.thumb.gif.e5435e46e8b1021d028b79aab868d8cb.gif
     
  5. Упрощение полилинии(без дуговых сегментов), с заданием максимальной длинны сегмента.
    По факту создается новая полилиния.
    Реверс(без дуговых сегментов).
    Удаление одинаковых вершин.
     

Расстановка выносок по вершинам полилинии.
Учитывается точность координат, есть возможность учитывать/не учитывать UCS и менять местами X/Y.pll_app_notes.thumb.gif.c2248570ab207e613b9697bc924512de.gif


 

Если кто будет пользоватья - пожелания/комментарии здесь или в личку.

 

×
×
  • Create New...