kewyst 发表于 2005-9-2 13:25:00

帮我看看这个程序(求封闭区域的面积的)

本帖最后由 作者 于 2005-9-2 14:47:17 编辑 <br /><br /> <P>下面的小程序功能为:求一个封闭区域的面积<BR>代码:<BR>(defun&nbsp;c:cxa()<BR>&nbsp;(setvar&nbsp;"cmdecho"&nbsp;0)<BR>&nbsp;(setq&nbsp;pt&nbsp;(getpoint&nbsp;"\n&nbsp;请在要计算面积的封闭区域内指定一个点&nbsp;:"))<BR>&nbsp;(setq&nbsp;ss&nbsp;(ssadd))<BR>&nbsp;(while&nbsp;pt<BR>&nbsp;&nbsp;(setvar&nbsp;"cecolor"&nbsp;1)<BR>&nbsp;&nbsp;(command&nbsp;"bpoly"&nbsp;pt&nbsp;"")<BR>&nbsp;&nbsp;(setq&nbsp;a&nbsp;(entlast))<BR>&nbsp;&nbsp;(if&nbsp;(/=&nbsp;a&nbsp;nil)<BR>&nbsp;&nbsp;&nbsp;(progn<BR>&nbsp;&nbsp;&nbsp;(command&nbsp;"area"&nbsp;"o"&nbsp;a)<BR>&nbsp;&nbsp;&nbsp;(setq&nbsp;b&nbsp;(getvar&nbsp;"area"))<BR>&nbsp;&nbsp;&nbsp;(redraw&nbsp;3)<BR>&nbsp;&nbsp;&nbsp;(princ&nbsp;(strcat&nbsp;"\n&nbsp;选区面积="&nbsp;(rtos&nbsp;b)))<BR>&nbsp;&nbsp;&nbsp;(setq&nbsp;ss&nbsp;(ssadd&nbsp;a&nbsp;ss))<BR>&nbsp;&nbsp;)<BR>&nbsp;)<BR>&nbsp;(setq&nbsp;pt&nbsp;(getpoint&nbsp;"\n&nbsp;继续选取点&nbsp;:"))<BR>)<BR>(command&nbsp;"erase"&nbsp;ss&nbsp;"")<BR>(setvar&nbsp;"cecolor"&nbsp;"bylayer")<BR>(prin1)<BR>)<BR><BR><BR>(prompt&nbsp;"\n&nbsp;***&lt;&lt;c:cxa&gt;&gt;***&nbsp;&nbsp;程序设计作者:ZG*CHEN")<BR>(prompt&nbsp;"\n&nbsp;查询封闭区域面积。命令:cxa")<BR>(prin1)<BR><BR>---------------------------------------------------------------<BR>zg*chen </P>
<P>是不是有什么问题,帮我编译一下,我生成文件怎么运行不了????</P>
<P>我的QQ是:28792959,kewyst@163.com</P>

zsh8012 发表于 2005-9-3 08:51:00

<P>有三处错误,以下程序纠正了错误。</P>
<P>(defun c:cxa( / ss pt a b)<BR>&nbsp;(setvar "cmdecho" 0)<BR>&nbsp;(setq pt (getpoint "\n 请在要计算面积的封闭区域内指定一个点 :"))<BR>&nbsp;(setq ss (ssadd))<BR>&nbsp;(while pt<BR>&nbsp; (setvar "cecolor" "red")&nbsp;&nbsp;&nbsp;&nbsp;;;;要设置成这样<BR>&nbsp; (command "bpoly" pt "")<BR>&nbsp; (setq a (entlast))<BR>&nbsp; (if (/= a nil)<BR>&nbsp;&nbsp; (progn<BR>&nbsp;&nbsp; (command "area" "o" a)<BR>&nbsp;&nbsp; (setq b (getvar "area"))<BR>&nbsp;&nbsp; (redraw a 3)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;;亮显要指明实体<BR>&nbsp;&nbsp; (princ (strcat "\n 选区面积=" (rtos b)))<BR>&nbsp;&nbsp; (setq ss (ssadd a ss))<BR>&nbsp; )<BR>&nbsp;)<BR>&nbsp;(setq pt (getpoint "\n 继续选取点 :"))<BR>)<BR>(command "erase" ss "")<BR>(setvar "cecolor" "bylayer")<BR>(prin1)<BR>)</P>
<P><BR>(prompt "\n ***&lt;&lt;c:cxa&gt;&gt;***&nbsp; 程序设计作者:ZG*CHEN")&nbsp;&nbsp; ;;;你的右)格式错误<BR>(prompt "\n 查询封闭区域面积。命令:cxa")<BR>(prin1)</P>

whm2216 发表于 2005-9-5 13:03:00

<P><A name=54571><FONT color=#000066><B>zsh8012</B></FONT></A>(帮主)您好!你能再改改此程序吗?实现如下的功能:</P>
<P>(1)多个不相交不包含的封闭多边形,各面积“相加”进行统计。</P>
<P>(2)如有两个互包含封闭多边形,进行统计面积“减掉”被包含那个封闭多边形的面积</P>

zsh8012 发表于 2005-9-5 17:26:00

<P>过几天给你</P>

jtspirit 发表于 2005-11-2 23:29:00

能不能将面积值直接标到区域里呢?

xyp1964 发表于 2005-11-3 02:14:00

<P>试试这个:</P>
<P><A href="http://bbs.mjtd.com/forum.php?mod=viewthread&tid=39447" target="_blank" >http://bbs.mjtd.com/forum.php?mod=viewthread&tid=39447</A></P>

124350440 发表于 2010-10-2 16:58:00

<p>能否将总面积之和取3位小数标注在图内指定地点啊</p>

sxh_why 发表于 2010-10-2 17:39:00

<p>还没见过能支持孤岛的源程序。</p>
<p>武汉天喻的intecad在R14版就能实现了,不知道怎样实现的?</p>

liminnet 发表于 2010-10-2 20:28:00

YNED 发表于 2025-4-7 21:30:42

{:1_1:}2018里面只有填充,没有文字
页: [1]
查看完整版本: 帮我看看这个程序(求封闭区域的面积的)