找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 5907|回复: 48

[LISP程序]:图幅号计算(天津)

[复制链接]
发表于 2004-11-23 10:10:38 | 显示全部楼层 |阅读模式

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

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

×
(defun c:tfh(/ s1 b1 x y tfh zb1 zb2)
       (command "osmode" "0")
       (command "cmdecho" "0")
       (prompt "\n图上指定点用来计算图幅号并绘制图廓线")
       (setq s1 (getpoint"\n图幅内点点:"))
       (setq s2 (getstring"\n 比例尺(500,1000,2000,5000,10000):"))
       (if (or (= s1 nil) (= s2 nil))(exit))
       (setq x (car s1))
       (setq y (cadr s1))
       (setq tfh (tfhjs y x b1))
       (if (= b1 "500") (progn
               (setq x(* (fix (/ x 250) 250))
               (setq y(* (fix (/ y 200) 200))
               (setq zb1(list x y))
               (setq zb2(list (+ x 250) (+ y 200)))
                         )
       (if (= b1 "1000") (progn
               (setq x(* (fix (/ x 500) 500))
               (setq y(* (fix (/ y 400) 400))
               (setq zb1(list x y))
               (setq zb2(list (+ x 500) (+ y 400)))
                         )
       (if (= b1 "2000") (progn
               (setq x(* (fix (/ x 1000 1000))
               (setq y(* (fix (/ y 800) 800))
               (setq zb1(list x y))
               (setq zb2(list (+ x 1000) (+ y 800)))
                         )
       (if (= b1 "5000") (progn
               (setq x(* (fix (/ x 2500) 2500))
               (setq y(* (fix (/ y 2000) 2000))
               (setq zb1(list x y))
               (setq zb2(list (+ x 2500) (+ y 2000)))
                         )   
       (if (= b1 "10000") (progn
               (setq x(* (fix (/ x 5000) 5000))
               (setq y(* (fix (/ y 4000) 4000))
               (setq zb1(list x y))
               (setq zb2(list (+ x 5000) (+ y 4000)))
                         )
       (setq b1 (/ (atof b1) 1000))
       (command "layer" "m" "tk" "")
       (command "text" (list (+ x 50) (+ y 50)) "10" "0" tfh)
       (command "rectang" zb1 zb2)
       (command "layer" "s" "0" "")
       (command "zoom" "e")
       (princ)
)
(defun tfhjs(x y blc / zxjy zxjx zxjp xk yk xx yx xxh xt yt hwb ywx ywy wbh wbtfh ywtfh  wqtfh tfh1)
       (setq xk (* (fix(/ (fix(/ x 1000)) 4)) 4))
       (setq yk (* (fix(/ (fix(/ y 1000)) 5)) 5))
       (setq ywx(rtos xk 2 0))
       (setq ywy(rtos yk 2 0))
       (setq ywtfh (strcat  ywx "-" ywy))
       (if (= blc "2000")
           (progn
                  (setq xx (-x (* xk 1000)))
                  (setq yy (-y (* yk 1000)))
                  (setq m (-5 (fix (/ xx 800)))
                  (setq n (+1 (fix (/ yy 1000)))
                  (setq hlq (+ (* (- m 1) 5) n))
                  (setq lqh(rtos hlq 2 0))
                  (setq lqtfh (strcat  ywx "-" ywy "-" lqh))
            )
         )
        (if (or (= blc "500") (= blc "5000") )
           (progn
                 (setq xx (/ (- x (* xk 1000)) 2000))
                 (setq yy (/ (- y (* yk 1000)) 2500))
                 (if (and (> xx 1) (< yy 1))
                     (progn
                     (setq xxh "I")
                     (setq xt (* (- xx 1) 2000))
                     (setq yt (* yy 2500))
                     )
                 )
                 (if (and (> xx 1) (> yy 1))
                     (progn
                     (setq xxh "II")
                     (setq xt (* (- xx 1) 2000))
                     (setq yt (* (- yy 1) 2500))
                     )
                  )
                  (if (and (< xx 1) (< yy 1))
                     (progn
                     (setq xxh "III")
                     (setq xt (* xx 2000))
                     (setq yt (* yy 2500))
                     )
                  )
                  (if (and (< xx 1) (> yy 1))
                     (progn
                     (setq xxh "IV")
                     (setq xt (* xx 2000))
                     (setq yt (* (- yy 1) 2500))
                     )
                   )
                   (setq hwb (+ (* 10 (- 9 (fix (/ xt 200)))) (+ (fix (/ yt 250)) 1)))
                   (setq wbh(rtos hwb 2 0))
                   (setq wqtfh (strcat  ywx "-" ywy "-" xxh))
                   (setq wbtfh (strcat  ywx "-" ywy "-" xxh "-"wbh))
                   )
               )
               (if (= blc "10000") (setq tfh1 ywtfh))
               (if (= blc "5000")  (setq tfh1 wqtfh))
               (if (= blc "2000")  (setq tfh1 lqtfh))
               (if (= blc "500")   (setq tfh1 wbtfh))
               (setq tfh tfh1)
       )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-12-5 20:47:25 | 显示全部楼层
出发吧,音乐响起,梦随太阳升腾。
我们将用羽翼继续打量世界!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2004-12-11 14:25:34 | 显示全部楼层

支持

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

发表于 2005-1-25 13:43:24 | 显示全部楼层
我复制了楼主的程序,加载到CAD。提示——错误: 输入的列表有缺陷。请问是什么问题?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-1 12:41 , Processed in 0.462448 second(s), 59 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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