Сообщество программистов Autodesk в СНГ
ADN Club => AutoLisp / VisualLISP и DCL => Тема начата: Nikolay_Dombaza от 20-01-2015, 17:21:13
-
Приветствую. Хотел бы пообщаться по теме "распознавания чертежей". Так мы ее для себя называем.
Мы разрабатываем расчетный строительный сервис. Нам нужна консультационная, а возможно, и практическая помощь по решения задачи снятия данных с, как мы называем, "габаритной модели" здания (распознавание уровней, ограждающих конструкций, проемов, их размеров, типов) из файла DXF (или иначе) для последующего подбора оптимального конструктивного решения уже на стороне нашего сервиса. Судя по постам, Вы могли бы нам помочь.
Еще небольшое пояснение:
В cad мы имеем архитектурный проект дома, который включает в себя набор чертежей "план этажа", "разрез в осях...". Это может быть и в 2д и в 3д.
Мы хотим найти способ автоматического распознавания с этих чертежей нужной нам информации. А именно: распознать этажи, определить их контуры, габариты стен, покрытий (длину, ширину высоту), определить проемы их размеры.
Т.е. нам нужна информация, которая в нашей расчетной программе будет использоваться как объект расчета стоимости, процесса строительства, подбора конструктивных решений и т.п.. Мы это назвали "габаритная модель".
Мы этим раньше не занимались, но сейчас попросили нашего программиста с помощью https://pythonhosted.org/dxfgrabber/ вытянуть данные их 2д чертежа. Получили массив разных типов объектов. Линии, полилинии, круги и прочее. С присущими им атрибутами (координаты).
Пытались математически придумать как "узнать" по набору линий (по закономерностям их сочетания) контур здания хотя бы. Но не смогли этого сделать. Граббер нам дает мало информации. Возможно наш программист вынул не все, что возможно. Читая документацию грабера вижу, что есть типы данных, которые в нашем файле отсутствуют.
Все специалисты говорят, что задача не решаемая. Но может у кого то будут идеи?
-
Приветствую на форуме!
В общем случае задача действительно нерешаемая если в чертеже примитивы AutoCAD. Простой пример, которые расставляет все точки над I.
У тебя в чертеже прямоугольник (примитив LWPOLYLINE). Как ты определишь что это такое? Это плита перекрытия или это контур помещения или это контур проёма в стене?
Вот если у тебя в чертеже примитивы AutoCAD Architecture - тогда всё ясно. Там есть и стены (WALL), и кровля (ROOF) и перекрытия (SLAB) т.д. и т.п. Ну или если чертеж сделан по совершенно жестким правилам. Например, стены - это только полилинии и только на слое WALL и только определенного веса (или толщины) и типа линии. Но добиться от проектировщика, чтобы он делал именно так, а не иначе - задача нереальная. Именно поэтому в общем случае задача решения не имеет.
-
С произвольной информации - не реально - можно попробывать в "полуавтоматическом пошаговом" режиме с попыткой показа "своих" вариантов и корректировкой их пользователем "на лету". Но судя по подходу с dxfgrabber'ом - перед Вами еще долгий путь - удачи.
-
Хорошо то, что в AutoCAD Architecture мы можем получить более нужную нам информацию. Нам было бы интересно снять данные и из этой программы.
Может кто-то из вас поучаствовать в нашей работе?
-
У тебя в чертеже прямоугольник (примитив LWPOLYLINE). Как ты определишь что это такое? Это плита перекрытия или это контур помещения или это контур проёма в стене?
Вообще, если бы мы могли определить нужный нам многоугольник, то отнести его к нужным нам данным было бы несложно. Пока у нас была проблема, чтобы найти нужный нам многоугольник на плане этажа. Очень много шума, много объектов.
Нам нужны очень простые данные: внутренний объем здания со всеми габаритами. Что чем является мы можем определить уже на нашей стороне.
-
Но судя по подходу с dxfgrabber'ом
А возможны другие подходы? Мы то не против и других-)
-
попробовать в "полуавтоматическом пошаговом"
готовы попробовать. нужен в команду игрок в этом амплуа.
-
Нам нужны очень простые данные: внутренний объем здания со всеми габаритами.
Смеётесь? ;) Отсталось еще определится с терминами - что такое "внутренний объём" и что такое "все габариты".
Может кто-то из вас поучаствовать в нашей работе?
готовы попробовать. нужен в команду игрок в этом амплуа.
А вот с этим пожалуйста сюда: Вакансии для программистов (http://adn-cis.org/forum/index.php?board=38.0)
-
Чтобы немного "разгрузить" (или наоборот - "пригрузить") ситуацию :)
Если проект выполнен именно в вертикальном решении (возьму за основу AutoCAD Architecture, далее АА) и выполнен он в полном соответствии с той технологией, которую в АА закладывала Autodesk, то ничего "разбирать" не понадобится: есть наружные стены, есть внутренние стены (возможно, выполненные как конструкции[1]). Следовательно, вопрос состоит не столько в том, чтобы "собрать" информацию, сколько в том, чтобы корректным образом настроить соответствующие стили.
>> Нужен внутренний объем здания со всеми габаритами
Это что и как? Строительный объем надо посчитать? Или посчитать именно суммарный объем внутренних помещений? Если второе - то надо использовать объекты "помещения" [1] с соответствующими настройками стилей. А для подсчета строительного объема наверняка потребуется другой алгоритм - намного более замороченный (прежде всего из-за непоняток с учетом балконов и крыш).
---
[1] Имеется в виду терминология, принятая в АА.
-
я понял. Сейчас будет работать с теми программами, которые дают возможность получить информацию. нужен специалист. напишу в вакансиях.