明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2915|回复: 5

[求助]如何在LISP中求面积?

[复制链接]
发表于 2005-1-1 12:39:00 | 显示全部楼层 |阅读模式
如何在LISP中实现对一封闭的多义线或圆实现求面积呀?函数怎么写呀?
发表于 2005-1-1 21:40:00 | 显示全部楼层
xstlf您好!在元旦您还上网问问题呀?下面是两个小程序:
  1. ;选封闭图形内一点计算
  2. (defun c:area2 ()
  3. (setvar "cmdecho" 0)
  4. (command "_.undo" "be")
  5. (setq pt (getpoint "\n请点取要标注的范围内一点:"))
  6. (command "-boundary" pt "")
  7. (command "area" "o" (entlast))
  8. (command "erase" (entlast) "")
  9. (setq area (getvar "area"))
  10. (command "text" "j" "c" pt "5" "0" (rtos area 2 3))
  11. (princ "\n该范围的面积为A=")
  12. (princ (rtos (/ area 1000000) 2 4))
  13. (princ "M(")
  14. (princ (rtos area 2 3))
  15. (princ "mm)。")
  16. (command "_.undo" "e")
  17. (setvar "cmdecho" 1)
  18. (princ)
  19. )
  1. ;选择封闭曲线计算
  2. (defun c:area3 ()
  3. (setvar "cmdecho" 0)
  4. (command "_.undo" "be")
  5. (princ "\n请选择封闭曲线 :")
  6. (setq  ss (ssget '((0 . "LWPOLYLINE,CIRCLE"))))
  7. (setq sl (sslength ss) i 0)
  8. (repeat sl
  9.   (setq ent (ssname ss i) i (1+ i))
  10.   (command "area" "o" ent)
  11.   (setq area (getvar "area"))
  12.   (princ "\n该范围的面积为A=")
  13.   (princ (rtos (/ area 1000000) 2 4))
  14.   (princ "M(")
  15.   (princ (rtos area 2 3))
  16.   (princ "mm)。")
  17. )
  18. (command "_.undo" "e")
  19. (setvar "cmdecho" 1)
  20. (princ)
  21. )
 楼主| 发表于 2005-1-2 14:12:00 | 显示全部楼层
谢谢,用,getvar函数还有此妙用呀,呵呵。
 楼主| 发表于 2005-1-9 17:37:00 | 显示全部楼层
现在才真正搞明白,原来area既是命令又是系统变量呀,呵呵。
发表于 2005-8-5 18:29:00 | 显示全部楼层

如果一个端点一个端点地选呢?我怎么实现不了?没有等到选,就直接要求输入输出数据的放置点了……

发表于 2005-8-5 21:15:00 | 显示全部楼层

可以先生成面域呀,再AREA OBJECT 点击即可呀

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-17 21:33 , Processed in 0.246511 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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