只要改变。
这
(defun c:test (/ ss ss1 e d lens adds e1 )
; Tharwat 14.02.2011
(setq lens 0)
(if (setq ss (ssget "_:L" '((0 . "LINE"))))
(progn
(repeat (setq i (sslength ss))
(while
(setq ss1 (ssname ss(setq i (1- i))))
(setq e (entget ss1))
(setq d (distance (cdr (assoc 10 e))(cdr (assoc 11 e))))
(setq lens (+ lens d))
))
(setq adds (entsel "\n Select Text to add lengths to :"))
(entupd (cdr (assoc -1 (entmod (subst
(cons 1 (strcat (cdr (assoc 1 (setq e1 (entget (car adds)))))
" = " (rtos lens 4 5)))
(assoc 1 e1) e1 )))))
)
(princ "\n No lines selected")
)
(princ)
)
到
(rtos lens 4 5)
哇,这真的很有用,非常感谢你,我不想傻了,但最后一个忙,我们怎么能让它用新的测量值替换旧文本,而不是将测量值添加到现有的测量值中
不客气。
试试这个修改过的,以满足您的需要。。。。
(rtos lens 2 5) 谢谢兄弟
不客气 我们如何将长度单位改为米?
谢谢
试试这个。。。
(defun c:test (/ ss i sn e e1 ent lens)
; Tharwat 07.10.2012 ;;;
(setq lens 0)
(prompt "\n Select lines ...")
(if (and (setq ss (ssget "_:L" '((0 . "LINE"))))
(progn
(prompt
"\n Select text object to replace lengths of lines :"
)
(setq e (ssget "_+.:S:L" '((0 . "*TEXT"))))
)
)
(progn
(repeat (setq i (sslength ss))
(setq sn (ssname ss (setq i (1- i))))
(setq ent (entget sn))
(setq
lens (+ lens
(distance (cdr (assoc 10 ent)) (cdr (assoc 11 ent)))
)
)
)
(entupd
(cdr
(assoc
-1
(entmod
(subst
(cons
1
(strcat "Lengths = "
(rtos lens 2 5)
)
)
(assoc 1 (setq e1 (entget (ssname e 0))))
e1
)
)
)
)
)
)
(cond ((not ss) (princ "\n No lines selected"))
(t (princ "\n Selection is not Text or nothing selected"))
)
)
(princ)
)
谢谢这很有效,还有一件事。如果可能的话,我想把精度改为3位数?还有后缀(米)?
Thanks.That works and one thing more.i wanna change the precision to 3 digits if possible?and a suffix (meter)?
页:
1
[2]