明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1908|回复: 3

[已解答] 求取面积

[复制链接]
发表于 2014-9-19 19:45 | 显示全部楼层 |阅读模式
lisp如何通过选取内部点求取任意封闭区域的面积,比如区域为相交的直线或圆弧?就像图案填充自动查找边界,求取由边界包围部分的面积?
发表于 2014-9-19 20:21 | 显示全部楼层
用Bpoly
第二行補字
发表于 2014-9-20 02:35 | 显示全部楼层
(defun c:dmj()
  (setvar "cmdecho" 0)
(setq cth (rtos (getvar "textsize")))
    (setq TextHeight (getdist (strcat "\n输入标注文字高度 < " cth " > : ")))
    (if (= TextHeight nil)(setq TextHeight cth))
(command "style" "tukou" "黑体" "0" "" "0" "" "")
(command "layer" "M" "面积单注" "C" "1" "" "LT" "CONTINUOUS" "" "");设置一个标注图层
  (defun maketext (txt pt)                ; 生成文字子函数
    (entmake (list '(0 . "TEXT")
                   (cons 62 3)
                   (cons 10 pt)
                   (cons 40 TextHeight)
                   (cons 1 txt)
                   '(41 . 0.6)
             )
    )
  )
  (setq pt (getpoint "\n选取点:"))
  (while pt
    (setvar "cecolor" "1")
    (command "bpoly" pt "")
    (setq en (entlast))
    (if (/= en nil)
      (progn
(command "area" "o" en)
(setq aa (getvar "area"))
(redraw en 3)
(setq bb (strcat "S=" (rtos aa 2 2 )"㎡"))
(setq pt1 (getpoint "请指定面积书写位置:"))
(command "_text" pt1 TextHeight "" bb 0)
)
      )
    (entdel en)
    (setvar "cecolor" "bylayer")
    (setq pt (getpoint "\n选取点:"))
   )
  (prin1)
  )
 楼主| 发表于 2014-9-20 10:25 | 显示全部楼层
非常感谢lsjj 和香田里浪人的指导。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-4 06:03 , Processed in 0.153157 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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