找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3697|回复: 26

[原创]:我自己写的坐标标注.

[复制链接]
发表于 2002-7-8 23:34:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×


  1. ;;;zbbz

  2. ;;; 标注时是按当前的UCS的,但是数值还是 WCS 的,

  3. ;;; 不用转换到 WCS。


  4. ;============================== 开始 ==============================

  5. (defun c:zbbz ()

  6. ;============================== 设置 ==============================

  7.   (prompt "\n输入字高:<") (princ (getvar "textsize")) (princ ">")
  8.   (setq 输入字高 (getreal))
  9.   (if (not 输入字高)
  10.       (setq 字高 (getvar "textsize"))
  11.       (setq 字高 输入字高)
  12.   )
  13.   (setq old_dimzin (getvar "dimzin"))
  14.   (setvar "dimzin" 1)
  15.   (setq 精度 3)                     
  16.   (setvar "cmdecho" 0)
  17.   (标注)
  18. )


  19. ;====================== 取起点的位置及数值 ======================

  20.   (defun 标注()
  21.     (setq 标注点 (getpoint "\n点取标注点:"))
  22.     (if 标注点 (继续) (退出))
  23.   )

  24.   (defun 继续()
  25.     (setq 绝对标注点 (trans 标注点 1 0))
  26.     (setq x_坐标值 (rtos (car   绝对标注点) 2 精度))
  27.     (setq y_坐标值 (rtos (nth 1 绝对标注点) 2 精度))


  28. ;=================== 取标注引线位置及长度和角度 ===================

  29.     (setq 临时起点 (getpoint 标注点 "\n点取标注位置:"))
  30.     (setq 引线长度 (distance 标注点 临时起点))
  31.     (setq 临时角度 (atof (angtos (angle 标注点 临时起点 ) 0 3)))
  32.   

  33. ;================= 检查标注引线的角度并设为标准值 =================

  34.     (setq 标准角度 (cond ((<= 临时角度    15)   0)
  35.                          ((<= 临时角度  37.5)  30)
  36.                          ((<= 临时角度  52.5)  45)
  37.                          ((<= 临时角度  67.5)  60)
  38.                          ((<= 临时角度   105)  90)
  39.                          ((<= 临时角度 127.5) 120)
  40.                          ((<= 临时角度   141) 135)
  41.                          ((<= 临时角度   165) 150)
  42.                          ((<= 临时角度   195) 180)
  43.                          ((<= 临时角度 217.5) 210)
  44.                          ((<= 临时角度 232.5) 225)
  45.                          ((<= 临时角度   255) 240)
  46.                          ((<= 临时角度   285) 270)
  47.                          ((<= 临时角度 307.5) 300)
  48.                          ((<= 临时角度 322.5) 315)
  49.                          ((<= 临时角度   345) 330)
  50.                          (0)
  51.                    )
  52.     )





  53. ;======================= 设标注引线终点的位置 =======================

  54.     (setq 起点 (polar 标注点 (angtof (itoa 标准角度) 0) 引线长度))
  55.   

  56. ;===================== 设标注线终点的位置及方向 ===================

  57.     (setq x_字符数 (strlen  x_坐标值))
  58.     (setq y_字符数 (strlen  y_坐标值))
  59.     (if (> x_字符数 y_字符数)
  60.         (setq 坐标字符数 x_字符数)
  61.         (setq 坐标字符数 y_字符数)
  62.     )
  63.   
  64.     (setq 坐标字符长 (* 坐标字符数 字高))  
  65.     (if (and (< 标准角度 270) (> 标准角度 90))
  66.         (setq 标注方向 180)
  67.         (setq 标注方向 0)
  68.     )
  69.   
  70.     (if (= 标注方向 180)
  71.         (setq 终点 (list (- (car 起点) 坐标字符长)  (nth 1 起点)))
  72.         (setq 终点 (list (+ (car 起点) 坐标字符长)  (nth 1 起点)))
  73.     )


  74. ;======================== 设标注数字的起点 ========================

  75.     (if (= 标注方向 0) (setq 文字开始点 起点) (setq 文字开始点 终点))  
  76.     (setq 起点_x (list (car 文字开始点)
  77.                        (+ (nth 1 文字开始点) (/ 字高 3.5))))
  78.     (setq 起点_y (list (car 文字开始点)
  79.                        (- (nth 1 文字开始点) 字高 (/ 字高 3.5))))
  80.   

  81. ;======================= 使两个坐标字符等长 =======================

  82.     (setq 相差字符数 (abs(- x_字符数 y_字符数)))
  83.     (setq 补充空格数 "")
  84.     (repeat 相差字符数 (setq 补充空格数 (strcat 补充空格数 " ")))
  85.     (if (= 相差字符数 0)
  86.         (setq x_c (strcat "Y=" x_坐标值) y_c (strcat "X=" y_坐标值)))
  87.   
  88.     (if (and (/= l 0) (> x_字符数 y_字符数))  
  89.         (setq x_c (strcat "Y=" x_坐标值)
  90.               y_c (strcat "X="  补充空格数 y_坐标值)))
  91.   
  92.     (if (and (/= l 0) (< x_字符数 y_字符数))  
  93.         (setq x_c (strcat "Y="  补充空格数 x_坐标值)
  94.               y_c (strcat "X=" y_坐标值)))

  95.   
  96. ;============================= 标注 ===============================

  97.     (setq old_osmode (getvar "osmode"))
  98.     (setvar "osmode" 0)
  99.     (command "line" 标注点 起点 终点)
  100.     (command "")
  101.     (command "text" 起点_x 字高 "0" y_c)
  102.     (command "text" 起点_y 字高 "0" x_c)
  103.     (setvar "osmode" old_osmode)
  104.     (标注)
  105.   )

  106. ;============================== 还原 ==============================

  107.   (defun 退出()
  108.     (setvar "dimzin" old_dimzin)
  109.     (setvar "cmdecho" 1)
  110.     (princ)
  111.   )


  112. ;============================== 结束 ==============================

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
 楼主| 发表于 2002-7-8 23:35:06 | 显示全部楼层
