Конвертация штриховок из DWG формата
-
- Завсегдатай
- Сообщения: 257
- Зарегистрирован: 10 июн 2009, 12:21
- Репутация: 0
- Откуда: Екатеринбург
- Контактная информация:
Re: Конвертация штриховок из DWG формата
Еще раз.
Я так понимаю, Вам не заливку объектов перенести надо, а сами объекты, чтобы в левой части получились пересекающиеся полилинии, а в правой - полигоны и многоконтурные полигоны.
Вариант с "открыть внешние данные" в MapInfo делает именно так, как вам нужно - переносит объекты целиком, вложенные контуры читаются как часть единого, узлов в полилиниях и полигонах получается порядка 150.
Я так понимаю, Вам не заливку объектов перенести надо, а сами объекты, чтобы в левой части получились пересекающиеся полилинии, а в правой - полигоны и многоконтурные полигоны.
Вариант с "открыть внешние данные" в MapInfo делает именно так, как вам нужно - переносит объекты целиком, вложенные контуры читаются как часть единого, узлов в полилиниях и полигонах получается порядка 150.
- Alexey
- Участник
- Сообщения: 56
- Зарегистрирован: 21 май 2008, 07:47
- Репутация: 1
Re: Конвертация штриховок из DWG формата
Да, но штриховки созданы не мной.
Т.е. считаем что в качестве исходных данных есть файл с созданными штриховками (причем в общем случае контуры штриховок могли быть полилиниями и сплайнами и эллипсами и пр. - см. примеры чертежа выше).
Так что каким образом создавалась штриховка - неизвестно.
А так все верно - для создания конутра полилинией можно использовать команду "Контур" и указывать внутреннюю точку (но и это не решает проблему "островков" - создастся просто две полилинии, не связанные между собой)
В принципе некоторые наметки для решения задачи уже есть:
1. Поэлементно обрабатывать штриховки в автокаде используя Lisp-овскую программу, для генерирования контуров HATCHB (http://www.jtbworld.com/lisp/hatchb.htm)
2. Анализировать созданный ей контур
3. Пытаться на основе этого контура создать MPOLIGON в AutoCAD Map
4. Контуры, для которых MPOLIGON создать невозможно размещать в отдельный слоя для правки вручную.
В итоге имеем ряд MPOLIGON-ов, готовых к экспорту и ряд проблемных штриховок, которые нужно обработать руками (преобразовать их контур в замкн. полилинию и создать по ней MPOLIGON).
Решение не чистое - но все равно уже проще.
Инструменты: VBA + Lisp (HATCHB).
Увы только на VBA задачу формирования контура (аналог HATCHB) для неассоциативной штриховки решить не получилось.
Продолжаю искать дальше..
Т.е. считаем что в качестве исходных данных есть файл с созданными штриховками (причем в общем случае контуры штриховок могли быть полилиниями и сплайнами и эллипсами и пр. - см. примеры чертежа выше).
Так что каким образом создавалась штриховка - неизвестно.
А так все верно - для создания конутра полилинией можно использовать команду "Контур" и указывать внутреннюю точку (но и это не решает проблему "островков" - создастся просто две полилинии, не связанные между собой)
В принципе некоторые наметки для решения задачи уже есть:
1. Поэлементно обрабатывать штриховки в автокаде используя Lisp-овскую программу, для генерирования контуров HATCHB (http://www.jtbworld.com/lisp/hatchb.htm)
2. Анализировать созданный ей контур
3. Пытаться на основе этого контура создать MPOLIGON в AutoCAD Map
4. Контуры, для которых MPOLIGON создать невозможно размещать в отдельный слоя для правки вручную.
В итоге имеем ряд MPOLIGON-ов, готовых к экспорту и ряд проблемных штриховок, которые нужно обработать руками (преобразовать их контур в замкн. полилинию и создать по ней MPOLIGON).
Решение не чистое - но все равно уже проще.
Инструменты: VBA + Lisp (HATCHB).
Увы только на VBA задачу формирования контура (аналог HATCHB) для неассоциативной штриховки решить не получилось.
Продолжаю искать дальше..
- Alexey
- Участник
- Сообщения: 56
- Зарегистрирован: 21 май 2008, 07:47
- Репутация: 1
Re: Конвертация штриховок из DWG формата
Нет, нет - перенести нужно именно заливку (объект Автокада - HATCH). Как площадной объект.reasonat писал(а):Еще раз.
Я так понимаю, Вам не заливку объектов перенести надо, а сами объекты, чтобы в левой части получились пересекающиеся полилинии, а в правой - полигоны и многоконтурные полигоны.
Вариант с "открыть внешние данные" в MapInfo делает именно так, как вам нужно - переносит объекты целиком, вложенные контуры читаются как часть единого, узлов в полилиниях и полигонах получается порядка 150.
А в какой версии Mapinfo выполняете "открыть внешние данные"? У меня сейчас 8.5
Полученные таким образом полигоны в Mapinfo не связаны с исходным файлом (т.е. по сути это импорт векторных данных)?
-
- Завсегдатай
- Сообщения: 257
- Зарегистрирован: 10 июн 2009, 12:21
- Репутация: 0
- Откуда: Екатеринбург
- Контактная информация:
Re: Конвертация штриховок из DWG формата
Нет, по сути это открытие dwg без конвертирования формата. К dwg файлу привязывается tab файл, кажется со структурой полей и с метаданными (уже не помню, файлы стерты). Таблица открывается только для чтения, но объекты можно просто скопировать в другую таблицу мапинфо.
Еще б знать, что за "объект Автокада - HATCH" Много лет уже не работала.
Но думаю, как бы ни был представлен в автокаде этот объект, если он должен перенестись как площадной - то вариант только такой - площадной объект мапинфо (region) - представляющий собой площадь, ограниченную замкнутыми полилиниями, которые и представлены на скриншотах.
Помню, когда импортировали раньше dwg в мапинфо, штриховки и сами контуры переносились как попало, отрезками, набором линий штриховки, но никак не площадями с заливкой. Теперь (я говорю про версии MI 9.0 и выше) можно переносить ситуацию из автокада практически без нареканий.
Еще б знать, что за "объект Автокада - HATCH" Много лет уже не работала.
Но думаю, как бы ни был представлен в автокаде этот объект, если он должен перенестись как площадной - то вариант только такой - площадной объект мапинфо (region) - представляющий собой площадь, ограниченную замкнутыми полилиниями, которые и представлены на скриншотах.
Помню, когда импортировали раньше dwg в мапинфо, штриховки и сами контуры переносились как попало, отрезками, набором линий штриховки, но никак не площадями с заливкой. Теперь (я говорю про версии MI 9.0 и выше) можно переносить ситуацию из автокада практически без нареканий.
-
- Гуру
- Сообщения: 4205
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: 433
- Откуда: Париж
Re: Конвертация штриховок из DWG формата
Я не знаток Автокада. Для меня привычней другие КАДы и ГИСы. Но ведь речь идет скорее о файле в формате Автокада. Так что скиньте куда-нибудь фрагмент вашей "беды" мы с товарищами глянем. А то получается какое-то послонвое описание "слона", которого никто не видел.
- Alexey
- Участник
- Сообщения: 56
- Зарегистрирован: 21 май 2008, 07:47
- Репутация: 1
Re: Конвертация штриховок из DWG формата
Конечно.Boris писал(а):Я не знаток Автокада. Для меня привычней другие КАДы и ГИСы. Но ведь речь идет скорее о файле в формате Автокада. Так что скиньте куда-нибудь фрагмент вашей "беды" мы с товарищами глянем. А то получается какое-то послонвое описание "слона", которого никто не видел.
Я уже выкладывал на предыдущей странице файл в формате Автокада (.dwg) с типами штриховок, которые хочется уметь обрабатывать. Слона можно скачать по ссылке : download/file.php?id=416 (Test_hatch.zip)
-
- Гуру
- Сообщения: 619
- Зарегистрирован: 09 авг 2009, 13:09
- Репутация: 67
- Ваше звание: топограф, технолог
- Откуда: Мааськва
Re: Конвертация штриховок из DWG формата
Команда "Контур" (boundary) некорректно, неточно, непредсказуемо работает. Не заполняет площади целиком, срезает мелкие детали, может не создавать контуры одинаковых фигур. Судя по всему - зависит от увеличения фигур на экране, от размеров деталей этих фигур, просто непонятно от чего...JEY писал(а):В меню "Рисование" выберите команду "Контур", на панели инструментов "Рисование" этой команды нет. А затем, в диалоговом окне создания контура выберите тип создаваемого объекта. Предлагается либо "Polyline" либо "Region".
Затем Вы можете указать точку внутри потенциальных границ контура. Если контур окажется замкнутым, то на его месте будет создан соответствующий объект. Команда "Контур" настроена таким образом, что при выборе точки, в момент указания потенциальных границ, островки внутри границ определяются автоматически...
Есть ли для нее альтернатива - другой способ создавать контуры фигур, образованных линиями и полилиниями?
см., например, http://forum.dwg.ru/showthread.php?t=34360
-
- Завсегдатай
- Сообщения: 257
- Зарегистрирован: 10 июн 2009, 12:21
- Репутация: 0
- Откуда: Екатеринбург
- Контактная информация:
Re: Конвертация штриховок из DWG формата
Только что самой понадобилось переводить AutoCad в MapInfo, вспомнила про Универсальный транслятор - из набора утилит, устанавливаемых по-умолчанию с MapInfo. Попробовала и этот пример прочитать - получилось отлично. Все полигоны, вложенные полигоны и дважды вложенные полигоны прочитались как надо, с сохранением площади, в отличие от способа "Открыть внешние данные".
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 33 гостя