明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2126|回复: 6

如何求出所有边的总长

[复制链接]
发表于 2004-2-22 10:59 | 显示全部楼层 |阅读模式
现有图形如下,每个方框都是由:PLINE画出的,所以每个方框都有重复的一段边,如何总长求出(重复的留一)
 楼主| 发表于 2004-2-22 11:08 | 显示全部楼层
不好意思,图形传不上,说明一下,每个方框相邻,可能有2条边线部分重复,有可能整条线重复
发表于 2004-2-22 14:43 | 显示全部楼层
小问题,大考验。


目前还没想到理想的办法:


炸开,对同线线段合并,求合并后线条总长。恢复方框(或在前面用拷贝的办法,删除合并线条。)
发表于 2004-2-23 10:53 | 显示全部楼层
求长度的如下,论坛上有蛮多的. 但如无痕所说的好象找不到或还没有呢. ;;; program make inchina
;; by BDYCAD
;; DATA: 2003-11-01
;求選到的圖素的總長度.LSP
(DEFUN C:TEST (/ SS SS_L N LENN LEN)
(setvar "cmdecho" 0)
(setq ss (ssget))
(setq ss_l (sslength ss))
(setq n 0)
(setq lenn 0)
(repeat ss_l
(command "lengthen" (ssname ss n) "")
(setq len (getvar "perimeter"))
(setq lenn (+ len lenn))
(setq n (1+ n)))
(princ "\n你所選到的圖元的總長是")
(princ lenn)
(Princ "(mm)....")
(setvar "cmdecho"1)
(princ)) ;;---------------------------------------------------
; 精 簡 源 碼
;
(defun x_lens (ss / ss ssv lens)
(if (= nil ss)(setq ss (ssget '((0 . "*LINE,ARC,CIRCLE,ELLIPSE")))))
(setq ssv (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object)))
lens 0)
(vlax-for obj ssv
(setq lens (+ lens (vlax-curve-getdistatparam obj (vlax-curve-getendparam obj))))
)
)
发表于 2004-2-23 11:29 | 显示全部楼层
难点不是求长度,是如何处理重合,部分重合的部分,那里只能算一次长度。
 楼主| 发表于 2004-2-23 16:11 | 显示全部楼层
是的,重复的只能算一边,最好不要炸开,因为这些个方形在其它地方还用的着。
发表于 2004-2-24 09:58 | 显示全部楼层
刪除重線的帖,依無痕的方法整理一下即可


dispbbs.asp?boardID=25&ID=9163&page=5
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-17 23:41 , Processed in 0.219203 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表