求教
求教:请问如何获得多行文字编辑器编写的内容。我打算直接选取多行文字(用MTEXT编写的数字)。计算加和。但是不知道如何获取里面的数值。请大虾指教。 (cdr (assoc 1 (entget (car (entsel)))));可能会有一些格式 谢谢斑竹。我试试。 顺便问一下,为什么我用MTEXT写入数据(比如10,20,30,中间逗号为回车)。用命令获取的时候只能读第一个数据10?不能计算后面的20,30。 不会啊, 谢谢斑竹。我的意思是要获取文本里面的数值,比如运行mtext输入10回车20回车30,然后运行我的程序,选择这些文字要求算出和来,但是每次只能算出10来。下面是源程序,希望斑竹抽空瞅瞅,不胜感激。
(defun c:jszl()<BR> (setvar "cmdecho" 0)<BR> (setvar "blipmode" 0)<BR> (setq OS (GETVAR "OSMODE")) ;设置捕捉关闭<BR> (setvar "OSMODE" 0)
(princ "\n选取数字")
(setq ss (ssget))<BR> (setq i 0)<BR> (setq S 0)<BR> (setq SM 0)<BR> (repeat (sslength ss)<BR> (setq ssn (ssname ss i))<BR> (setq ssdata (entget ssn))<BR> (setq sstyp (cdr (assoc 0 ssdata))) <BR> (if (= sstyp "MTEXT") ;文字样式,为MTEXT,假若为TEXT书写改为TEXT<BR> (progn<BR> (setq SM (1+ SM))<BR> (setq txt (cdr (assoc 1 ssdata)))<BR> (setq X (atof txt))<BR> (setq S (+ S X))<BR> )<BR> ) ;if结束括号<BR> (setq i (1+ i)) <BR> )<BR> (setq chksty (tblsearch "style" "技术要求"))<BR> (if (= chksty nil)<BR> (command "style" "技术要求" "ysr,hztxt" "" 0.75 "" "" "")<BR> )<BR> <BR> (setq TZ (GETVAR "TEXTSIZE")) ;获取原文字高度<BR> (setvar "TEXTSIZE" 5) ;确定文字高度<BR> (setq A0 (getpoint"输入的中心点:"))<BR> (command "text" A0 "" 0 (strcat "所选" (rtos SM 2) "个数据的和是=" (rtos S 2 1)))<BR> (setvar "OSMODE" os)<BR> (setvar "TEXTSIZE" TZ) ;恢复原文字高度<BR>)<BR>(prompt"\n命令提示符<<jszl>>")<BR>(prin1) 我前面说了,提取出来的文本会有一些格式,如我的图中提取出来的就是10\\P20\\P30,这里的<A href="file://\\p" target="_blank" >\\p</A>就是格式,你要去除这些格式,把你需要的内容提出来,这就是一个字符串操作的过程。。。 <BR>;文本计算器
(defun C:tad( / ss1 ssna sum ss2 x)<BR> (setq ss1 (ssget '((0 . "text")))) ;选择对象并过滤文本<BR> (setq ssna(sslength ss1))
(princ (strcat "\n 共选择了" (itoa ssna) "个数据文本。"))<BR> (setq sum 0.0 n 0 tum 0)<BR> (while (< n ssna) <BR> (setq ss2 (assoc 1 (entget (ssname ss1 n)))) ;得到第n个文本<BR> (setq x (atof (cdr ss2))) ;从点表中取得数据并转化为数字格式<BR> (setq tum (+ tum (* x x)))<BR> (setq sum (+ sum x) n (1+ n)) ;累加计算后,赋值给SUM<BR> )<BR> (princ (strcat "\n 参加计算:" (rtos n) "个" " 计算结果=" (rtos sum 2 4) " 平均值=" (rtos (/ sum ssna) 2 4) " 平方和=" (rtos tum 2 4)))<BR> (princ)<BR>)<BR> 楼上的谢谢,但是我运行你的程序还是不能对mtext命令的数值进行计算,只能炸开后才能计算。 谢谢斑竹,我明白你的意思了。谢谢!!
页:
[1]