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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Фильтр ssget с шаблоном не работает с полем?

Фильтр ssget с шаблоном не работает с полем?

Ответ
Поиск в этой теме
Непрочитано 21.03.2011, 15:53 #1
Фильтр ssget с шаблоном не работает с полем?
Do$
 
AutoCAD/Civil3D LISP/C#
 
Санкт-Петербург
Регистрация: 15.08.2008
Сообщений: 1,701

Попробуйте по очереди применить эти 2 кода к чертежу:
Код:
[Выделить все]
 (ssget "_X" '((410 . "Model") (0 . "TEXT") (8 . "Поле") (1 . "##")))
Код:
[Выделить все]
 (ssget "_X" '((410 . "Model") (0 . "TEXT") (8 . "0") (1 . "##")))
У меня в acad2010eng ssget не находит текст с полем! Так и должно быть?
Но если то же самое проделать через QSELECT, то текст с полем находит по шаблону. Что за глюк такой?

Вложения
Тип файла: dwg
DWG 2004
ssget&field2004.dwg (35.1 Кб, 313 просмотров)

__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic)
Просмотров: 2488
 
Непрочитано 21.03.2011, 16:20
1 | #2
TararykovDG

Программист-энтузиаст
 
Регистрация: 17.07.2009
Воронеж
Сообщений: 575


Do$, не уверен, но видимо в поле храниться не значение, а формула.
В dxf кодах (т. е. (cdr (assoc 1 (entget (car (entsel)))))) возвращаются уже вычисленные по формулам значения. Кстати вот такой вариант выберет поле
Код:
[Выделить все]
 
(ssget "_X" (list (cons 410 "Model") (cons 0 "TEXT") (cons 8 "Поле") (cons 1 "%<*>%")))
Символы %< и >% и обрамляют поле. А вот вместо * в вашем случае получается "%<\\AcObjProp Object(%<\\_ObjId 2127656192>%).TextString>%" с помощью (vla-FieldCode (vlax-ename->vla-object (car (entsel))))

Наверное не очень-то помог
__________________
cadtools
TararykovDG вне форума  
 
Автор темы   Непрочитано 21.03.2011, 16:30
#3
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Отнюдь, помог!
Во-первых, я понял, что не у меня одного так ssget работает!
Во-вторых, догадка с фильтром на поле все расставила по местам!
Получается, что ssget применяет фильтр к невычисленным значениям, что создает некоторые неудобства... Придется сперва создать набор всех текстов, преобразовать его в список, а потом с помощью vl-remove-if и wcmatch отбирать тексты, соответствующие шаблону.
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic)

Последний раз редактировалось Do$, 22.03.2011 в 13:17.
Do$ вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Фильтр ssget с шаблоном не работает с полем?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Лира 9.6.. СТК.. Не работает фильтр "по жесткост"? SaFF Лира / Лира-САПР 16 04.09.2010 18:27
фильтр ssget (2."имя примитива") neal83 Программирование 15 07.02.2010 10:44
Можно ли в SSGET создать фильтр по расширенным данным? {Smirnoff} Программирование 2 25.04.2004 12:44