Tharwat 发表于 2022-7-5 17:29:51

 
只要改变。
 


(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)

Mohammed Elgama 发表于 2022-7-5 17:35:12

哇,这真的很有用,非常感谢你,我不想傻了,但最后一个忙,我们怎么能让它用新的测量值替换旧文本,而不是将测量值添加到现有的测量值中

Tharwat 发表于 2022-7-5 17:37:38

 
不客气。
 
试试这个修改过的,以满足您的需要。。。。
 

(rtos lens 2 5)

Mohammed Elgama 发表于 2022-7-5 17:40:42

谢谢兄弟

Tharwat 发表于 2022-7-5 17:44:19

 
不客气

Mohammed Elgama 发表于 2022-7-5 17:47:57

我们如何将长度单位改为米?
谢谢
 

Tharwat 发表于 2022-7-5 17:51:25

试试这个。。。
 

(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)
)

folderdash 发表于 2022-7-5 17:53:35

 
谢谢这很有效,还有一件事。如果可能的话,我想把精度改为3位数?还有后缀(米)?

Tharwat 发表于 2022-7-5 17:56:48

folderdash 发表于 2022-7-5 17:58:32

 
Thanks.That works and one thing more.i wanna change the precision to 3 digits if possible?and a suffix (meter)?
页: 1 [2]
查看完整版本: 测量a线的Lisp例程