Работа с объектами слоев
-
- Активный участник
- Сообщения: 145
- Зарегистрирован: 09 апр 2014, 11:33
- Репутация: 2
Работа с объектами слоев
Есть слой на котором есть линейные, точечные и полигональные объекты, а так же текстовые объекты (выступающие как полноценные объекты, не подписи). Получен tab из автокадовского файла. Задача состоит в том, что бы все эти объекты разнести по слоям, а текстовые удалить. Можно ли как-то за один раз удалить текстовые объекты, не по одному... Сейчас единственный вариант, который рассматриваю это удалять их из mid-файла, это быстрее чем прямо со слоя..но это долго, неудобно, может запрос какой-то...?
- Игорь Белов
- Гуру
- Сообщения: 2240
- Зарегистрирован: 04 янв 2011, 22:00
- Репутация: 1513
- Откуда: Казань
Re: Работа с объектами слоев
Перестройте таблицу, добавив целочисленное поле. Заполните его типом объекта:
Таблица соответствия:
Все площадные объекты:
Код: Выделить всё
ObjectInfo(obj, 1)
- — дуга
- — эллипс
- — линия
- — полилиния
- — точка
- — фрейм
- — полигон
- — прямоугольник
- — скруглённый прямоугольник
- — текст
- — мультиточка
- — коллекция
Код: Выделить всё
новое_поле In (1, 3, 4)
Код: Выделить всё
новое_поле In (2, 7, 8, 9)
The purpose of computing is insight, not numbers
-
- Гуру
- Сообщения: 879
- Зарегистрирован: 17 июн 2010, 23:14
- Репутация: 207
- Откуда: Москва
Re: Работа с объектами слоев
Ещё как вариант.
Вернёт все полигональные объекты. Возможные варианты объектов: region, point, line, polyline, text, arc, ellipse, rect, roundrect. Но это не все, полный список в справочнике MapInfo должен быть.
Хотя вариант, предложенный ErnieBoyd, быстрее обрабатывает объекты и возвращает результат. Ибо MapInfo (и не только ему
)проще проверять целочисленные значения (от 1 до какого-то числа), чем искать вхождение строки.
Код: Выделить всё
Str$(obj)="region"
Хотя вариант, предложенный ErnieBoyd, быстрее обрабатывает объекты и возвращает результат. Ибо MapInfo (и не только ему

-
- Активный участник
- Сообщения: 145
- Зарегистрирован: 09 апр 2014, 11:33
- Репутация: 2
Re: Работа с объектами слоев
Спасибо огромное!
-
- Гуру
- Сообщения: 879
- Зарегистрирован: 17 июн 2010, 23:14
- Репутация: 207
- Откуда: Москва
Re: Работа с объектами слоев
Я в своё время русифицировал и допиливал утилиту Stylist. Если неохота заморачиваться с запросами, можете использовать её.
Для MapInfo 7.0 и старше
Для MapInfo 7.0 и старше
- Вложения
-
STYLIST_rmk.rar
- (7.78 КБ) 313 скачиваний
-
- Активный участник
- Сообщения: 170
- Зарегистрирован: 06 дек 2011, 07:21
- Репутация: 19
- Откуда: г. Ухта, республика Коми
Re: Работа с объектами слоев
Ну а если уж совсем не заморачиваться (
), то, начиная с версии MI 10.0, идет пакет утилит MapCAD ("В MapCAD входят чертежные и оформительские инструменты MapInfo Professional. Они полезны при выполнении геодезических и землемерных работ, включая элементы автоматического проектирования (CAD)"). Устанавливается при инсталляции MI в C:\Program Files\MapInfo\Professional\MapCAD\MapCAD.MBX . Там эта функция расширена и работает без заморочек с запросами, objectInfo() и т.д.. Успехов!

_____________________________________________
старый и дремучий, но всё же искренне ваш - Йети
старый и дремучий, но всё же искренне ваш - Йети
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость