带pref的数字求和
尊敬的各位:,我得到了一个lisp代码,它可以很好地用于带后缀字母的数字求和,但不适用于带前缀字母的数字。请查看附件和下面的lisp代码。
(定义C:ADCC(/cpent elist en ip newtext pt ss sum sumtxt)
(原理“\n\t\t>>选择文本以获取摘要>>>”)
(如果
;;在屏幕上选择文字/多行文字:
(setq ss(ssget’((0。“*TEXT”)))
;; 如果选中,则:
(程序
;; 存储第一个文本实体,以便进一步使用:
(setq cpent(ssname ss 0))
;; 将初始和设置为零:
(setq和0。)
;; 通过选定文本/多文本循环:
(虽然
;; 获取所选内容中的第一个文本:
(setq en(ssname ss 0))
;; 获取它们的实体列表:
(setq elist(entget en))
;; 从实体列表中按键1获取文本字符串:
(setq txt(cdr(assoc 1 elist)))
;; 创建输出字符串:
(setq sumtxt
;; 连接字符串:
(strcat)
;; 将数字转换为字符串:
(实时操作系统
;; 将文字的数字值相加:
(setq sum(+(atof txt)sum))
;; 2表示公制单位(3表示工程):
2
;; 通过电流设置精度:
(getvar“dimdec”))
)
;; 从选择集中删除实体:
(ssdel en ss)
)
;; 在命令行中显示消息:
(princ(strcat“\nSumm=“sumtxt”)
(setq pt(getpoint“\n指定新文本位置:”)
;; 获取存储实体的插入点:
(setq ip(cdr(assoc 10(entget cpent)))
;; 将文本实体复制到新的目标点:
(命令“_copy”cpent“”ip pt)
;; 获取上次创建的实体:
(setq newtxt(entlast))
;; 获取它们的实体列表:
(setq elist(entget newtext))
;; 使用新文本字符串修改实体列表:
(entmod(subst(cons 1 sumtxt)(assoc 1 elist)elist)
;; 更新更改:
(entupd NewText)
)
)
(普林斯)
)
(princ“\n带STX的START命令…”)
(普林斯)
这里还有两个AutoLISP论坛,您还没有在其中发布。
http://www.autolisp.com/forum/autocad/autolisp
https://www.theswamp.org/index.php?board=2.0 非常感谢,先生。 但是我的组织屏蔽了这些网站,所以无法发布。
页:
[1]