CAD中多个封闭区域的总面积计算插件

我在网上找到一个程序,如下:;求spline,polyline,lwpolyline,arc面积(defunc:ss()(setq总面积0)(setq总亩数0)(setq... 我在网上找到一个程序,如下:
;求spline,polyline,lwpolyline,arc面积
(defun c:ss ()
(setq 总面积 0)
(setq 总亩数 0)
(setq 面积 0)
(setq 总周长 0)
(setq 周长 0)
(setq k 0)
(setq a nil)
(setq a (ssget))
(setq Len (sslength a))
(repeat Len
(setq name (ssname a k))
(setq ent1 (entget name))
(setq na (assoc 0 ent1))
(setq na (cdr na))
(if (= na "SPLINE")
(progn
(command "area" "o" name)
(setq 面积 (getvar "area"))
(setq 总面积 (+ 总面积 面积))
(setq 周长 (getvar "perimeter"))
(setq 总周长 (+ 总周长 周长))
)
)
(if (= na "POLYLINE")
(progn
(command "area" "o" name)
(setq 面积 (getvar "area"))
(setq 总面积 (+ 总面积 面积))
(setq 周长 (getvar "perimeter"))
(setq 总周长 (+ 总周长 周长))
)
)
(if (= na "ARC")
(progn
(command "area" "o" name)
(setq 面积 (getvar "area"))
(setq 总面积 (+ 总面积 面积))
(setq 周长 (getvar "perimeter"))
(setq 总周长 (+ 总周长 周长))
)
)
(if (= na "CIRCLE")
(progn
(command "area" "o" name)
(setq 面积 (getvar "area"))
(setq 总面积 (+ 总面积 面积))
(setq 周长 (getvar "perimeter"))
(setq 总周长 (+ 总周长 周长))
)
)
(if (= na "ELLIPSE")
(progn
(command "area" "o" name)
(setq 面积 (getvar "area"))
(setq 总面积 (+ 总面积 面积))
(setq 周长 (getvar "perimeter"))
(setq 总周长 (+ 总周长 周长))
)
)
(if (= na "LINE")
(progn
(command "area" "o" name)
(setq 面积 (getvar "area"))
(setq 总面积 (+ 总面积 面积))
(setq 周长 (getvar "perimeter"))
复制以下内容到记事本:

(setq 总周长 (+ 总周长 周长))
)
)
(if (= na "LWPOLYLINE")
(progn
(command "area" "o" name)
(setq 面积 (getvar "area"))
(setq 总面积 (+ 总面积 面积))
(setq 周长 (getvar "perimeter"))
(setq 总周长 (+ 总周长 周长))
)
)
(setq k (+ k 1))
(setq 总亩数 (/ 总面积 666.667))
)
(print (list "总周长=" 总周长))
(print (list "总面积=" 总面积 "平方米" 总亩数 "亩"))
(princ)
)

结束复制,保存文件。将文件后缀.txt更改为.lsp。OK。完成,加载应用程序(CAD快捷命令AP)。本lisp的快捷命令为:SS

但是这样计算的结果是科学计数法体现的 ,怎么编辑后是以平方米或者平方毫米显示结果的。
展开
 我来答
AI0Timothy
2014-11-07 · TA获得超过3.3万个赞
知道小有建树答主
回答量:1248
采纳率:90%
帮助的人:271万
展开全部
把后面两句
(print (list "总周长=" 总周长))
(print (list "总面积=" 总面积 "平方米" 总亩数 "亩"))
改成
(print (list "总周长=" (rtos 总周长) "米"))
(print (list "总面积=" (rtos 总面积) "平方米" (rtos 总亩数) "亩"))
如果不想在结果中看到那么多引号可以改成
(princ (strcat "\n总周长=" (rtos 总周长) "米"))
(princ (strcat "\n总面积=" (rtos 总面积) "平方米, " (rtos 总亩数) "亩"))
LG7520
2014-11-07 · TA获得超过6959个赞
知道大有可为答主
回答量:7229
采纳率:45%
帮助的人:4992万
展开全部

满意请采纳,谢谢

更多追问追答
追问
哥们我要的是CAD应用插件,不是EXCEL 的  不好意思!
追答
你确定你操作对了?

-
看看这个
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式