明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2114|回复: 5

[源码] 发个xy坐标标注,应急用~

[复制链接]
发表于 2014-10-20 15:29:42 | 显示全部楼层 |阅读模式
功能简单,主要用于应急。
欢迎拿去应急~~~
  1. (defun c:bzxy(/ os h jd pt1 pt2 pt3 pt4 pt5 strx stry lx ly l1 ptx1 ptx2 a b)
  2.   (setq os (getvar "osmode"));保存捕捉模式
  3.   (setq h (getreal (strcat "\n请键入文字高度<5>:")))
  4.   (if (null h) (setq h 5))
  5.   (setq jd (getint "\n请键入保留小数位数<3>"))
  6.   (if (null jd) (setq jd 3))
  7. (while (and
  8.         (setvar "osmode" 37);设置捕捉模式,交点+圆心+端点
  9.         (setq pt1 (getpoint "\n请点选要标注坐标的点:"))
  10.         )
  11.       (setvar "osmode" 0);为避免意外情况,关闭捕捉
  12.       (setq pt2 (getpoint pt1 "\n请点选坐标放置的位置:"))
  13. (setq strx (rtos (car pt1) 2 jd)
  14.       stry (rtos (cadr pt1) 2 jd)
  15.       lx (strlen strx)
  16.       ly (strlen stry)
  17.       l1 (max lx ly);最长字符数
  18.       a (* l1 h 1.1);横线长度
  19.       b (* h 0.2);文字偏移横线的距离
  20.       ptx1 (car pt1)
  21.       ptx2 (car pt2)
  22.       )
  23. (if (> ptx2 ptx1) ;左右判断
  24.   (setq pt3 (polar pt2 0 a);横线终点
  25.         pt4 (polar pt2 (* 0.5 pi) b);X文字位置
  26.         pt5 (polar pt2 (* 1.5 pi) (+ b h));Y文字位置
  27.         )
  28.   (setq pt3 (polar pt2 pi a)
  29.         pt4 (polar pt3 (* 0.5 pi) b)
  30.         pt5 (polar pt3 (* 1.5 pi) (+ b h))
  31.         )
  32. )
  33. (mkpline "DM-坐标标注" (list pt1 pt2 pt3))
  34. (mktext "DM-坐标标注" (strcat "X=" strx) pt4 h)
  35. (mktext "DM-坐标标注" (strcat "Y=" stry) pt5 h)
  36. )
  37. (setvar "osmode" os)
  38. (princ)
  39. )
  1. (defun mktext (la str pt h);写文字
  2.      (entmake (list
  3.                  (cons 0 "TEXT")
  4.                  (cons 1 str)
  5.                  (cons 8 la)
  6.                  (cons 10 pt)
  7.                  (cons 40 h)
  8.                )
  9.     )
  10. )
  11. (defun mkpline (la lst);绘pl线
  12.     (entmake (append (list
  13.                    (cons 0 "LWPOLYLINE")
  14.                    (cons 8 la)
  15.                    (cons 100 "AcDbEntity")
  16.                    (cons 100 "AcDbPolyline")
  17.                    (cons 90 (length lst))
  18.                    )
  19.                 (mapcar '(lambda (pt)(cons 10 pt)) lst )
  20.               )
  21.    )
  22. )

点评

楼主,干嘛不来个演示?  发表于 2014-10-20 17:42
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2014-10-20 17:39:16 | 显示全部楼层
文字的图层怎么改?

点评

把“DM-坐标标注”换成你想要的图层名。  发表于 2014-10-20 18:56
entmake下 添加组码  发表于 2014-10-20 17:41
发表于 2014-10-20 18:17:12 | 显示全部楼层
建议楼主添加(setvar"dimzin"0);;保留小数位数时如果位数不足可以补零,不然最后一位是0时无法显示。
发表于 2014-10-20 19:10:48 | 显示全部楼层
说错了 是文字的样式!!!
 楼主| 发表于 2014-10-20 19:24:15 | 显示全部楼层
spp_wall 发表于 2014-10-20 19:10
说错了 是文字的样式!!!

这个只是应急用的,所以功能不全。
你可以在标注之前,设定好你要的字体,并置为当前字体。。。
发表于 2014-10-20 20:05:03 | 显示全部楼层
77077 发表于 2014-10-20 19:24
这个只是应急用的,所以功能不全。
你可以在标注之前,设定好你要的字体,并置为当前字体。。。

设置了当前 但是好像没用
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-24 01:51 , Processed in 0.168407 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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