明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 911|回复: 3

请求将已有面积周长代码增加一个立面面积

[复制链接]
发表于 2023-11-7 21:05:35 | 显示全部楼层 |阅读模式
1明经币
已有代码——面积周长

(defun C:MJZC (/  pt a b c s ss tt ttt )
(vl-load-com)
(setvar "cmdecho" 0)
(setq TTS1 (getvar "textsize"))
(setvar "textsize" 300)
(setvar "cecolor" "20")
(while
(setq pt (getpoint "\\n请点取要标注的范围内一点:"))
(command "-boundary" pt "" "")
(setq a (entlast))
(setq b (vlax-ename->vla-object a))
(setq s (vla-get-area b))
(setq ss (rtos (/ s 1000000)2 2))
(setq tt (vla-get-length b))
(setq ttt (rtos (/ tt 1000)2 2))
(command "mtext"  pt pt (strcat "面积=" ss "平米\n" "周长=" ttt "米") "")
(command "erase" a "")
)
(command "cecolor" "bylayer")
(setvar "textsize" TTS1)
(setvar "cmdecho" 1)
(princ)
)


需求是增加一个功能,运行代码后首先让输入立面高度(单位为米),然后点取标注范围后,出来的文字增加一行立面面积,
变成:“面积=xxx,周长=xxx,立面=xxx”,也就是要用周长x输入的立面高度,并且输入的立面高度带记忆功能。

截图示意

附件: 您需要 登录 才可以下载或查看,没有账号?注册
发表于 2023-11-7 21:05:36 | 显示全部楼层
yyz123121 发表于 2023-11-8 10:47
哪位帮忙看看哪里出错了,一运行就出现“错误: 参数类型错误: numberp:”

(defun C:MJZC (/  pt a b c s ...
  1. (defun C:MJZC (/  pt a b c s ss tt ttt )
  2. (vl-load-com)
  3. (setvar "cmdecho" 0)
  4. (setq TTS1 (getvar "textsize"))
  5. (setvar "textsize" 300)
  6. (setvar "cecolor" "20")
  7.         (if (not LMH)
  8.         (setq LMH (getstring "\n立面高度:"))
  9.         (setq LMH (if (/= "" (setq LMH_D (getstring (strcat "\n立面高度<" LMH ">:")))) LMH_D LMH))
  10. )
  11. (while
  12. (setq pt (getpoint "\\n请点取要标注的范围内一点:"))
  13. (command "-boundary" pt "" "")
  14. (setq a (entlast))
  15. (setq b (vlax-ename->vla-object a))
  16. (setq s (vla-get-area b))
  17. (setq ss (rtos (/ s 1000000)2 2))
  18. (setq tt (vla-get-length b))
  19. (setq ttt (rtos (/ tt 1000)2 2))
  20. (setq LMMJ (rtos (* (atof LMH) (atof  ttt)) 2 2))
  21. (command "mtext"  pt pt (strcat "面积=" ss "平米\n" "周长=" ttt "米\n" "立面=" LMMJ "平米") "")
  22. (command "erase" a "")
  23. )
  24. (command "cecolor" "bylayer")
  25. (setvar "textsize" TTS1)
  26. (setvar "cmdecho" 1)
  27. (princ)
  28. )
回复

使用道具 举报

 楼主| 发表于 2023-11-8 10:47:14 | 显示全部楼层
哪位帮忙看看哪里出错了,一运行就出现“错误: 参数类型错误: numberp:”

(defun C:MJZC (/  pt a b c s ss tt ttt )
(vl-load-com)
(setvar "cmdecho" 0)
(setq TTS1 (getvar "textsize"))
(setvar "textsize" 300)
(setvar "cecolor" "20")
        (if (not LMH)
        (setq LMH (getstring "\n立面高度:"))
        (setq LMH (if (/= "" (setq LMH_D (getstring (strcat "\n立面高度<" LMH ">:")))) LMH_D LMH))
)
(while
(setq pt (getpoint "\\n请点取要标注的范围内一点:"))
(command "-boundary" pt "" "")
(setq a (entlast))
(setq b (vlax-ename->vla-object a))
(setq s (vla-get-area b))
(setq ss (rtos (/ s 1000000)2 2))
(setq tt (vla-get-length b))
(setq ttt (rtos (/ tt 1000)2 2))
(setq LMMJ (rtos (* LMH ttt)2 2))
(command "mtext"  pt pt (strcat "面积=" ss "平米\n" "周长=" ttt "米\n" "立面=" LMMJ "平米") "")
(command "erase" a "")
)
(command "cecolor" "bylayer")
(setvar "textsize" TTS1)
(setvar "cmdecho" 1)
(princ)
)
回复

使用道具 举报

 楼主| 发表于 2023-11-8 17:06:24 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-27 07:32 , Processed in 0.172143 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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