明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 小菜123

[资源] 小菜版选择易,欢迎使用并提出完善建议

    [复制链接]
发表于 2020-11-4 23:15:13 | 显示全部楼层
小菜版选择易,欢迎使用并提出完善建议

非常好用的插件 不错  支持   
发表于 2021-8-4 16:17:32 | 显示全部楼层
小菜兄,能帮我看一个这个测试文件吗?估计是编组的问题,输入命令后立即就出错了

本帖子中包含更多资源

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

x

点评

图纸需要recover  发表于 2021-8-4 20:44
发表于 2021-8-5 12:39:39 | 显示全部楼层
本帖最后由 yjtdkj 于 2021-8-5 12:41 编辑
yjtdkj 发表于 2021-8-4 16:17
小菜兄,能帮我看一个这个测试文件吗?估计是编组的问题,输入命令后立即就出错了

谢谢小菜的解答,我觉得是因为我新建组的函数的问题,下面的是代码,小菜能研究一下有没有什么办法改进呢?
  1. ;; Group Entities  -  Lee Mac
  2. ;; Creates a Group with a given name containing all entities in the supplied list
  3. ;; grp - [str] Group name (use "*" for an anonymous group)
  4. ;; lst - [lst] List of entities to add to group
  5. ;; sel - [bol] If T, group is selectable

  6. (defun LM:groupentities ( grp lst sel / dic enx gde gdx tmp )
  7.     (if (setq dic (cdr (assoc -1 (dictsearch (namedobjdict) "acad_group"))))
  8.         (if (setq gdx (dictsearch dic grp)
  9.                   gde (cdr (assoc -1 gdx))
  10.             )
  11.             (progn
  12.                 (entmod (append gdx (mapcar '(lambda ( x ) (cons 340 x)) lst)))
  13.                 (foreach ent lst
  14.                     (setq enx (entget ent)
  15.                           tmp (member '(102 . "{ACAD_REACTORS") enx)
  16.                     )
  17.                     (if tmp
  18.                         (setq tmp
  19.                             (vl-list*
  20.                                 (car tmp)
  21.                                 (cons 330 gde)
  22.                                 (cdr tmp)
  23.                             )
  24.                         )
  25.                         (setq tmp
  26.                             (vl-list*
  27.                                '(102 . "{ACAD_REACTORS")
  28.                                 (cons 330 gde)
  29.                                '(102 . "}")
  30.                                 (cdr (member (assoc 5 enx) enx))
  31.                             )
  32.                         )
  33.                     )
  34.                     (entmod (append (reverse (member (assoc 5 enx) (reverse enx))) tmp))      
  35.                 )
  36.                 grp
  37.             )
  38.             (if
  39.                 (and
  40.                     (setq gde
  41.                         (entmakex
  42.                             (list
  43.                                '(000 . "GROUP")
  44.                                '(100 . "AcDbGroup")
  45.                                 (if (wcmatch grp "`*") '(070 . 1) '(070 . 0))
  46.                                 (if sel                '(071 . 1) '(071 . 0))
  47.                             )
  48.                         )
  49.                     )
  50.                     (if (wcmatch grp "`*")
  51.                         (if (entmod (append (entget dic) (list '(3 . "*") (cons 350 gde)))) ;; thanks vk/rjp
  52.                             (setq grp
  53.                                 (cdadr
  54.                                     (member
  55.                                         (cons 350 gde)
  56.                                         (reverse (entget dic))
  57.                                     )
  58.                                 )
  59.                             )
  60.                         )
  61.                         (dictadd dic grp gde)
  62.                     )
  63.                 )
  64.                 (LM:groupentities grp lst sel)
  65.             )
  66.         )
  67.     )
  68. )
  69. (defun c:test ( / grp idx lst sel )
  70.     (while
  71.         (not
  72.             (or (wcmatch (setq grp (getstring t "Specify group name: ")) "`*,")
  73.                 (snvalid grp)
  74.             )
  75.         )
  76.         (princ "\nGroup name invalid.")
  77.     )
  78.     (if (and (/= "" grp) (setq sel (ssget )))
  79.         (progn
  80.             (repeat (setq idx (sslength sel))
  81.                 (setq lst (cons (ssname sel (setq idx (1- idx))) lst))
  82.             )
  83.             (LM:groupentities grp lst t)
  84.         )
  85.     )
  86. )
可能是因为我新建了匿名组的原因

点评

Lee Mac的原版函数一般问题很少,你改动了哪里再研究一下  发表于 2021-8-5 12:47
发表于 2021-8-5 14:56:28 | 显示全部楼层
本帖最后由 yjtdkj 于 2021-8-5 14:57 编辑
yjtdkj 发表于 2021-8-5 12:39
谢谢小菜的解答,我觉得是因为我新建组的函数的问题,下面的是代码,小菜能研究一下有没有什么办法改进呢 ...

哈哈哈,找到原因了,还真不是我改动的原因,就是原函数少了330组码。更新的代码贴在下面
  1. ;; Group Entities  -  Lee Mac
  2. ;; Creates a Group with a given name containing all entities in the supplied list
  3. ;; grp - [str] Group name (use "*" for an anonymous group)
  4. ;; lst - [lst] List of entities to add to group
  5. ;; sel - [bol] If T, group is selectable

  6. (defun LM:groupentities ( grp lst sel / dic enx gde gdx tmp )
  7.     (if (setq dic (cdr (assoc -1 (dictsearch (namedobjdict) "acad_group"))))
  8.         (if (setq gdx (dictsearch dic grp)
  9.                   gde (cdr (assoc -1 gdx))
  10.             )
  11.             (progn
  12.                 (entmod (append gdx (mapcar '(lambda ( x ) (cons 340 x)) lst)))
  13.                 (foreach ent lst
  14.                     (setq enx (entget ent)
  15.                           tmp (member '(102 . "{ACAD_REACTORS") enx)
  16.                     )
  17.                     (if tmp
  18.                         (setq tmp
  19.                             (vl-list*
  20.                                 (car tmp)
  21.                                 (cons 330 gde)
  22.                                 (cdr tmp)
  23.                             )
  24.                         )
  25.                         (setq tmp
  26.                             (vl-list*
  27.                                '(102 . "{ACAD_REACTORS")
  28.                                 (cons 330 gde)
  29.                                '(102 . "}")
  30.                                 (cdr (member (assoc 5 enx) enx))
  31.                             )
  32.                         )
  33.                     )
  34.                     (entmod (append (reverse (member (assoc 5 enx) (reverse enx))) tmp))      
  35.                 )
  36.                 grp
  37.             )
  38.             (if
  39.                 (and
  40.                     (setq gde
  41.                         (entmakex
  42.                             (list
  43.                                '(000 . "GROUP")
  44.                                '(102 . "{ACAD_REACTORS")
  45.                                (cons 330 dic)
  46.                                '(102 . "}")
  47.                                (cons 330 dic)
  48.                                '(100 . "AcDbGroup")
  49.                                 (if (wcmatch grp "`*") '(070 . 1) '(070 . 0))
  50.                                 (if sel                '(071 . 1) '(071 . 0))
  51.                             )
  52.                         )
  53.                     )
  54.                     (if (wcmatch grp "`*")
  55.                         (if (entmod (append (entget dic) (list '(3 . "*") (cons 350 gde)))) ;; thanks vk/rjp
  56.                             (setq grp
  57.                                 (cdadr
  58.                                     (member
  59.                                         (cons 350 gde)
  60.                                         (reverse (entget dic))
  61.                                     )
  62.                                 )
  63.                             )
  64.                         )
  65.                         (dictadd dic grp gde)
  66.                     )
  67.                 )
  68.                 (LM:groupentities grp lst sel)
  69.             )
  70.         )
  71.     )
  72. )
  73. (defun c:test ( / grp idx lst sel )
  74.     (while
  75.         (not
  76.             (or (wcmatch (setq grp (getstring t "Specify group name: ")) "`*,")
  77.                 (snvalid grp)
  78.             )
  79.         )
  80.         (princ "\nGroup name invalid.")
  81.     )
  82.     (if (and (/= "" grp) (setq sel (ssget )))
  83.         (progn
  84.             (repeat (setq idx (sslength sel))
  85.                 (setq lst (cons (ssname sel (setq idx (1- idx))) lst))
  86.             )
  87.             (LM:groupentities grp lst t)
  88.         )
  89.     )
  90. )
发表于 2021-9-18 14:07:01 | 显示全部楼层
非常实用的一个插件,感谢!
发表于 2021-9-24 14:06:15 | 显示全部楼层
明经十大好用插件之一,建议放个二维码,我一定捐助
发表于 2021-9-24 15:57:50 | 显示全部楼层
一直在用  感谢
发表于 2021-9-26 07:45:13 | 显示全部楼层
给力! 很给力
发表于 2021-9-28 17:15:53 | 显示全部楼层
又更新了,感谢分享!
发表于 2021-12-17 14:56:44 | 显示全部楼层

又更新了,感谢分享!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 16:24 , Processed in 0.180042 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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