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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > фильтр ssget (2."имя примитива")

фильтр ssget (2."имя примитива")

Ответ
Поиск в этой теме
Непрочитано 05.02.2010, 08:51 #1
фильтр ssget (2."имя примитива")
neal83
 
Омск
Регистрация: 21.07.2009
Сообщений: 12

Помогите разобраться: в пространстве модели есть вхождение блока с именем "passport", ssget c фильтром ( 0 . "insert") ( 2 . "passport") выдает ошибку-bad argument type: lselsetp nil, заранее признателен.

Последний раз редактировалось neal83, 05.02.2010 в 09:59.
Просмотров: 4030
 
Непрочитано 05.02.2010, 09:24
#2
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Попробуй так:
Код:
[Выделить все]
 
(ssget "_X" '((0. "insert") (2. "passport")))
Profan вне форума  
 
Автор темы   Непрочитано 05.02.2010, 09:42
#3
neal83


 
Регистрация: 21.07.2009
Омск
Сообщений: 12


>profan

выдает ошибку bad SSGET list

да дело в том что функция работала, еще вчера с таким фильтром,
а сегодня .... ниче не понимаю
neal83 вне форума  
 
Непрочитано 05.02.2010, 09:47
#4
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


neal83, Profan, После кодов полей нужно ставить пробел
Код:
[Выделить все]
(ssget "_X" (list
              '(0 . "insert")
              '(2 . "passport")
              (cons 410 (getvar "CTAB"))
              )
       )
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 05.02.2010, 09:47
#5
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Не так написал. Надо так:
Код:
[Выделить все]
 
(ssget "_X" '((0 . "insert") (2 . "passport")))
Это же точечные пары.
Profan вне форума  
 
Автор темы   Непрочитано 05.02.2010, 09:56
#6
neal83


 
Регистрация: 21.07.2009
Омск
Сообщений: 12


>vva

ваш код аналогично с моим
(ssname nabor 0)-bad argument type: lselsetp nil

а можете пояснить что за последний фильтр- (cons 410 (getvar "CTAB")
neal83 вне форума  
 
Непрочитано 05.02.2010, 10:00
#7
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Цитата:
Сообщение от neal83 Посмотреть сообщение
Помогите разобраться: в пространстве модели есть вхождение блока с именем "passport", ssget c фильтром (0. "insert") (2. "passport") выдает ошибку-bad argument type: lselsetp nil, заранее признателен.
Ты бы привел законченый фрагмент своего кода, а не огрызок.

CTAB - переменная
Отображение имени текущей вкладки (модель или лист) в рисунке. . Переменная может быть использована для определения активной вкладки из программных приложений.
Profan вне форума  
 
Автор темы   Непрочитано 05.02.2010, 10:04
#8
neal83


 
Регистрация: 21.07.2009
Омск
Сообщений: 12


не в точках дело....

Код:
[Выделить все]
( DEFUN c:na()
  (vl-load-com)
  (setq nabor (ssget "_X" '((0 . "insert") (2 . "passport"))))
  (setq bl1 (ssname nabor 0))
  (setq atrb1 (nth 6
			(vlax-safearray->list
				(vlax-variant-value
					(vla-getattributes (vlax-ename->vla-Object bl1))
				);_ end of vlax-variant-value
			);_ end of vlax-safearray->list
		);_ end of nth
  );_ end of setq atrb1	
  		(vla-put-textstring atrb1 (vl-string-subst ", д." " " (getvar "hyperlinkbase")))
  		(vla-put-textstring atrb1 (vl-string-subst ", кор." "/" (vla-get-textstring atrb1)))
   	       	(vla-put-textstring atrb1 (vl-string-subst ", кв." "-" (vla-get-textstring atrb1)))
 	(prin1)
  )

Последний раз редактировалось Кулик Алексей aka kpblc, 05.02.2010 в 15:26.
neal83 вне форума  
 
Непрочитано 05.02.2010, 10:10
#9
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Проверь, а есть ли набор nabor через командную строку:
!nabor
Profan вне форума  
 
Автор темы   Непрочитано 05.02.2010, 10:24
#10
neal83


 
Регистрация: 21.07.2009
Омск
Сообщений: 12


пишет nil
neal83 вне форума  
 
Непрочитано 05.02.2010, 10:27
#11
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Тогда чего ты хочешь? Похоже, у тебя в файле нет вообще блоков или нет блоков с именем "passport".
Profan вне форума  
 
Автор темы   Непрочитано 05.02.2010, 10:32
#12
neal83


 
Регистрация: 21.07.2009
Омск
Сообщений: 12


вставляю другой блок в рисунок, меняю "passport" на "соотв. имя блока"-
набор формируетсья, предвосхищая вопрос об имени блока в рисунке-"passport"(точно как в лиспе)

у меня много маленьких проектов, обшие данные забиваю в свойства чертежа, хотел чтобы адрес в строительном паспорте заполнялся с помощью лиспа.
Вложения
Тип файла: dwg
DWG 2007
П А С П О Р Т.dwg (66.3 Кб, 465 просмотров)

Последний раз редактировалось neal83, 05.02.2010 в 10:48. Причина: вопрос затянулся- прикладываю файл
neal83 вне форума  
 
Непрочитано 05.02.2010, 12:26
#13
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


neal83, У тебя блок динамический. У него по другому формируются имя.
Код:
[Выделить все]
(defun get-block-name (itm)
;;; itm - vla objects
;;; Use
;;;(get-block-name (vlax-ename->vla-object(car(entsel "\nSelect block: "))))
  (cond
    ((and (vlax-property-available-p itm 'isdynamicblock)
	  (= (vla-get-isdynamicblock itm) :vlax-true)
     ) ;_ end of and 
     (vla-get-effectivename itm)
    )

    (t (vla-get-name itm))
  )
)
Цитата:
обшие данные забиваю в свойства чертежа ... хотел чтобы адрес в строительном паспорте заполнялся с помощью лиспа.
Делай блок с атрибутом, в атрибут полем вставь ссылку на соответсвующее свойство чертежа. Лисп не нужен
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 06.02.2010, 06:32
#14
neal83


 
Регистрация: 21.07.2009
Омск
Сообщений: 12


>VVA

Спасибо за разъяснения, только вот непонятно, почему с другим именем блоки находятся с помощью фильтра ssget (2. "имя примитива")
neal83 вне форума  
 
Непрочитано 06.02.2010, 16:05
#15
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


neal83, Набери (entget(car(entsel))) и посмотри что содержится в поле 2
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 07.02.2010, 10:44
#16
CB

Конструирование в области нефтеразведки
 
Регистрация: 10.02.2006
Гомель
Сообщений: 321


>neal83
Скорее все у тебя банальная грамматическая ошибка в слове "passport" - т.е. имеются буквы(а) , написанные в русской раскладке клавиатуры. В этом слове три буквы выглядят одинаково и в английской и в русской раскладке...
CB вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > фильтр ssget (2."имя примитива")



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Для чего нужны фильтры слоев?Как ими пользоваться? Aysulu AutoCAD 43 17.04.2019 10:59
Проблема с функцией ssget Scorpio_1986 Программирование 4 26.05.2009 10:07
Как создать фильтр набора без DXF пар? Supermax Программирование 8 24.06.2008 20:08
Можно ли в SSGET создать фильтр по расширенным данным? {Smirnoff} Программирование 2 25.04.2004 12:44
SSGET и XRECORD {Smirnoff} Программирование 5 25.02.2004 10:32