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;}
页: 1 [2] 3 4
查看完整版本: 记忆选择集,关闭DWG有效加入DCL