明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2221|回复: 13

关于面积的求接

  [复制链接]
发表于 2005-1-10 09:20:00 | 显示全部楼层 |阅读模式
一个图形中由若干线围成若干小的封闭区间,现想求出每个小区间的面积,请问有什么办法一次就可以得到吗,我见到了论坛里的帖子,那要求每个小区间都点一次啊
发表于 2005-1-10 09:24:00 | 显示全部楼层
;;;在ZZXXQQ的帮助下完成的。你自己试试,是不是合适你。 ;;;选封闭图形内一点计算并标注
(defun c:symj (/ are_cm are_pt are_a are_txt)
(setq are_cm (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setq are_h (are_user 1 "" "\n设定字体高度:" are_h))
(command "_.undo" "be")
(while
(setq are_pt (getpoint "\n请点取要标注的范围内一点:"))
(command "-boundary" "A" "O" "P" "I" "Y" "B" "E" "" are_pt "")
(command "area" "o" (entlast))
(command "erase" (entlast) "")
(setq are_a (getvar "area"))
(setq are_txt (strcat (rtos (/ are_a 1000000) 2 2) "M"))
(command "text" "j" "c" are_pt are_h "0" are_txt)
(princ "\n该范围的面积为A=")
(princ (rtos (/ are_a 1000000) 2 4))
(princ "M(")
(princ (rtos are_a 2 3))
(princ "mm)。")
)
(command "_.undo" "e")
(setvar "cmdecho" are_cm)
(princ)
) (defun are_user (bit kwd msg def / inp)
(if def
(setq msg (strcat "\n" msg "<" (rtos def 2) ">: ")
bit (* 2 (fix (/ bit 2))))
(setq msg (strcat "\n" msg ": ")))
(initget bit kwd)
(setq inp (getreal msg))
(if inp inp def)
)
 楼主| 发表于 2005-1-10 14:45:00 | 显示全部楼层
还是要一个一个的点啊,我想能不能全选,自动判断所有的封闭区间,并标注面积
发表于 2005-1-10 16:02:00 | 显示全部楼层
你自己在上面的基础上改一下就行了,我有空时再帮你改。
发表于 2005-1-11 10:43:00 | 显示全部楼层
我已改好了,楼主看看合不合适。若合适的话,你谢谢ZZXXQQ吧,关于面积这系统变量的问题是靠他帮我解决的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2005-1-18 10:41:00 | 显示全部楼层
和我想的还是不一样


我想是全选后把每个小闭合区间的面积分别标出来
发表于 2005-1-18 11:10:00 | 显示全部楼层
如果各个闭合区间都是用PLINE画出的,可以用下面的过滤方式得到选择集:


(ssget "X" '((0 . "LWPOLYLINE") (70 . 1)))


然后再对选择集进行操作计算,只是计算的难点是您要写文字的点在哪儿。如果在闭合区间的中间,不太好计算。退一步,可以用封闭曲线的起点作为写文字的点。楼主可以自己根据上面的思路写个程序试一下。
 楼主| 发表于 2005-1-19 10:31:00 | 显示全部楼层
这个难点就在所有的线只是line线,他们只有平面相交的关系,如何确定有多少个小的封闭面积我现在就解决不了
发表于 2005-1-19 11:41:00 | 显示全部楼层
1.copy 换 图层


2.pedit-&gt;m 形成 pline
发表于 2005-1-19 11:55:00 | 显示全部楼层
其实上面的例子都是用BOUNDARY生成一个闭合多边形后计算面积。


BOUNDARY生成多边形时,在线条多、顶点多的情况下,少量锐角会出现新生成的线与原来的线条不重合,有时还会不能正确生成多边形。


上面的问题实质是拓扑关系的构建。网上已经出现可以自己创建拓扑的程序了(我没有用过)。AutoCAD Map(或者LAND)都有构建拓扑的功能。


具体步骤如下:


进行图形图面清理。


建立拓扑结构。


读出每个质心(就是LABEL)的面积。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-29 18:22 , Processed in 0.173547 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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