找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2393|回复: 17

[原创]:绝对坐标网格标注(测绘、总图)

[复制链接]
发表于 2005-4-10 21:44:16 | 显示全部楼层 |阅读模式

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

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

×
功能:在图中生成单位网格线并标注网格的绝对坐标。
[php]
(Defun C:ZBWG (/     pt1   pt2         dx1   dy1   dx2   dy2         pta   ptb
               ptc   ptd   ah         al    pnh1  pnh2  pnv1         pnv2  ss1
              )
  (CMDLA0)
  (GRTEXT -1 "总图以米为单位, 请注意!!!" 1)
  (alert "总图以米为单位, 请注意!!!")
  (while (> bl 2)
    (setq bl nil)
    (setbl)
  )
  (if (= no1 nil)
    (setq no1 20)
  )
  (setq no1 (ureal 1 "" "\n网格间距" no1))
  (while (NOT (setq pt1 (getpoint "\n网格左下角点 : "))))
  (while (NOT (setq pt2 (getcorner pt1 "\n网格右上角点 : ")))
  )
  (if (< (car pt1) 0)
    (setq dx1 (fix (* (- (fix (/ (car pt1) no1)) 1) no1)))
    (setq dx1 (fix (* (fix (/ (car pt1) no1)) no1)))
  )
  (if (< (cadr pt1) 0)
    (setq dy1 (fix (* (- (fix (/ (cadr pt1) no1)) 1) no1)))
    (setq dy1 (fix (* (fix (/ (cadr pt1) no1)) no1)))
  )
  (if (< (car pt2) 0)
    (setq dx2 (fix (* (fix (/ (car pt2) no1)) no1)))
    (setq dx2 (fix (* (+ (fix (/ (car pt2) no1)) 1) no1)))
  )
  (if (< (cadr pt2) 0)
    (setq dy2 (fix (* (fix (/ (cadr pt2) no1)) no1)))
    (setq dy2 (fix (* (+ (fix (/ (cadr pt2) no1)) 1) no1)))
  )

  (setq        pta (list dx1 dy1)
        ptb (list dx2 dy1)
        ptc (list dx2 dy2)
        ptd (list dx1 dy2)
        ah  (fix (+ (/ (- dy2 dy1) no1) 1))
        al  (fix (+ (/ (- dx2 dx1) no1) 1))
  )
  (setvar "osmode" 0)
  (setq        pnh1 (list (car pta) (- (cadr pta) (* 500 sc)))
        pnh2 (list (car ptd) (+ (cadr ptd) (* 500 sc)))
        pnv1 (list (- (car pta) (* 500 sc)) (cadr pta))
        pnv2 (list (+ (car ptb) (* 500 sc)) (cadr pta))
  )
  (jzhz)
  (princ "\n稍候 : ...")
  (while (<= (car pnh1) (car ptb))
    (MKLA "测量坐标3" 3)
    (princ ".")
    (command "text"
             "j"
             "mr"
             pnh1
             (* 300 sc)
             "90"
             (strcat "X=" (itoa (fix (car pnh1))))
    )
    (princ ".")
    (command "text"
             "j"
             "ml"
             pnh2
             (* 300 sc)
             "90"
             (strcat "X=" (itoa (fix (car pnh2))))
    )
    (princ ".")
    (MKLA "测量坐标4" 1)
    (princ ".")
    (command "line" pnh1 pnh2 "")
    (setq pnh1 (list (+ (car pnh1) no1) (cadr pnh1))
          pnh2 (list (+ (car pnh2) no1) (cadr pnh2))
    )
  )

  (while (<= (cadr pnv1) (cadr ptd))
    (MKLA "测量坐标3" 3)
    (princ ".")
    (command "text"
             "j"
             "mr"
             pnv1
             (* 300 sc)
             "0"
             (strcat "Y=" (itoa (fix (cadr pnv1))))
    )
    (princ ".")
    (command "text"
             "j"
             "ml"
             pnv2
             (* 300 sc)
             "0"
             (strcat "Y=" (itoa (fix (cadr pnv2))))
    )
    (princ ".")
    (MKLA "测量坐标4" 1)
    (princ ".")
    (command "line" pnv1 pnv2 "")
    (setq pnv1 (list (car pnv1) (+ (cadr pnv1) no1))
          pnv2 (list (car pnv2) (+ (cadr pnv2) no1))
    )
  )
  (princ ".")
  (command "zoom" "e")
  (princ "完毕!")
  (CMDLA1)
)
(PXYP "ZBWG (坐标网格)")
[/php]

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

发表于 2005-4-14 17:59:29 | 显示全部楼层
要是XYP1964斑竹能够提供通用函数的源代码,供我们研究学习,那就好了!
毕竟您编写的程序不一定符合各个专业的表达习惯,有点过分的要求。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2005-4-18 14:36:35 | 显示全部楼层
要是增加绘十字网格就更完美了,也就是施工座标网,希望斑竹改进改进!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-18 18:32:50 | 显示全部楼层
最初由 jinsong-liao 发布
[B]要是增加绘十字网格就更完美了,也就是施工座标网,希望斑竹改进改进! [/B]

主意不错,容易实现,有空加上。
主要语句:
(mkla"施工座标网"3)
(xyp_szx pt 200)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

发表于 2005-4-18 23:43:22 | 显示全部楼层
最初由 xyp1964 发布
[B]你把标注认为是毫米就行了! [/B]


此言差矣,怎能当成毫米咧???
如果是用于施工或是加工时,加工单位是按照数据来加工而非标注或是注解什么的,那岂非遭糕,可能楼主没遇到过加工类的制品。。。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-19 01:35:34 | 显示全部楼层
最初由 啵浪鼓 发布
[B]

此言差矣,怎能当成毫米咧???
如果是用于施工或是加工时,加工单位是按照数据来加工而非标注或是注解什么的,那岂非遭糕,?.. [/B]

你以为 1000 这个数字代表1000毫米还是1000米、或者1000公里?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 11:36 , Processed in 0.234825 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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