本帖最后由 mandala 于 2011-3-24 23:00 编辑
xmheigou 发表于 2011-3-24 20:38 
回复 idljb 的帖子
是建筑电气的配线图,管线位置,长度不需要高的精度,何况,我只是把线段连起来用于计算 ...
搞什么搞……只是求总长度是哇……用这个吧,简单多了,还要连线干什么啊~~连起来岂非总长度就不准了?

- ;;框选线条,求总长度
- (defun c:leng (/ list1 ss n)
- (setvar "CMDECHO" 0)
- (setq list1 0)
- (if (setq ss (ssget '((0 . "*LINE"))))
- (progn (setq n 0)
- (repeat (sslength ss)
- (command ".lengthen" (ssname ss n) "")
- (setq list1 (+ (getvar "perimeter") list1)
- n (1+ n)
- ) ;_ 结束setq
- ) ;_ 结束repeat
- (princ (strcat "\n选中线条的总长度为=" (rtos list1 2)))
- (setvar "CMDECHO" 1)
- (princ)
- ) ;_ 结束progn
- ) ;_ 结束if
- ) ;_ 结束defun
|