Извлечение геометрии из блоков линий

Автор Тема: Извлечение геометрии из блоков линий  (Прочитано 11338 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн GeorgАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 50
  • Карма: 1
  • //Я не программист
Добрый день, имеется чертеж AutoCAD Classic с блоками (~1000 шт), каждый блок имеет уникальное имя (GUID) и представлен замкнутым контуром (полилинией). Есть ли какие-то программные решения (от простого к сложному) как получить для каждого блока геометрию (вершины полилинии) + точку привязки (базовую точку). По факту - получить некий массив для каждого из блоков, хранящий его геометрию.
Нужно:
а) - для проверки нахождения базовой точки внутри блока (если нет - то ее сменой);
б) - конвертацией данного полигона в файл ГИС-данных (есть таблица сопоставления имени блока с прочими атрибутами для участка с данным GUID).
Решение желательно на .NET (остальное не знаю) или Dynamo (без Python)/VBA (менее предпочтительно)
Примерный файл во вложении
P.S. Либо в альтернативу - сделать так, чтобы линия из блока сохраняла информацию об его имени (чтобы работать чисто с линиями как с геометрией), вместо работы с блоками

Оффлайн avc

  • ADN Club
  • *****
  • Сообщений: 843
  • Карма: 170
    • Мои плагины к Автокаду
AutoCAD Classic не существует :)
А прочитать данные из блока, найти полилинию и прочитать ее вершины .NET API конечно же позволяет. Примеров тут полно. Для такой задачи достаточно документации по API.
Между прочим точка привязки блока - это 0 его внутренней системы координат. Если его менять, то надо переносить объеты внутри блока и переносить все BlockReference в обратную сторону.

Оффлайн avc

  • ADN Club
  • *****
  • Сообщений: 843
  • Карма: 170
    • Мои плагины к Автокаду
А насчет альтернативы - тоже не проблема. GUID можно сохранить в XData полилинии.

Оффлайн GeorgАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 50
  • Карма: 1
  • //Я не программист
А можете, пожалуйста, натолкнуть на мысли про Xdata? Там где меньше API желательно (я вообще в этом плохо ориентируюсь, пока что)  :(

Оффлайн avc

  • ADN Club
  • *****
  • Сообщений: 843
  • Карма: 170
    • Мои плагины к Автокаду
Не понял вопроса. Какие мысли? В чем конкретно проблема? Документация по .Net API поставляется вместе ObjectARX. Примеры там тоже есть.

Оффлайн avc

  • ADN Club
  • *****
  • Сообщений: 843
  • Карма: 170
    • Мои плагины к Автокаду
На случай если у вас сломан Гугл: https://www.keanw.com/2007/04/adding_xdata_to.html

Оффлайн GeorgАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 50
  • Карма: 1
  • //Я не программист
Большое спасибо!
Гуглом не пользуюсь, когда есть такой информативный форум и отзывчивые эксперты  ;)
Послать можно было в 1 сообщении, а не писать их 4 штуки   :)

Оффлайн trir

  • ADN Club
  • ****
  • Сообщений: 475
  • Карма: 63
откуда такой файл?

Оффлайн GeorgАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 50
  • Карма: 1
  • //Я не программист
Добрый день, данный файл - пока что моя задумка - как способ максимально упростить задачу по разметке территории города для людей слабо знакомых с AutoCAD (чтобы не усложнять процесс). Существует некая Google-Таблица с перечнем участков (для каждого свой GUID), для каждой есть метки данных. Группа лиц размечает город на участки, собирает это в 1 файле, с помощью dataextraction выгружает в xls файл, синхронизирует с Google и получает финальную версию таблицы, которая идет как набор данных в Civil 3d - там проставляются метки участков и это идет как геоподоснова в Revit (разметка участков).
Запрошенный вариант с обращением к геометрии блоков - это на случай если "группа лиц" сделает ошибку и поставить точку не в контуре участка, да и мне - проще иметь также вариант представления данных в ином виде. С API максимально на "вы", очень сложно вникнуть, я больше в сторону вычислительного программирования.
P.S. Задача, акцентирую не рабочая/коммерческая а образовательная (пусть подход такой не пугает - по обводке участков)
P.S.S. В целом, я могу и разорвать потом блоки и проверить факт вхождения точки из таблицы в контур чисто с позиции геометрии и если true - то присвоить ей характеристики, если false - вывести имена блоков - но всегда хочется узнать другие варианты

Оффлайн trir

  • ADN Club
  • ****
  • Сообщений: 475
  • Карма: 63
Цитировать
для людей слабо знакомых с AutoCAD
а зачем тут вообще AutoCAD? Можно в QGIS это сделать или вообще в гугло-картах

Оффлайн GeorgАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 50
  • Карма: 1
  • //Я не программист
Увы, люди, которые это будут делать не гарантированно что разбираются так глубоко - моя воля так пусть бы сами в том же Civil 3D их размечали, но нужно что-то простое до крайности. Участки обязательно должны иметь смежные ребра, иначе теряется смысл проработки поверхностей - а гугл не уверен что так сделает. QGIS тоже не уверен что может так, да и сложный с непривычки для начинающего

Оффлайн trir

  • ADN Club
  • ****
  • Сообщений: 475
  • Карма: 63
https://nextgis.ru/nextgis-web/
либо там есть нужный функционал из коробки, либо могут его сделать
причём сразу в одном месте, без всяких гугло-таблиц

Цитировать
по обводке участков
в смысле?

Оффлайн GeorgАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 50
  • Карма: 1
  • //Я не программист
Ну... в общем границы участков это ломаные с привязкой к ребрам других участков с помощью типа привязки "Ближайшая" - если так понятней. В общем чтобы поверхность в рамках квартала была полностью захвачена/участки имели идентичные высотные отметки на границах с другими. Где границы с дорогами - там нет проработки, то иная.. задача других команд уже потом в будущем (инфраструктурная часть)
P.S. За карты спасибо, но тут нереально боюсь, пойди еще что-то коммерческое пропихни, да и сроки поджимают уже на выдачу заданий :( - это же только платное, как я понял?

Оффлайн trir

  • ADN Club
  • ****
  • Сообщений: 475
  • Карма: 63
мне не понятно - что вы обводить собрались
обычно просто выписки в Росреестре заказывают...

Оффлайн GeorgАвтор темы

  • ADN OPEN
  • **
  • Сообщений: 50
  • Карма: 1
  • //Я не программист
И они идут по паре месяцев  ::), а уж в таком масштабе .. :-X
Тут история образовательная - точность не так важна в плане захвата участков, главное чтобы на участке были здания, и участки имели общие границы с соседними. Этого уже хватит, а история вообще была не о том изначально ...