明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3347|回复: 14

[函数] 创建支持数量的过滤规则

  [复制链接]
发表于 2021-6-9 17:24:43 | 显示全部楼层 |阅读模式
本帖最后由 tryhi 于 2021-6-10 16:14 编辑

其实这个好几年就写了,之前只在明经群里发过,但是感觉好像用得比较少,由于用得很少,所以不知道有没有可能有BUG,欢迎各位找BUG或者直接优化
这个题目不知道怎么写好
假设我们需要做一个ssget,框选的文字是这样的规则
前面2-5个数字,然后一个小数点,后面1-2个数字,然后一个括号里面1-3个数字
如图,此时
ssget写规则就显得有点力不从心了




此函数正是在这种情况下诞生,创建的规则同样支持wcmatch使用


建过滤规则,支持数量(作者:tryhi-大海)
例子:选择前面2-5个数字,然后一个小数点,后面1-2个数字,然后一个括号里面1-3个数字
(ssget (list (cons 1 (try-wcmatch-N "#{2,5}`.#{1,2}(#{1,3})"))))








本帖子中包含更多资源

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

x

评分

参与人数 2明经币 +2 收起 理由
USER2128 + 1 很给力!
zixuan203344 + 1 大海牛逼!

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2021-6-11 16:12:31 | 显示全部楼层
既然用得不多,为啥还要单独写一个那么复杂的呢?

  1. (defun ss:n ()
  2.   (setq aa '("##." "###." "####." "#####."))
  3.   (setq bb '("#" "##"))
  4.   (setq cc '("(#)" "(##)" "(###)"))
  5.   (setq n1 (zuhe aa (zuhe bb cc)))
  6.   (setq n2 (mapcar '(lambda (x) (apply 'strcat x)) n1))
  7.   (ssget (list (cons 1 (strjoin n2 ","))))
  8. )
  9. ;;;字符串连接
  10. (defun strjoin (lst del)
  11.   (if (cdr lst)
  12.     (strcat (car lst) del (strjoin (cdr lst) del))
  13.     (car lst)
  14.   )
  15. )
  16. ;;;两个表两两组合成新表
  17. (defun zuhe (lst1 lst2 / i j a lst)
  18.   (setq i 0)
  19.   (repeat (length lst1)
  20.     (setq a (nth i lst1))
  21.     (if (atom a)(setq a (cons a nil)))
  22.     (setq j 0)
  23.     (repeat (length lst2)
  24.       (setq b (nth j lst2))
  25.       (if (atom b)(setq b (cons b nil)))
  26.       (setq lst
  27.        (append
  28.          lst
  29.          (list(append a b))
  30.        )
  31.       )
  32.       (setq j (1+ j))
  33.     )
  34.     (setq i (1+ i))
  35.   )
  36.   Lst
  37. )

 楼主| 发表于 2021-6-12 16:15:58 | 显示全部楼层
本帖最后由 tryhi 于 2021-6-12 16:19 编辑
菜卷鱼 发表于 2021-6-11 16:12
既然用得不多,为啥还要单独写一个那么复杂的呢?

用得不多这个没想到,当初的想法是直接代替的,但是由于变量无法用单引号,导致每次写ssget的时候就要list cons一堆,又觉得麻烦
就像我定义try-sort一样,就是完全替代掉sort,只是当时没想到每次都要写list+cons就觉得好麻烦,就用得特别少了,不过也可以发散一下,直接重定义ssget

发表于 2021-6-10 10:51:03 | 显示全部楼层
由于可能用得上,所以写了,由于比较难写,所以写了好几年了,由于写了好几年心里没底,所以用得比较少,由于用得少,所以不知道有没有BUG,由于想找bug,所以发一贴,由于发帖了,所以大家可能用得上,循环到头部,over……

点评

主题表达可能有误,是几年前写了之后一直放着,不是写了好几年  发表于 2021-6-10 16:12
发表于 2021-6-10 08:54:02 | 显示全部楼层
海哥你就是我心中的大神
发表于 2021-6-10 08:57:54 | 显示全部楼层
海哥你就是我心中的大神+1
发表于 2021-6-10 09:02:51 | 显示全部楼层
好像不能属性块文字,模糊搜索吧,能支持就完美
发表于 2021-6-10 09:44:09 | 显示全部楼层
厉害ssget玩出花来
发表于 2021-6-10 09:46:29 | 显示全部楼层

海哥你就是我心中的大神+2
发表于 2021-6-10 09:55:16 | 显示全部楼层
高手好像不能属性块文字,模糊搜索吧,能支持就完美
发表于 2021-6-10 15:06:12 | 显示全部楼层
这个能玩出花样来 不错
发表于 2021-6-11 12:35:31 | 显示全部楼层
给力 还能这样玩
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-16 16:33 , Processed in 0.287733 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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