xyp1964
发表于 2013-3-31 14:34:35
;; 记忆选择
smartstar
发表于 2013-4-2 06:42:50
创意不错!支持一下!
hhhlike
发表于 2013-4-2 08:12:31
这个功能挺有用的,顶一下
tianyi1230
发表于 2013-4-7 22:04:20
贱人工具箱里面有个选择集功能,就是和院长的插件功能一样
xieyanghui
发表于 2013-4-7 23:20:11
院长这个不错。那位高手山寨个!
springwillow
发表于 2013-4-11 12:30:51
期待完善能在对话框中操作选择集。那样就方便多了
yzr2002626
发表于 2013-4-12 10:18:26
哪为完善下撒,在一个命令中完成,就像院长那个一样的,能多选
海盗曹
发表于 2013-4-12 12:39:14
好想法,好程序,学习了~
mj0000
发表于 2013-4-15 23:36:53
大神都不出手做对话框版么?
我先抛块砖
(defun c:ST (/ SSLists)
(setq SSLists (Sub-SS-SSLists))
(dcl_contents SSLists)
)
(defun dcl_contents (SSLists / dcl_id S_D)
(sssetfirst)
(if (> (setq dcl_id (load_dialog "随图选择集")) 0)
(if (new_dialog "SuiTuSS" dcl_id)
(progn (action_tile "AddSS" "(done_dialog 1)")
(action_tile "ChsSS" "(done_dialog 2)")
(action_tile "DelSS" "(done_dialog 3)")
(action_tile "SSName" "(setq SSNam $value)")
(start_list "SSList") ;_已有选择集列表
(mapcar 'add_list SSLists)
(end_list)
(action_tile "SSList" "(setq SSLst $value)")
(mode_tile "SSName" 2) ;_鼠标焦点
(action_tile "cancel" "(done_dialog 0)")
(setq S_D (start_dialog))
(cond
((= S_D 1) (Sub-SS-CreateSS SSNam))
((= S_D 2) (Sub-SS-ChooseSS (nth (read SSLst) SSLists)))
((= S_D 3) (Sub-SS-DelSS (nth (read SSLst) SSLists)))
)
(start_dialog)
(unload_dialog dcl_id)
)
(princ "\n无法显示对话框!")
)
(princ "\n无法加载对话框!")
)
(princ)
)
;;;================================================================================
;;;自贡黄明儒
(defun Sub-SS-CreateSS (SSNam / SS n en listxz SSLists)
(if SSNam
(progn
(setq SS (ssget))
(repeat (setq n (sslength SS))
(setq en (ssname SS (setq n (1- n))))
(setq listxz (append listxz (list (cdr (assoc 5 (entget en))))))
)
(VL-CATCH-ALL-APPLY 'vlax-ldata-put (list "SS-Data-SSXZJ" SSNam listxz))
)
)
(setq SSLists (Sub-SS-SSLists))
(dcl_contents SSLists)
)
;;调出选择集
(defun Sub-SS-ChooseSS (SSNam / N1 RESULT SS1)
(setq result (VL-CATCH-ALL-APPLY 'vlax-ldata-get (list "SS-Data-SSXZJ" SSNam)))
(if (VL-CATCH-ALL-ERROR-P result)
nil
(progn
(setq ss1 (ssadd))
(repeat (length result)
(setq n1 (car result))
(setq result (cdr result))
(ssadd (handent n1) ss1)
)
)
)
(sssetfirst nil ss1)
)
(defun Sub-SS-DelSS (SSNAM / SSLists)
(VL-CATCH-ALL-APPLY 'vlax-ldata-delete (list "SS-Data-SSXZJ" SSNam)) ;_删除单个选择集
(setq SSLists (Sub-SS-SSLists))
(dcl_contents SSLists)
)
(defun Sub-SS-DelSSAll (/ SSLists)
(YX:Put-Dict-DelDict "SS-Data-SSXZJ") ;_删除词典,清空选择集
(setq SSLists (Sub-SS-SSLists))
(dcl_contents SSLists)
)
(defun Sub-SS-SSLists (/ LIS SSNAMS X)
(if (setq lis (vlax-ldata-list "SS-Data-SSXZJ"))
(setq SSNAMlst (mapcar '(lambda (x) (car x)) lis))
(setq SSNAMlst nil)
)
)
mj0000
发表于 2013-4-15 23:38:58
本帖最后由 mj0000 于 2013-4-15 23:39 编辑
DCL文件:随图选择集.DCL
dcl_settings : default_dcl_settings { audit_level = 0 ; }SuiTuSS : dialog { label = "随图选择集"; : boxed_column { : row { : button { label = "添加"; key = "AddSS"; } : edit_box { key = "SSName"; } } : list_box { label = "已有选择集"; key = "SSList"; } : row { : button { label = "调用"; key = "ChsSS"; is_default = true; is_cancel = true; } : button { label = "删除"; key = "DelSS"; } } } spacer_1; cancel_button;}