明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1405|回复: 9

[已解答] 选择——按对象类型

[复制链接]
发表于 2015-5-10 20:56:04 | 显示全部楼层 |阅读模式
怎么按照对象类型快速选择,点选一个对象,全图高亮显示同类对象类型的对象。找了很多没找到这样的程序,下面的程序是点选一个对象后右键在框选后能选择同类型对象怎么修改成我想要的效果?
论坛大多数是按图层,颜色快速选择,我想按照对象类型快速选择,论坛也有按类型进行快速选择的,但是不支持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(- n  1 )
              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
发表于 2015-5-10 21:14:17 | 显示全部楼层
本帖最后由 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)))
 楼主| 发表于 2015-5-10 22:01:27 | 显示全部楼层
改成(defun c:hh () (qs t '(0)))不行啊
发表于 2015-5-11 08:23:49 | 显示全部楼层
找了很久  连选择易都没找到啊
发表于 2015-5-11 08:30:59 | 显示全部楼层
  1. (defun c:tt ()
  2. (defun getpat (ids / SS n e en lst)
  3.   (if (and (princ "\n请选择模板对象:")
  4.            (setq SS (ssget))
  5.       ) (progn
  6.    (repeat (setq n (sslength ss))
  7.     (setq en (entget (ssname ss (setq n (1- n))))
  8.           lst (append(vl-remove-if-not '(lambda (e) (member (car e) ids)) en)lst)
  9.     )
  10.    )
  11.    (setq lst (append '((-4 . "<OR")) lst '((-4 . "OR>"))))
  12.   ))
  13. ) ;defun
  14. (setq ids (getstring "\n过滤组码(0=实体类型,1=字串内容,2=块名,8=层名...): "))
  15. (setq ids (read(strcat "(" ids ")")))
  16. (sssetfirst nil (ssget (GetPat ids)))
  17. (princ)
  18. )
发表于 2015-5-11 18:08:09 | 显示全部楼层
飞诗选择易和小菜选择易不能用吗?
 楼主| 发表于 2015-5-11 18:30:29 | 显示全部楼层
不能用了,我用选择易3.5还是多少版本忘记了不支持机械工程师的符号选择就删了
发表于 2015-5-12 13:16:44 | 显示全部楼层
  1. (defun c:tt ()
  2.   (if (setq s1 (car (entsel "\n选择模板对象: ")))
  3.     (sssetfirst  nil (ssget "x" (list (cons 0 (cdr (assoc 0 (entget s1)))))))
  4.   )
  5.   (princ)
  6. )
 楼主| 发表于 2015-5-14 22:06:52 | 显示全部楼层
谢谢大家,不过没有小帮手那个选择好用,这软件没什么就那个选择好用。
 楼主| 发表于 2015-6-19 20:09:31 | 显示全部楼层
xyp1964的还是不支持机械工程师的粗糙度序号什么的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-21 21:57 , Processed in 0.209652 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表