| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Почему некорректно работает координатный фильтр?

Почему некорректно работает координатный фильтр?

Ответ
Поиск в этой теме
Непрочитано 03.03.2017, 13:11 #1
Почему некорректно работает координатный фильтр?
P_S
 
Санкт-Петербург
Регистрация: 09.10.2006
Сообщений: 99

Пытаюсь выделить в чертеже все объекты MTEXT, имеющие координату Z, отличную от 0:
Код:
[Выделить все]
 (ssget "_X" '((0 . "MTEXT")(-4 . "*,*,<>")(10 0.0 0.0 0.0)))
В ответ - nil. А если попробовать выделить все с Z=0?
Код:
[Выделить все]
 (ssget "_X" '((0 . "MTEXT")(-4 . "*,*,=")(10 0.0 0.0 0.0)))
Выделяется весь MTEXT без фильтрации по Z.
При этом фильтр по X и Y работает корректно; проверил точки - группа (0 . "POINT") - фильтр по Z работает нормально, не говоря уж о том, что команда _qselect отлично справляется с выделением MTEXT с ненулевой Z.
Впечатление такое, что, независимо от того, что возвращает (entget), программа воспринимает последнее число в группе 10 как 0.
Проверяем:
Код:
[Выделить все]
 (ssget "_X" '((0 . "MTEXT")(-4 . "*,*,>")(10 0.0 0.0 1.0)))
- nil.
Код:
[Выделить все]
 (ssget "_X" '((0 . "MTEXT")(-4 . "*,*,>")(10 0.0 0.0 -1.0)))
- выделяется весь MTEXT без фильтрации.
Проверил другие объекты, родственные MTEXT: MULTILEADER и линейный размер (при фильтрации по группе 13) - ведут себя так же, как MTEXT.
Есть ли этому разумное объяснение?
Просмотров: 1684
 
Непрочитано 03.03.2017, 14:12
#2
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


А отрезки подобным образом фильтруются?
Вот честно - я бы просто получал все объекты, а потом бы уже фильтровал.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 06.03.2017, 10:24
#3
P_S


 
Регистрация: 09.10.2006
Санкт-Петербург
Сообщений: 99


Ситуация, похоже, такая: фильтр для трехкоординатного DXF-кода с кодом -4 для одних объектов интерпретируется как 2D фильтр (последнее число в группе считается нулем, независимо от значения, возвращаемого entget), а для других - как 3D фильтр (последнее число в группе - координата Z).
Так, для TEXT фильтрация по Z работает, для MTEXT - нет; для LINE фильтр по Z работает по группам 10 и 11, а для XLINE и RAY по группе 10 - нет; для CIRCLE фильтр по Z работает, а для ELLIPSE - нет.
Почему - наверное, уже не раскопать в дебрях истории создания AutoCad.
P_S вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Почему некорректно работает координатный фильтр?

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Некорректно работает файл в AutoCad 2013 после его редактирования в AutoCad 2014 poslepolunochi AutoCAD 2 16.07.2014 20:38
Почему не работает выражение? Jonas Программирование 3 03.03.2014 15:55
Почему не работает привязка Geniy_Dzydo AutoCAD 9 14.02.2013 15:31
почему не работает entmake loginovskiy Программирование 12 20.08.2012 00:58
Некорректно работает _draworder Spiteful Berkut AutoCAD 2 07.12.2010 15:08