求教!!!求个思路关于如何孤岛分析计算闭合面积的
如图,求个思路,关于如何利用孤岛分析之类的方法计算图中最外围的闭合面积扣掉里面闭合的中空面积。 如下程序供参考(defun c:mjc ()
(princ "\n ****本程序为求封闭的大物体与其包含的多个封闭小物体的面积之差****")
(princ "\n 请选择封闭物体(圆、多边形)....")
(setq ss (ssget '((0 . "CIRCLE,LWPOLYLINE"))))
(setq i 0
lis '()
)
(repeat (sslength ss)
(setq ent (ssname ss i))
(setq obj (vlax-ename->vla-object ent))
(setq s (list (vla-get-Area obj)))
(setq lis (append s lis))
(setq i (1+ i))
)
(setq lis (vl-sort lis '>))
(setq es (eval (cons '- lis)))
(command "_.TEXT" PAUSE "" "" (strcat "大面积 = " (rtos (car lis) 2 2)"㎡"))
(foreach x (cdr lis) (command "_.TEXT" "" (strcat "内部面积=" (rtos x 2 2)"㎡")))
(command "_.TEXT" "" (strcat "面积差 = " (rtos es 2 2)"㎡"))
(princ)
)
生成两个面域Reg1和Reg2,然后将Reg1和Reg2 进行Union布尔运算,得到新面域,通过判断新面域的面积S和Reg1 的面积S1 +reg2的面积S2 之间的大小关系来判断Reg1和Reg2两者之间的相互关系!
找了很久,楼上的程序有改进的空间。
天喻cad在R14版的年代就已经可以,
只需鼠标给一个点,就自动求出孤岛面积,很好用,可惜没有源码,不能二次开发
大侠们出手吧 本帖最后由 kblh 于 2014-7-3 07:06 编辑
用了部分明经上的源码,所以我也源码发上来
高手!非常感谢 顶~~~~~~~~~~~~~~~~~~~~~~~~~
页:
[1]