选择——按对象类型
怎么按照对象类型快速选择,点选一个对象,全图高亮显示同类对象类型的对象。找了很多没找到这样的程序,下面的程序是点选一个对象后右键在框选后能选择同类型对象怎么修改成我想要的效果?论坛大多数是按图层,颜色快速选择,我想按照对象类型快速选择,论坛也有按类型进行快速选择的,但是不支持PCCAD或者机械工程师的符号图元,不知道为什么,希望高手予以解决给成好用的程序,类似CAD好帮手的同类选择功能。这个插件就这一个功能我喜欢,求源码。
(defun c:hh() (QS T '(8)))
(defun QS (new ids / filter)
(defun GetPat (ids / SS n e en lst)
(and
(princ "\n请选择模板对象:")
(setq SS (ssget ) )
)
(setq n(sslength ss) lst'() )
(repeat n
(setq n(- n1 )
e(ssname ss n)
en(entget e)
lst(append(vl-remove-if-not '(lambda (e) (member (car e) ids)) en)lst)
)
)
(setq lst(append '((-4 . "<OR")) lst '((-4 ."OR>")) ) )
) ;defun
(sssetfirst nil (ssget(GetPat ids)))
(princ)
) ;defun 本帖最后由 vectra 于 2015-5-10 21:17 编辑
(defun c:hh () (qs t '(8)))
修改为
(defun c:hh () (qs t '(0)))
同时
(sssetfirst nil (ssget(GetPat ids)))
修改为
(sssetfirst nil (ssget "X" (getpat ids))) 改成(defun c:hh () (qs t '(0)))不行啊 找了很久连选择易都没找到啊 (defun c:tt ()
(defun getpat (ids / SS n e en lst)
(if (and (princ "\n请选择模板对象:")
(setq SS (ssget))
) (progn
(repeat (setq n (sslength ss))
(setq en (entget (ssname ss (setq n (1- n))))
lst (append(vl-remove-if-not '(lambda (e) (member (car e) ids)) en)lst)
)
)
(setq lst (append '((-4 . "<OR")) lst '((-4 . "OR>"))))
))
) ;defun
(setq ids (getstring "\n过滤组码(0=实体类型,1=字串内容,2=块名,8=层名...): "))
(setq ids (read(strcat "(" ids ")")))
(sssetfirst nil (ssget (GetPat ids)))
(princ)
)
飞诗选择易和小菜选择易不能用吗? 不能用了,我用选择易3.5还是多少版本忘记了不支持机械工程师的符号选择就删了 (defun c:tt ()
(if (setq s1 (car (entsel "\n选择模板对象: ")))
(sssetfirstnil (ssget "x" (list (cons 0 (cdr (assoc 0 (entget s1)))))))
)
(princ)
) 谢谢大家,不过没有小帮手那个选择好用,这软件没什么就那个选择好用。 xyp1964的还是不支持机械工程师的粗糙度序号什么的
页:
[1]