明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3043|回复: 5

自动标注面积代码的问题

[复制链接]
发表于 2007-4-7 00:53:00 | 显示全部楼层 |阅读模式
请教下面的代码运行中会出现
“指定第一个角点或 [对象(O)/加(A)/减(S)]: object
选择对象:
面积 = 666.6670,周长 = 153.3334
命令: MJ 未知命令“MJ”。按 F1 查看帮助。
命令:”
另外有没有办法让平方米和亩都写在一起?
  1. (defun c:mj ()
  2. ;;;; get area A1
  3.   (setq p1 (getpoint "\n请在要标注封闭区域内点一下:"))
  4.   (command "-boundary" p1 "")
  5.   (setq bj (entlast))
  6.   (command "area" "object" bj "")
  7.   (setq mj (rtos (getvar "area") 2 3))
  8.   (setq area1 (strcat  mj "m2^"))
  9. ;;;;  change to A2
  10. (setq ans (* (/ (atof area1) 10000.0) 15.0))
  11. (setq ans (rtos ans 2 3))
  12. (setq area2 (strcat ans "mu"))
  13. ;;;; write answer
  14.   (setq pt1 (getpoint "\n请选择标注文字的位置:(平方米)"))
  15. (command "text" pt1 "" "" area1)
  16. (setq pt2 (getpoint "\n请选择标注文字的位置:(亩)"))
  17. (command "text" pt2 "" "" area2)
  18. (setvar "osmode" oldos)
  19. (setvar "cmdecho" 1)
  20. (setq *error* olderr)
  21. (princ)
  22. )

哪个哥哥来帮我优化一下嘛!谢谢
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2007-4-7 06:29:00 | 显示全部楼层
本帖最后由 作者 于 2007-4-7 15:12:56 编辑

修改了一下:
  1. (defun c:mj ()
  2. ;;;; get area A1
  3.    (setq os (getvar "osmode"))
  4.    (setq cmd (getvar "cmdecho"))
  5.    (setvar "osmode" 0)
  6.    (setvar "cmdecho" 0)
  7.    (setq p1 (getpoint "\n请在要标注封闭区域内点一下:"))
  8.    (command "-boundary" p1 "")
  9.    (setq bj (entlast))
  10.    (command "area" "object" bj)
  11.    (entdel bj)
  12.    (setq mj (rtos (getvar "area") 2 3))
  13.    (setq area1 (strcat mj "{\\fSimSun|b0|i0|c134|p2;平方米 (}"))
  14. ;;;;  change to A2
  15.    (setq ans (* (/ (atof area1) 10000.0) 15.0))
  16.    (setq ans (rtos ans 2 3))
  17.    (setq area2 (strcat area1 ans "{\\fSimSun|b0|i0|c134|p2;亩)}"))
  18. ;;;; write answer
  19.    (entmake (list '(0 . "MTEXT")
  20.                  '(100 . "AcDbEntity")
  21.                  '(100 . "AcDbMText")
  22.                  (cons 10 p1)
  23.                  (cons 40 5)
  24.                  (cons 41 0)
  25.                  (cons 71 0)
  26.                  (cons 50 0)
  27.                  '(72 . 5)
  28.                  (cons 1 area2)
  29.             )
  30.   )
  31.    (setvar "osmode" os)
  32.    (setvar "cmdecho" cmd)
  33. ;;;(setq *error* olderr)
  34.    (princ)
  35. )
 楼主| 发表于 2007-4-7 12:06:00 | 显示全部楼层
本帖最后由 作者 于 2007-4-7 12:10:06 编辑

老问题已经解决,新问题出现!我试过把m2^ 和mu换成平方米和亩,显示出来实在太难看了!

现在我想在一行里用mtext来把AREA1和AREA2的单位也给弄出来(平方米  亩)!定义字体为宋体字,大小为5,角度为0。

如:1000平方米(15亩)

 或者1000m2 (15亩)

弄了半天总觉得不满意,请高手帮忙!

发表于 2007-4-7 15:13:00 | 显示全部楼层
2楼已修改过了,你试试
 楼主| 发表于 2007-4-8 15:06:00 | 显示全部楼层

  (setq area1 (strcat mj "{\\fSimSun|b0|i0|c134|p2;平方米 (}"))

这一句?看都看不懂,第一次见到

我是新手

发表于 2013-1-28 16:40:04 | 显示全部楼层
为何不把“平方米”改成“㎡”不是更好看?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-1 06:33 , Processed in 0.181103 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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