明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 77077

[源码] 快速选择

[复制链接]
发表于 2017-9-29 08:44:35 | 显示全部楼层
点取源对象: 错误: 参数太多
发表于 2017-9-30 08:03:59 | 显示全部楼层
点取源对象: 错误: 参数太多
是这情况
发表于 2017-9-30 08:09:49 | 显示全部楼层

点取源对象: 错误: 参数太多
是这情况
发表于 2017-10-1 20:30:59 | 显示全部楼层
上来就收钱,不太合适吧
发表于 2018-1-31 18:16:48 | 显示全部楼层
不知道好用不
发表于 2018-2-1 08:40:38 | 显示全部楼层
这个功能太好了
发表于 2018-2-5 11:20:14 | 显示全部楼层
点取源对象: 错误: 参数太多
发表于 2018-3-20 18:01:13 | 显示全部楼层
赞赞赞赞赞赞赞赞赞
发表于 2019-6-18 13:05:58 | 显示全部楼层
  1. (defun c:ss (/ MAKE-DCL-SSS dclname LST1 EntType DXFLST DXFLST1 DXFLST2
  2.         DXFLST3 Dcl_Id return lst4 SS x y n
  3.      )           ; 根据数据创建对话框文件
  4.   (defun MAKE-DCL-SSS (lst / tempname filen i n)
  5.     (setq dclname (cond
  6.         ((setq tempname (vl-filename-mktemp "temp.dcl")
  7.          filen (open tempname "w")
  8.          )
  9.           (write-line "MY_SSS: dialog{ label = "快速选择 QQ181976640 ";"
  10.           filen
  11.           )
  12.           (write-line ":boxed_column{ label="过滤选项:";"
  13.           filen
  14.           )
  15.           (setq I 0)
  16.           (foreach N lst
  17.       (write-line (strcat ":toggle{

  18.             label="" (strcat (car N) "     "
  19.                   (vl-princ-to-string
  20.                     (cdr N)
  21.                   )
  22.                 ) "";

  23.             key = "KEY"  (itoa I) "";

  24.             action="(do-addlst " (itoa I) ")";

  25.             value="0";  

  26.             }"
  27.             ) filen
  28.       )
  29.       (setq I (1+ I))
  30.           )           ; end foreach
  31.           (write-line "}" filen)
  32.           (write-line "ok_cancel;" filen)
  33.           (write-line "}" filen)
  34.           (close filen)
  35.           tempname
  36.         )
  37.       )
  38.     )
  39.   )
  40.   (defun do-addlst (INT)
  41.     (if (= $VALUE "1")           ; _表示被选中
  42.       (setq LST1 (cons INT LST1))
  43.       (setq LST1 (vl-remove INT LST1))
  44.     )
  45.   )               ; ----------------------------------
  46.   (setq DXFLST1 (entget (car (entsel "\n点取源对象: ")))
  47.   EntType (cdr (assoc 0 DXFLST1))
  48.   )
  49.   (if (not (assoc 62 DXFLST1))
  50.     (setq DXFLST1 (append
  51.         DXFLST1
  52.         (list '(62 . 256))
  53.       )
  54.     )
  55.   )
  56.   (cond
  57.     ((= EntType "ARC")
  58.       (setq DXFLST '((0 "实体类型") (8 "所在图层")
  59.        (62 "实体颜色")
  60.        (10 "圆心坐标")
  61.        (40 "圆弧半径")
  62.        (50 "起点角度")
  63.        (51 "终点角度")
  64.       )
  65.       )
  66.     )
  67.     ((= EntType "CIRCLE")
  68.       (setq DXFLST '((0 "实体类型") (8 "所在图层")
  69.        (62 "实体颜色")
  70.        (10 "圆心坐标")
  71.        (40 "圆形半径")
  72.       )
  73.       )
  74.     )
  75.     ((= EntType "SOLID")
  76.       (setq DXFLST '((0 "实体类型") (8 "所在图层")
  77.        (62 "实体颜色")
  78.       )
  79.       )
  80.     )
  81.     ((= EntType "POINT")
  82.       (setq DXFLST '((0 "实体类型") (8 "所在图层")
  83.        (62 "实体颜色")
  84.        (10 "点的位置")
  85.       )
  86.       )
  87.     )
  88.     ((= EntType "LINE")
  89.       (setq DXFLST '((0 "实体类型") (8 "所在图层")
  90.        (62 "实体颜色")
  91.        (10 "起点坐标")
  92.        (11 "终点坐标")
  93.       )
  94.       )
  95.     )
  96.     ((= EntType "INSERT")
  97.       (setq DXFLST '((0 "实体类型") (8 "所在图层")
  98.        (62 "实体颜色")
  99.        (2 "图块名称")
  100.        (10 "图块位置")
  101.        (41 "X 轴比例")
  102.        (42 "Y 轴比例")
  103.        (43 "Z 轴比例")
  104.        (50 "旋转角度")
  105.       )
  106.       )
  107.     )
  108.     ((= EntType "LWPOLYLINE")
  109.       (setq DXFLST '((0 "实体类型") (8 "所在图层")
  110.        (62 "实体颜色")
  111.        (70 "是否闭合")
  112.       )
  113.       )
  114.     )
  115.     ((= EntType "POLYLINE")
  116.       (setq DXFLST '((0 "实体类型") (8 "所在图层")
  117.        (62 "实体颜色")
  118.        (70 "是否闭合")
  119.       )
  120.       )
  121.     )
  122.     ((= EntType "HATCH")
  123.       (setq DXFLST '((0 "实体类型") (8 "所在图层")
  124.        (62 "实体颜色")
  125.        (2 "填充图案")
  126.        (41 "填充比例")
  127.        (52 "填充角度")
  128.       )
  129.       )
  130.     )
  131.     ((= EntType "TEXT")
  132.       (setq DXFLST '((0 "实体类型") (8 "所在图层")
  133.        (62 "实体颜色")
  134.        (1 "文字内容")
  135.        (7 "文字样式")
  136.        (10 "插入位置")
  137.        (40 "文字高度")
  138.        (41 "宽度系数")
  139.        (50 "旋转角度")
  140.        (51 "倾斜角度")
  141.       )
  142.       )
  143.     )
  144.     ((= EntType "ATTDEF")
  145.       (setq DXFLST '((0 "实体类型") (8 "所在图层")
  146.        (62 "实体颜色")
  147.        (2 "属性标记")
  148.        (7 "字型样式")
  149.        (10 "插入位置")
  150.        (40 "文字高度")
  151.        (50 "旋转角度")
  152.        (51 "倾斜角度")
  153.       )
  154.       )
  155.     )
  156.     ((= EntType "MTEXT")
  157.       (setq DXFLST '((0 "实体类型") (8 "所在图层")
  158.        (62 "实体颜色")
  159.        (10 "插入位置")
  160.        (1 "文字内容")
  161.        (7 "文字样式")
  162.        (40 "文字高度")
  163.        (50 "旋转角度")
  164.       )
  165.       )
  166.     )
  167.     ((= EntType "DIMENSION")
  168.       (setq DXFLST '((0 "实体类型") (8 "所在图层")
  169.        (62 "实体颜色")
  170.        (1 "标注文字")
  171.        (42 "测量值")
  172.        (3 "标注样式")
  173.       )
  174.       )
  175.     )
  176.     (t
  177.       (alert "不支持的类型")
  178.       (setq DXFLST nil)
  179.     )
  180.   )               ; END cond
  181.   (setq DXFLST (reverse DXFLST))
  182.   (if DXFLST
  183.     (progn
  184.       (setq DXFLST2 nil
  185.       LST1 nil           ; 初始化
  186.       DXFLST3 nil
  187.       )
  188.       (foreach x DXFLST
  189.   (if (setq y (assoc (car x) DXFLST1))
  190.     (progn
  191.       (setq DXFLST3 (cons y DXFLST3)) ; 挑选出可以过滤的组码
  192.       (setq DXFLST2 (cons (cons (cadr x) (cdr y)) DXFLST2)) ; 转化成人
  193.                ; 能轻易识别的DXF组码表
  194.     )
  195.   )
  196.       )
  197.       (MAKE-DCL-SSS DXFLST2)         ; 创建并写对话框文件
  198.       (setq Dcl_Id (load_dialog dclname)) ; 载入对话框文件
  199.       (new_dialog "MY_SSS" Dcl_Id)     ; 初始化对话框,在屏幕上显示
  200.       (action_tile "accept" "(done_dialog 1)")
  201.       (setq return (start_dialog))     ; 启动对话框
  202.       (if (and
  203.       (= return 1)
  204.       (> (length LST1) 0)
  205.     )
  206.   (progn
  207.     (setq lst4 nil)
  208.     (foreach N LST1
  209.       (setq LST4 (cons (nth N DXFLST3) LST4)) ; 取出要修改的组码代号

  210.     )
  211.     (setq SS (ssget lst4))       ; 过滤选择
  212.     (princ (strcat "\n 一共选择了 " (itoa (sslength ss))
  213.        " 个符合条件的对象。"
  214.      )
  215.     )
  216.     (sssetfirst nil ss)
  217.   )             ; progn
  218.       )               ; if
  219.       (unload_dialog Dcl_Id)
  220.       (vl-file-delete dclname)
  221.     )               ; progn
  222.   )               ; if
  223.   (princ)
  224. )

好像是提示有问题,贴出来一下,方便大家学习
发表于 2019-7-10 16:27:10 | 显示全部楼层
显示参数太多 没办法用
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-17 00:01 , Processed in 0.164205 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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