本帖最后由 开心无惧 于 2025-6-23 13:54 编辑
请教 问一下
因为有时需要查看具体的数量,有时需要检查是否有图形被选中,
但是ctrl+1 打开特性面板 觉得占用屏幕空间,每次都按一下ctrl+1 也觉得麻烦;
想自定义工具栏可以直接显示特性面板里带数量的功能,根据选择图形的多少,直接在工具栏里显示数量?
或者 另外的方法
不输入任何命令 是否可以每次在鼠标选择图形后 命令行里显示被选择图形的数量?
网友答: 77777777777777777
网友答: (defun c:StartSelectionReactor ( / reactor)
; 创建编辑器反应器回调函数
(defun SelectionChanged (reactor argList)
(setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))
(setq ss (vla-get-PickfirstSelectionSet doc))
(setq countDict '())
; 遍历选择集并分类计数
(vlax-for ent ss
(setq objType (vla-get-ObjectName ent))
(setq countDict
(if (setq pair (assoc objType countDict))
(subst (cons objType (1+ (cdr pair))) pair countDict)
(cons (cons objType 1) countDict)
)
)
)
; 打印统计结果
(if countDict
(foreach item countDict
(princ (strcat "\n" (car item) ": " (itoa (cdr item))))
)
(princ)
)
)
; 创建编辑器反应器监听pickfirstModified事件
(setq reactor (vlr-miscellaneous-reactor
"SelectionReactor"
'((:vlr-pickfirstModified . SelectionChanged))))
(princ "\n*** 选择集反应器已激活 ***")
(princ "\n选择或取消选择图形查看统计信息")
(princ)
)
; 启动反应器
(c:StartSelectionReactor)
; 停止反应器
;(vlr-remove (car (vlr-reactors :vlr-miscellaneous-reactor)))网友答: 去LEEMAC的网站逛下,那边有网友答:
感谢 我试一下
请教 问一下
因为有时需要查看具体的数量,有时需要检查是否有图形被选中,
但是ctrl+1 打开特性面板 觉得占用屏幕空间,每次都按一下ctrl+1 也觉得麻烦;
想自定义工具栏可以直接显示特性面板里带数量的功能,根据选择图形的多少,直接在工具栏里显示数量?
或者 另外的方法
不输入任何命令 是否可以每次在鼠标选择图形后 命令行里显示被选择图形的数量?
网友答: 77777777777777777
网友答: (defun c:StartSelectionReactor ( / reactor)
; 创建编辑器反应器回调函数
(defun SelectionChanged (reactor argList)
(setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))
(setq ss (vla-get-PickfirstSelectionSet doc))
(setq countDict '())
; 遍历选择集并分类计数
(vlax-for ent ss
(setq objType (vla-get-ObjectName ent))
(setq countDict
(if (setq pair (assoc objType countDict))
(subst (cons objType (1+ (cdr pair))) pair countDict)
(cons (cons objType 1) countDict)
)
)
)
; 打印统计结果
(if countDict
(foreach item countDict
(princ (strcat "\n" (car item) ": " (itoa (cdr item))))
)
(princ)
)
)
; 创建编辑器反应器监听pickfirstModified事件
(setq reactor (vlr-miscellaneous-reactor
"SelectionReactor"
'((:vlr-pickfirstModified . SelectionChanged))))
(princ "\n*** 选择集反应器已激活 ***")
(princ "\n选择或取消选择图形查看统计信息")
(princ)
)
; 启动反应器
(c:StartSelectionReactor)
; 停止反应器
;(vlr-remove (car (vlr-reactors :vlr-miscellaneous-reactor)))网友答: 去LEEMAC的网站逛下,那边有网友答:
和尚777 发表于 2025-6-23 15:46
(defun c:StartSelectionReactor ( / reactor)
; 创建编辑器反应器回调函数
(defun SelectionChanged ...
感谢 我试一下