明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1454|回复: 8

[源码] 面积统计调整小数点

[复制链接]
发表于 2015-8-12 01:20:17 | 显示全部楼层 |阅读模式



如同上图,面积统计是10平方米,我在站内找到下面一段源码,但出现10000000.00的统计,如何调整好下面的源码,能正确显示面积?

(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.8)
             )
    )
  )
  (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 "面积=" (rtos aa 2 2 )"㎡"))
(setq pt1 (getpoint "请指定面积书写位置:"))
(command "_text" pt1 TextHeight "" bb 0)
)
      )
    (entdel en)
    (setvar "cecolor" "bylayer")
    (setq pt (getpoint "\n选取点:"))
   )
  (prin1)
  )

本帖子中包含更多资源

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

x

点评

(setq bb (strcat "面积=" (rtos (* aa 1e-6) 2 2 )"㎡"))  发表于 2015-8-12 08:15
发表于 2015-8-12 04:28:46 | 显示全部楼层
(setq bb (strcat "面积=" (rtos aa 2 2 )"㎡"))
改为(setq bb (strcat "面积=" (rtos (/ aa 1000000) 2 2 )"㎡"))试试。

点评

尽量用乘法*如果都是整数,那么有可能是不正确的结果。ep.(/ 3 2)  发表于 2015-8-12 15:42
 楼主| 发表于 2015-8-12 15:29:42 | 显示全部楼层
囗Peanut囗 发表于 2015-8-12 04:28
(setq bb (strcat "面积=" (rtos aa 2 2 )"㎡"))
改为(setq bb (strcat "面积=" (rtos (/ aa 1000000) 2 2 ...

非常感谢,安照你的可以显示面积了。谢谢!
 楼主| 发表于 2015-8-12 15:37:08 | 显示全部楼层
谢谢xyp1964 !解决了问题,达到目的有几种搞法,真是学海无涯啊!
发表于 2015-8-12 21:55:40 | 显示全部楼层
wngxb 发表于 2015-8-12 15:37
谢谢xyp1964 !解决了问题,达到目的有几种搞法,真是学海无涯啊!

凭什么谢xyp1964?1964帮你解决什么问题?

点评

这也争?!  发表于 2015-8-13 08:08
 楼主| 发表于 2015-8-12 22:54:21 | 显示全部楼层
香田里浪人 发表于 2015-8-12 21:55
凭什么谢xyp1964?1964帮你解决什么问题?

他回复在我的问题下面,注意小字!
发表于 2015-8-14 04:20:49 | 显示全部楼层
谢谢edata和院长~


setq bb (strcat "面积=" (rtos (* aa 1e-6) 2 2 )"㎡")),第一个2是数值类型,第二个2是精确小数点后几位,楼主看需求选择精确位数吧。
 楼主| 发表于 2015-8-14 09:19:57 | 显示全部楼层
囗Peanut囗 发表于 2015-8-14 04:20
谢谢edata和院长~

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

本版积分规则

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

GMT+8, 2024-11-6 07:55 , Processed in 0.187782 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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