lgzdyzj 发表于 2006-5-8 11:43:00

[求助]如何快速统计多条线段的总长度

<P>请高手指点如何快速统计多条线段的总长度,</P>
<P>用多条曲线和线段围成的闭合线段,我是先创建面域,再用list求周长,</P>
<P>但有时候创建不了面域,该怎么办?还有其他方法求总长度吗?</P>

lgzdyzj 发表于 2006-5-9 10:12:00

<P>不是吧,没人知道吗?高手呢?帮帮忙啊</P>

zara 发表于 2006-5-9 10:36:00

如果不能 Join (连接) 为 Polyline (多义线) 而直接通过 List (查询) 命令来获取, 也可以通过 lsp 程序来进行统计累加. 可以到 lisp 版去看看

lgzdyzj 发表于 2006-5-10 08:38:00

<P>LIST命令好象只能显示2条长度,而且不会累计。</P>
<P>LSP程序不太懂怎么操作,还是谢谢你,我去试试看,不行再问你啊</P>

lgzdyzj 发表于 2006-5-10 09:41:00

没找到啊,你有吗?发个上来好吗?

zara 发表于 2006-5-10 09:50:00

List 可以显示整个多义线的长度的. Lisp 版找不到的话, 可以发帖提问的, 那里一般很快就会有代码提供

fhy94 发表于 2006-5-10 10:10:00

思路--&gt;线变复线--&gt;查询。或使用天正软件。

lgzdyzj 发表于 2006-5-11 08:17:00

能详细点吗?

阳光动力 发表于 2012-6-20 15:17:43

;;;-----------------------------------------------------
;;;程序名:zz.LSP
;;;功能:计算线段和多义线的长度
;;;-----------------------------------------------------
(princ "\n程序:统计线段长度 命令:zz")
(defun C:zz (/ CURVE TLEN SS N SUMLEN)
(vl-load-com)
(setq SUMLEN 0)
(setq SS (ssget '((0 . "CIRCLE,ELLIPSE,LINE,*POLYLINE,SPLINE,ARC"))))
(setq N 0)
(repeat (sslength SS)
(setq CURVE (vlax-ename->vla-object (ssname SS N)))
(setq TLEN (vlax-curve-getdistatparam CURVE (vlax-curve-getendparam CURVE)))
(setq SUMLEN (+ SUMLEN TLEN))
(setq N (1+ N))
)
(princ (strcat "\n共选择 " (itoa (sslength SS)) " 条线段,线段总长:" (rtos SUMLEN 2 0) "毫米。"))
(princ)
)
页: [1]
查看完整版本: [求助]如何快速统计多条线段的总长度