明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1708|回复: 6

[求助]关于字体的字符串到底怎么提取呀?老师请指教。

[复制链接]
发表于 2004-12-31 10:35:00 | 显示全部楼层 |阅读模式
下面是我自己编的一段有问题的查找字符串的小函数。字体里字符串的概念不懂呀。老师请指教。多谢,顺便祝大家元旦快乐!! (defun c:mctj ()
(setq mctj_s (ssget '((0 . "text"))))
(setq n (sslength mctj_s))
(setq i 0 num 0)
(setq mctj_txt (getstring "\n输入要查找的门窗编号:"))
(while (< i n)
(setq txt (assoc 1 (ssname mctj_s i)))
(if (= mctj_txt txt)
(setq num (+ num 1))
)
(setq i (+ i 1))
)
(princ "\n门窗"mctj_tst"的数量为(rtos num 2 0)")
(princ)
)
发表于 2004-12-31 11:08:00 | 显示全部楼层
“TEXT”是不是 就只有编号,还是编号只是“TEXT”的一部分?


编号有统一的关键字没有?
发表于 2004-12-31 11:59:00 | 显示全部楼层
上面的程序相当于 (setq mctj_txt (getstring "\n输入要查找的门窗编号:"))
(setq mctj_s (ssget (list '(0 . "text")(cons 1 mctj_txt))));更多的内容请看ssget的帮助,以及有关通配符的知识。 可是跟字体一点关系都没有啊。
发表于 2004-12-31 12:03:00 | 显示全部楼层
这儿错了!



(setq txt (assoc 1 (ssname mctj_s i)))


应改为:


(setq txt (cdr (assoc 1        (entget (ssname mctj_s i)))))
发表于 2004-12-31 13:09:00 | 显示全部楼层
试试这个:
  1. (defun c:mctj (/ ss i num mctj_txt s1 txt nums)
  2.    (setq  ss   (ssget '((0 . "TEXT")))
  3.   i   -1
  4.   num   0
  5.   mctj_txt (strcase (getstring "\n输入要查找的门窗编号:"))
  6.    )
  7.    (princ "ok1")
  8.    (while (setq s1 (ssname ss (setq i (1+ i))))
  9.        (setq txt (strcase (dxf 1 (entget s1))))
  10.        (if  (= mctj_txt txt)
  11.            (setq num (1+ num))
  12.        )
  13.    )
  14.    (setq
  15.        nums (strcat "门窗 " mctj_txt " 的数量为 " (rtos num 2 0) " 。")
  16.    )
  17.    (princ "\n")
  18.    (princ nums)
  19.    (princ)
  20. )
  21. (defun dxf (code elist) (cdr (assoc code elist)))
发表于 2004-12-31 13:16:00 | 显示全部楼层
其实三楼的两行LISP语句就能达到楼主的要求,不用写那么复杂。
 楼主| 发表于 2004-12-31 14:31:00 | 显示全部楼层
谢谢楼上的各位老师,不但帮我解决了门窗统计的事,也让我学了一招..每人一朵鲜花,作为元旦贺礼,呵呵,再次谢谢。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-17 23:52 , Processed in 0.155787 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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