Прошу прощения за неправильное форматирование кода (в очередной раз )
Теперь пара вопросов:
1. Почему не получается выбрать блоки (setq ss (ssget "_X" '((0 . "insert") (8 . LayerTrassa) (62 . ColorTrassa) (-3 ("PE_URL")))))
2. Если отбросить выбор по кодам 8 и 62, набор создается. Можно перебрать элементы набора, сравнить гиперссылки на равенство с нужным значением, если равны, то как добавить этот элемент в другой набор? Что-то у меня не получается.
(defun c:55 (/)
(setq nabor (ssadd)
nabor nil
PO_OutptData (ssadd)
PO_OutptData nil
NameOb "12"
hp "23"
trassa (car (entsel "Укажите трассу >"))
)
(vlax-for hp (vla-get-hyperlinks (vlax-ename->vla-object trassa))
(if (setq NameOb (vla-get-url hp))
NameOb
)
)
;;; (alert (strcat "имя трассы " NameOb))
(setq OutFile (strcat NameOb ".CSV")
vla_curve (vlax-ename->vla-object trassa)
LayerTrassa (cdr (assoc 8 (entget trassa)))
ColorTrassa (cdr (assoc 62 (entget trassa)))
ss_trassa (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget trassa)))
)
;;;Зуммирование экрана, чтобы вся трасса была видна
(vl-cmdf "_.zoom" "_Object" trassa "")
(setq ss (ssget "_X"
'((0 . "insert")
;;; (8 . LayerTrassa) (62 . ColorTrassa)
(-3 ("PE_URL"))
)
)
ips 0
)
(alert (vl-prin1-to-string (sslength ss)))
(while (< ips (sslength ss))
(setq obj (ssname ss ips))
(vlax-for hp (vla-get-hyperlinks (vlax-ename->vla-object obj))
(setq hp_obj (vla-get-url hp)
ips (1+ ips)
)
)
;;; (alert hp_obj)
(if (= hp_obj NameOb)
(ssadd (entget obj) nabor)
)
)
(sssetfirst nabor nabor)
)