本帖最后由 tengteb 于 2013-8-21 09:33 编辑 ;;;接口函数:快速选择--根据选中的模板对象,过滤所需的对象。;;; 参数说明:new--为nil时,可先选中需要过滤对象再选择模板对象(最后选中的对象不会显示夹点),;;; 否则,选中模板对象后,重新选择需要过滤对象;;;; ids --DXF组码列表,由需与模板对象匹配的组码组成。;;; 关于DXF组码,可查看CAD自带的帮助文档acad_dxf.chm。
;;;接口函数:快速选择--根据选中的模板对象,过滤所需的对象。 ;;; 参数说明:new--为nil时,可先选中需要过滤对象再选择模板对象(最后选中的对象不会显示夹点), ;;; 否则,选中模板对象后,重新选择需要过滤对象; ;;; ids --DXF组码列表,由需与模板对象匹配的组码组成。 ;;; 关于DXF组码,可查看CAD自带的帮助文档acad_dxf.chm。 (defun TB:QS (new ids / GetPat filter) (defun GetPat (ids / SS en lst) (and (setq SS (entsel "\n请选择模板对象:")) (setq en (entget (car SS)) lst (vl-remove-if-not '(lambda (e) (member (car e) ids)) en) ) ) ;and lst ) ;defun (and new (sssetfirst nil nil)) ;new为T时,重新选择 (and (setq filter (GetPat ids)) (sssetfirst nil (ssget filter)) ) ;and (princ) ) ;;;---------------------------------------------------------------------------------------- ;;;应用实例。函数名C:XX中XX可自定义,且XX为调用此函数的命令。 ;;;各位可以举一反三,定义自己所需的快速选择的命令。 ;;;若觉得本函数好用,请回帖支持。以后我还会发布更多实用的函数。 (defun C:Q () ;类型 图层 颜色[ 内容(文字) 块名(块) 半径/高度(圆/文字) 顶点数(多段线)] (TB:QS T '(0 8 62 1 2 40 90)) ) (defun C:QT () ;图元类型 (TB:QS T '(0)) ) (defun C:QD () ;图层 (TB:QS T '(8)) ) (defun C:QC () ;颜色 (TB:QS T '(62)) ) (defun C:QDT () ;图元类型 线型 (TB:QS T '(0 6)) ) (defun C:QTT () ;文字内容 (TB:QS T '(1)) ) (defun C:QTH () ;文字高度 (TB:QS T '(40)) ) ;;; 另外,本人编写了一个去除AutoCAD教育版打印戳记的软件,感兴趣的朋友可以去我的博客看一看:tengte.blogbus.com |