tdl555 发表于 2022-9-5 14:09:02

俺是小白,谁能帮忙把统计的长度单位毫米为米

俺是小白,谁能帮忙把统计的长度单位毫米为米

xyp1964 发表于 2022-9-5 14:09:03

(defun c:zz ()
"统计线段长度"
(if (and (setq SS (ssget '((0 . "CIRCLE,ELLIPSE,LINE,*POLYLINE,SPLINE,ARC"))))
           (setq pt (getpoint "\n点取标注点:"))
      )
    (progn
      (setq i-1
          ll 0
      )
      (while (setq s1 (ssname ss (setq i (1+ i))))
        (setq l1 (vlax-curve-getdistatparam s1 (vlax-curve-getendparam s1))
              ll (+ ll (* l1 1e-3))
        )
      )
      (setq ll (rtos ll 2 3)
          tx (strcat "周长=" ll "m")
          nn (itoa (sslength SS))
      )
      (command "text" "mc" pt 55 0 tx)
      (princ (strcat "\n共选择 " nn " 条线段. 线段总长: " ll))
    )
)
(princ)
)

song宋_74729 发表于 2022-9-5 14:42:35

本帖最后由 song宋_74729 于 2022-9-5 22:42 编辑

(defun C:cd (/ CURVE TLEN SS N SUMLEN) (vl-load-com) (setqSUMLEN 0) (setq SS(ssget '((0 . "CIRCLE,ELLIPSE,LINE,*POLYLINE,SPLINE,ARC")))) (setq N 0) (repeat(sslength SS)     (setqCURVE (vlax-ename->vla-object (ssname SS N)))     (setqTLEN (vlax-curve-getdistatparam CURVE (vlax-curve-getendparam CURVE)        )     )     (setqSUMLEN (+ SUMLEN TLEN))     (setq N(1+ N)) ) (print(strcat "总长度:" (rtos SUMLEN 2 5))) (princ) )

试试看是不是这样

song宋_74729 发表于 2022-9-5 22:12:49

xyp1964 发表于 2022-9-5 21:10


xyp1964厉害,值得学习

tdl555 发表于 2022-9-6 20:53:35

song宋_74729 发表于 2022-9-5 14:42
(defun C:cd (/ CURVE TLEN SS N SUMLEN)(vl-load-com)   (setqSUMLEN 0)   (setq SS(ssget '((0 . "CIRC ...

谢谢你,xyp1964已经回答了哈

kfh 发表于 2022-9-9 12:00:47

xyp1964 发表于 2022-9-5 14:09


向你学习!
可标注长度并分类统计及总长吗?谢谢!

tdl555 发表于 2022-9-10 18:12:14

kfh 发表于 2022-9-9 12:00
向你学习!
可标注长度并分类统计及总长吗?谢谢!

不可以啊,你再看看论坛
页: [1]
查看完整版本: 俺是小白,谁能帮忙把统计的长度单位毫米为米