明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 607|回复: 2

[提问] 如何选择包含标注的块

[复制链接]
发表于 2018-5-22 21:56 | 显示全部楼层 |阅读模式
10明经币
;图中有很多块,有些块包含了标注,导致有些标注样式不能清除,要全选包含标注的块,该如何表达呢?
(defun c:13()
;(setq ss (ssget "x" '((0 . "insert"))))
(sssetfirst nil ss)
(princ))

最佳答案

查看完整内容

只能对图块遍历了 (defun c:13() (defun getsymlst (sym / l n) (setq l '()) (setq n (tblnext sym t)) (setq l (cons (cdr (assoc 2 n)) l)) (while (setq n (tblnext sym nil)) (setq l (cons (cdr (assoc 2 n)) l)) ) l ) (setq l nil) (mapcar '(lambda (x / en) (setq en (tblobjname "block" x)) (while (progn (if (and (setq en (entnext ...
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2018-5-22 21:56 | 显示全部楼层
本帖最后由 pzweng 于 2018-5-23 10:10 编辑

只能对图块遍历了
(defun c:13()
  (defun getsymlst (sym / l n)
    (setq l '())
    (setq n (tblnext sym t))
    (setq l (cons (cdr (assoc 2 n)) l))
    (while (setq n (tblnext sym nil))
      (setq l (cons (cdr (assoc 2 n)) l))
    )
    l
  )
  (setq l nil)
  (mapcar '(lambda (x / en)
             (setq en (tblobjname "block" x))
             (while (progn (if (and (setq en (entnext en)) ;DIMENSION
                                    (wcmatch (cdr (assoc 0 (entget en))) "*DIMENSION")
                               )
                             (setq l (cons x l)  l (cons "," l))
                             (if en t nil )
                           )
                    )
             )
           )
          (vl-remove-if '(lambda (x) (wcmatch x "`*D*")) (getsymlst "block"))
  )
  (setq ss (ssget "x"
                  (list '(0 . "insert")
                        (cons 2 (vl-string-left-trim "," (apply 'strcat l)))
                  )
           )
  )
  (sssetfirst nil ss)
  (princ)
)
回复

使用道具 举报

 楼主| 发表于 2018-5-23 11:18 | 显示全部楼层
pzweng 发表于 2018-5-22 21:56
只能对图块遍历了
(defun c:13()
  (defun getsymlst (sym / l n)

非常感谢你的帮助,图太大,不知道为什么没有亮显,方便帮添加一个功能吗:
在找到的每个块的基点k0与当前鼠标所在的位置点o画一根线,方便查找。谢谢
(entmake (list '(0 . "line")'(cons 10 k0)(cons 11 o)))

(defun weizhi() ;(weizhi)
(setvar 'osmode 0)             ;关闭捕捉
(setq gbwz (grread 3))         ;光标位置
(if (member (car gbwz)'(3 5))
(setq o (cadr gbwz)) )         ;鼠标位置
;(setq pmzd(getvar "viewctr")) ;屏幕中点
(setvar 'osmode 6079) )        ;打开捕捉
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-26 12:17 , Processed in 0.838520 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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