找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 570|回复: 3

[原创]:在总图中标注坐标的小程序

[复制链接]

已领礼包: 1915个

财富等级: 堆金积玉

发表于 2004-1-2 18:38:06 | 显示全部楼层 |阅读模式

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

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

×
在总图中标注坐标的小程序

[PHP]
;**自动绘制座标**
;  **给定座标线三点自动绘制座标**
(SETQ TB 0.5)
(DEFUN C:ZZB(/ p1 p2 p3 sblip scmde a b f e aa bb f23 d m n)
  (princ "\n**给定座标线三点自动绘制座标**")
   (if (> (getvar "osmode") 16384)
     (setvar "osmode" (- (getvar "osmode") 16384))
   )
  (setq p1 (getpoint "\n给定建筑物上一点:"))
   (setvar "orthomode" 0)
  (setq p2 (getpoint p1 "\n给定座标线上一点:"))
   (setvar "orthomode" 1)
  (setq p3 (getpoint p2 "\n给定座标线另一点:"))
   
  (setq sblip (getvar "blipmode"))
  (setq scmde (getvar "cmdecho"))
  (setvar "blipmode" 0)
  (setvar "cmdecho" 0)
  (command "layer" "s" "zuobiao" "")
  (setq b (car p1))
  (setq a (cadr p1))
  (setq a (strcat "X=" (rtos a 2 3)))
  (setq b (strcat "Y=" (rtos b 2 3)))

   (setq f (strlen a))
  (setq e (strlen b))
  (if (> f e)
   (progn
    (setq aa (+ f 0.50))
    (setq bb (* aa (* 2.00 tb)))
    )
    (progn
     (setq aa (+ e 0.50))
     (setq bb (* aa (* 2.00 tb)))
    )
   )
  (setq f23 (angle p2 p3))
  (setq d (distance p2 p3))
  (if (> bb d)
   (setq d bb)
   (setq d bb)
  )
  (setq p3 (polar p2 f23 d))
  (command "line" p1 p2 p3 \r)
  (setq f23 (angle p2 p3))
  (cond
   ((< f23 (* 0.60 pi))
    (setq f23 (angle p2 p3))
    (setq p1 (polar p2 f23 (* 0.50 d)))
    (setq p2 (polar p1 (+ f23 (* 0.50 pi)) (* tb 1.00)))
    (setq p3 (polar p1 (- f23 (* 0.50 pi)) (* tb 3.00)))
    (setq f23 (angtos f23 0 4))
    (command "text" "s" "standard" "c" p2 (* tb 2.50) f23 a)
    (command "text" "s" "standard" "c" p3 (* tb 2.50) f23 b)
   )
   ((and (>= f23 (* 0.60 pi)) (<= f23 (* 1.75 pi)))
    (setq p1 p2)
    (setq p2 p3)
    (setq p3 p1)
    (setq f23 (angle p2 p3))
    (setq p1 (polar p2 f23 (* 0.50 d)))
    (setq p2 (polar p1 (+ f23 (* 0.50 pi)) (* tb 1.00)))
    (setq p3 (polar p1 (- f23 (* 0.50 pi)) (* tb 3.00)))
    (setq f23 (angtos f23 0 4))
    (command "text" "s" "standard" "c" p2 (* tb 2.50) f23 a)
    (command "text" "s" "standard" "c" p3 (* tb 2.50) f23 b)
   )
   ((and (> f23 (* 1.75 pi)) (<= f23 (* 2.00 pi)))
    (setq f23 (angle p2 p3))
    (setq p1 (polar p2 f23 (* 0.50 d)))
    (setq p2 (polar p1 (+ f23 (* 0.50 pi)) (* tb 1.00)))
    (setq p3 (polar p1 (- f23 (* 0.50 pi)) (* tb 3.00)))
    (setq f23 (angtos f23 0 4))
    (command "text" "s" "standard" "c" p2 (* tb 2.50) f23 a)
    (command "text" "s" "standard" "c" p3 (* tb 2.50) f23 b)
   )
  )
  (setvar "blipmode" sblip)
  (setvar "cmdecho" scmde)
)
[/PHP]
变量tb代表绘图比例
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-1-2 19:04:07 | 显示全部楼层
说说怎么用阿,我什么也没标出来呀,给个演示多清楚阿
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1915个

财富等级: 堆金积玉

 楼主| 发表于 2004-1-2 19:18:39 | 显示全部楼层
在总图专业中,所有的物体都是以实际的坐标绘制的,标注各物体的坐标时,例如房屋角,用本程序只需选取房屋角,在点出标注线的起止点,即可注出坐标。本程序会自动校正标注线的长度与文字等长,支持任意方向的标注。
标注在zuobiao层上,图中需有此层。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-1-2 21:54:39 | 显示全部楼层
是总图的那位同学?有机会Email->>>cd1990@eyou.com,可以搞到更好的程序。。。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-27 02:03 , Processed in 0.288949 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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