多谢陈伯雄老师解惑.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-7-14 23:15:17 | 显示全部楼层
你这个坐标程序很好用(比天正3.x的坐标还好用),记得你以前在abbs上也贴过,我一直在用这个程序。谢谢你。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-8-25 12:48:42 | 显示全部楼层
有说明吗
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-10-30 12:18:15 | 显示全部楼层
我也编了一个,改天贴出来!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-11-18 16:10:25 | 显示全部楼层
怎么我用起来,X,Y坐标是相反的,应该调换吧,还是我的CAD出了什么问题
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-11-21 01:13:01 | 显示全部楼层
非常好!很值得我学习。我也曾经编过一个,但没你编的好
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-11-22 15:04:00 | 显示全部楼层
6楼说得没错, X与Y坐标是对调的.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-11-22 15:58:27 | 显示全部楼层
X,,Y坐标对调好象是坐标系确定的问题。两年前用CAD多,最近忙造价工程师的事。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-3-27 13:12:50 | 显示全部楼层
x,y坐标对调在程序里处理特别好,改变坐标系就麻烦多了!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-3-30 15:43:20 | 显示全部楼层
这个怎麽用呢,请指点,是不是在文件里修改。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-4-10 22:32:25 | 显示全部楼层
程序做得不错,但坐标系问题未能解决。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-4-13 09:20:14 | 显示全部楼层
现在红线是闭合polyline,看看改进一下,能不能选择这根pline,实现自动标注。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-4-24 09:02:02 | 显示全部楼层
的确好!谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-5-16 21:28:31 | 显示全部楼层
看别人说好,我也体验一下啊,谢陈老师
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-12-18 20:27 , Processed in 0.510835 second(s), 59 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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