明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: weiqi

记忆选择集,关闭DWG有效加入DCL

  [复制链接]
发表于 2013-3-31 14:34:35 | 显示全部楼层
;; 记忆选择

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2013-4-2 06:42:50 来自手机 | 显示全部楼层
创意不错!支持一下!
发表于 2013-4-2 08:12:31 | 显示全部楼层
这个功能挺有用的,顶一下
发表于 2013-4-7 22:04:20 | 显示全部楼层
贱人工具箱里面有个选择集功能,就是和院长的插件功能一样
发表于 2013-4-7 23:20:11 | 显示全部楼层
院长这个不错。那位高手山寨个!
发表于 2013-4-11 12:30:51 | 显示全部楼层
期待完善能在对话框中操作选择集。那样就方便多了
发表于 2013-4-12 10:18:26 | 显示全部楼层
哪为完善下撒,在一个命令中完成,就像院长那个一样的,能多选
发表于 2013-4-12 12:39:14 | 显示全部楼层
好想法,好程序,学习了~
发表于 2013-4-15 23:36:53 | 显示全部楼层
大神都不出手做对话框版么?
我先抛块砖
  1. (defun c:ST (/ SSLists)
  2.   (setq SSLists (Sub-SS-SSLists))
  3.   (dcl_contents SSLists)
  4. )

  5. (defun dcl_contents (SSLists / dcl_id S_D)
  6.   (sssetfirst)
  7.   (if (> (setq dcl_id (load_dialog "随图选择集")) 0)
  8.     (if        (new_dialog "SuiTuSS" dcl_id)
  9.       (progn (action_tile "AddSS" "(done_dialog 1)")
  10.              (action_tile "ChsSS" "(done_dialog 2)")
  11.              (action_tile "DelSS" "(done_dialog 3)")
  12.              (action_tile "SSName" "(setq SSNam $value)")

  13.              (start_list "SSList") ;_已有选择集列表
  14.              (mapcar 'add_list SSLists)
  15.              (end_list)
  16.              (action_tile "SSList" "(setq SSLst $value)")
  17.              (mode_tile "SSName" 2) ;_鼠标焦点

  18.              (action_tile "cancel" "(done_dialog 0)")
  19.              (setq S_D (start_dialog))
  20.              (cond
  21.                ((= S_D 1) (Sub-SS-CreateSS SSNam))
  22.                ((= S_D 2) (Sub-SS-ChooseSS (nth (read SSLst) SSLists)))
  23.                ((= S_D 3) (Sub-SS-DelSS (nth (read SSLst) SSLists)))
  24.              )
  25.              (start_dialog)
  26.              (unload_dialog dcl_id)
  27.       )
  28.       (princ "\n无法显示对话框!")
  29.     )
  30.     (princ "\n无法加载对话框!")
  31.   )
  32.   (princ)
  33. )

  34. ;;;================================================================================
  35. ;;;自贡黄明儒
  36. (defun Sub-SS-CreateSS (SSNam / SS n en listxz SSLists)
  37.   (if SSNam
  38.     (progn
  39.       (setq SS (ssget))
  40.       (repeat (setq n (sslength SS))
  41.         (setq en (ssname SS (setq n (1- n))))
  42.         (setq listxz (append listxz (list (cdr (assoc 5 (entget en))))))
  43.       )
  44.       (VL-CATCH-ALL-APPLY 'vlax-ldata-put (list "SS-Data-SSXZJ" SSNam listxz))
  45.     )
  46.   )
  47.   (setq SSLists (Sub-SS-SSLists))
  48.   (dcl_contents SSLists)
  49. )
  50. ;;调出选择集
  51. (defun Sub-SS-ChooseSS (SSNam / N1 RESULT SS1)
  52.   (setq result (VL-CATCH-ALL-APPLY 'vlax-ldata-get (list "SS-Data-SSXZJ" SSNam)))
  53.   (if (VL-CATCH-ALL-ERROR-P result)
  54.     nil
  55.     (progn
  56.       (setq ss1 (ssadd))
  57.       (repeat (length result)
  58.         (setq n1 (car result))
  59.         (setq result (cdr result))
  60.         (ssadd (handent n1) ss1)
  61.       )
  62.     )
  63.   )
  64.   (sssetfirst nil ss1)
  65. )
  66. (defun Sub-SS-DelSS (SSNAM / SSLists)
  67.   (VL-CATCH-ALL-APPLY 'vlax-ldata-delete (list "SS-Data-SSXZJ" SSNam)) ;_删除单个选择集
  68.   (setq SSLists (Sub-SS-SSLists))
  69.   (dcl_contents SSLists)
  70. )

  71. (defun Sub-SS-DelSSAll (/ SSLists)
  72.   (YX:Put-Dict-DelDict "SS-Data-SSXZJ") ;_删除词典,清空选择集
  73.   (setq SSLists (Sub-SS-SSLists))
  74.   (dcl_contents SSLists)
  75. )

  76. (defun Sub-SS-SSLists (/ LIS SSNAMS X)
  77.   (if (setq lis (vlax-ldata-list "SS-Data-SSXZJ"))
  78.     (setq SSNAMlst (mapcar '(lambda (x) (car x)) lis))
  79.     (setq SSNAMlst nil)
  80.   )
  81. )


发表于 2013-4-15 23:38:58 | 显示全部楼层
本帖最后由 mj0000 于 2013-4-15 23:39 编辑

DCL文件:随图选择集.DCL
  1. 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;}

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

本版积分规则

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

GMT+8, 2024-11-16 01:16 , Processed in 0.170853 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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