明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 944|回复: 6

[讨论] 有关查找问题

[复制链接]
发表于 2021-9-29 19:02:49 | 显示全部楼层 |阅读模式
(defun c:TS(/ aa ss  n)

(setq aa(getstring"\n请输入文本:"))


(setq ss (ssget "X" (list  '(0 . "TEXT,MTEXT") (cons 1 aa) )))



(if(= ss nil)

(progn
(princ "\n无对应文字")
)

(progn
  (sssetfirst nil ss)

(setq n (sslength ss))

(princ (strcat "\n共选定" (itoa n) "个文字对象"))
  )

  )

(setq ss nil)

(prin1)
)



大师帮我改一下嘛,查找字符的时侯,不区分大小写,比如我要查找:dw21193,那图上的三处包含这个字符

本帖子中包含更多资源

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

x
发表于 2021-9-30 09:26:03 | 显示全部楼层
本帖最后由 竹天 于 2021-9-30 09:27 编辑
  1. ;---计算以"kW"(不分大小写)结尾的数字之和---
  2. (defun C:sump                                                ;声明命令名称--sump
  3.         (/ S_list sl i sum n str)                                ;声明局部变量
  4.         (setq S_list (ssget '((0 . "*TEXT")                        ;限定被选择的对象为:文字(包括多行文字和天正文字)
  5.                                     (1 . "*#kW,*#KW,*#kw,*#Kw"))));限定被选择的对象为:内容为数字加“kW”(不分大小写)结尾
  6.         (setq sl (sslength S_list))                                ;读取选择集中的对象个数
  7.         (setq i 0)                                                ;将循环标记设置为0
  8.         (setq SUM 0)                                        ;将求和结果设置为0
  9.         (while (< i sl)                                        ;开始循环
  10.                 (setq n (ssname S_list i))                        ;取出选择集中第i个文字的对象名称
  11.                 (setq str (cdr (assoc 1 (entget n))))                ;提取当前文字的内容
  12.                 (setq SUM (+ SUM (atof str)))                        ;累加
  13.                 (setq i (1+ i)))                                ;更新循环标志
  14.         (princ "\n功率总和为:")                                ;提示将要输出的内容
  15.         (princ SUM)                                                ;输出求和结果        
  16.         (princ "kW")                                        ;输出单位        
  17.         (prin1)
  18. )


可以参考下这个,了解下通配符*
“A*”:前缀为A;“*A”:后缀为A;“*A*”:包含A;
 楼主| 发表于 2021-10-5 20:28:15 | 显示全部楼层
不会用你这个呀?能帮我加到我的那个里面嘛?
 楼主| 发表于 2021-10-6 15:53:30 | 显示全部楼层
竹天 发表于 2021-9-30 09:26
可以参考下这个,了解下通配符*
“A*”:前缀为A;“*A”:后缀为A;“*A*”:包含A;

在吗?大神
发表于 2021-11-15 15:20:21 | 显示全部楼层
本帖最后由 竹天 于 2021-11-15 15:25 编辑
  1. (defun C:dwf;声明命令名称--dwf
  2.   (/ S_list sl i sum n str);声明局部变量
  3.   (setq S_list (ssget '((0 . "*TEXT");限定被选择的对象为:文字(包括多行文字和天正文字)
  4.                         (1 . "*dw21193*,*DW21193*,*dW21193*,*Dw21193*"))));限定内容:包含“dw21193”(不分大小写)
  5.   (setq sl (sslength S_list));读取选择集中的对象个数
  6.   (princ "\n包含“dw21193”(不分大小写)的文字共有:");提示将要输出的内容
  7.   (princ sl);输出总数
  8.   (princ "处")
  9.   (prin1)
  10. )

试试这个,前一段时间论坛登不上也一直在忙,大神大师不敢当,我就一刚入门的小白,相互学习吧
 楼主| 发表于 2022-4-25 17:23:21 | 显示全部楼层
竹天 发表于 2021-11-15 15:20
试试这个,前一段时间论坛登不上也一直在忙,大神大师不敢当,我就一刚入门的小白,相互学习吧

我试下,谢谢您
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-14 14:45 , Processed in 0.191595 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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