找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 487|回复: 1

[讨论]:标高标注,总觉得写的不好,帮忙看下

[复制链接]
发表于 2004-6-12 17:50:57 | 显示全部楼层 |阅读模式

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

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

×

  1. (defun c:bg1 ( / num bili pt pt0 text  text1 text2)
  2.   (princ "\n欢迎使用ago高程自动标注-图纸空间版:")
  3.   (princ "\n请确定(标高符号)块是否在搜索路径内,否则情先执行BG建立块:")
  4.   (princ "\n请输入图纸比例")
  5.   (cond ((/= bjbili nil) (princ bgbili)))
  6.   (princ ":")
  7.   (setq bili (getint))
  8.   (if (= bili nil)
  9.         (setq bili bgbili)
  10.         (setq bgbili bili))
  11.   (if
  12.     (= bili nil);
  13.     (setq bili 1);
  14.     )
  15.   (setq pt0 (getpoint"\n请选择0程点:"))
  16.   ;(cond ((= bgor nil)
  17.   ;(bg)(setq bgor 1))
  18.    ; )
  19.   (setq n 1)
  20.   (while
  21.     (= n 1)
  22.     (setq pt (getpoint"\n请选择需标注高程点(或按ESC退出):"))
  23.     (setvar "cmdecho" 0)  ; 关闭命令示
  24.     (setq osn (getvar "OSMODE"));记忆捕捉
  25.     (setvar "OSMODE" 0)
  26.     (setq pt (list (nth 0 pt0) (nth 1 pt)))
  27.     (setq text (* bili (- (nth 1 pt) (nth 1 pt0))))         
  28.     (setq text (fix text))
  29.     (cond
  30.       ((> text 0)
  31.        (setq text (itoa text))
  32.        (setq num (strlen text))
  33.        (cond
  34.          ((> num 3)
  35.           (setq text1 (substr text 1 (- num 3)))
  36.           (setq text2 (substr text (- num 2) 3))
  37.           (setq text (strcat text1 "." text2))
  38.           )
  39.          ((= num 3)
  40.           (setq text (strcat "0." text))
  41.           )
  42.          ((= num 2)
  43.           (setq text (strcat "0.0" text))
  44.           )
  45.          ((= num 1)
  46.           (setq text (strcat "0.00" text))
  47.           )));;
  48.       ((< text 0)
  49.        (setq text (itoa text))
  50.        (setq num (strlen text))
  51.        (cond
  52.          ((> num 4)
  53.           (setq text1 (substr text 1 (- num 3)))
  54.           (setq text2 (substr text (- num 2) 3))
  55.           (setq text (strcat text1 "." text2))
  56.           )
  57.          ((= num 4)
  58.           (setq text (strcat "-0." (substr text 2 3)))
  59.           )
  60.          ((= num 3)
  61.           (setq text (strcat "-0.0" (substr text 2 2)))
  62.           )
  63.          ((= num 2)
  64.           (setq text (strcat "-0.00" (substr text 2 1))
  65.           ))));;;
  66.       ((= text 0)
  67.       (setq text "±0.000"));;;
  68.       )
  69.     (command "-insert" "标高符号" pt "" "" "")
  70.     (setq pt (list (+ 14 (nth 0 pt)) (+ 3.5 (nth 1 pt))))
  71.     (command "text" "j" "r" pt "2.5" "" text)
  72.     (setvar "OSMODE" osn)
  73.     (setvar "cmdecho" 1); 打开命令提示
  74.     )
  75.   )
  76. (defun c:bg2 ( / num bili pt pt0 text text1 text2)
  77.   (princ "\n欢迎使用ago高程自动标注-模型空间版:")
  78.   (princ "\n请确定(标高符号)块是否在搜索路径内:")
  79.   (setq bili (getint"\n请输入出图比例:"))
  80.   (if
  81.     (= bili nil);
  82.     (setq bili 1);
  83.     )
  84.   (setq pt0 (getpoint"\n请选择0程点:"))
  85.   ;(cond ((= bgor nil)
  86.   ;(bg)(setq bgor 1))
  87.     ;)
  88.   (setq n 1)
  89.   (while
  90.     (= n 1)
  91.     (setq pt (getpoint"\n请选择需标注高程点(或按ESC退出):"))
  92.     (setvar "cmdecho" 0)  ; 关闭命令提示
  93.     (setq pt (list (nth 0 pt0) (nth 1 pt)))
  94.     (setq text (- (nth 1 pt) (nth 1 pt0)))         
  95.     (setq text (fix text))
  96.     (cond
  97.       ((> text 0)
  98.        (setq text (itoa text))
  99.        (setq num (strlen text))
  100.        (cond
  101.          ((> num 3)
  102.           (setq text1 (substr text 1 (- num 3)))
  103.           (setq text2 (substr text (- num 2) 3))
  104.           (setq text (strcat text1 "." text2))
  105.           )
  106.          ((= num 3)
  107.           (setq text (strcat "0." text))
  108.           )
  109.          ((= num 2)
  110.           (setq text (strcat "0.0" text))
  111.           )
  112.          ((= num 1)
  113.           (setq text (strcat "0.00" text))
  114.           )));;
  115.       ((< text 0)
  116.        (setq text (itoa text))
  117.        (setq num (strlen text))
  118.        (cond
  119.          ((> num 4)
  120.           (setq text1 (substr text 1 (- num 3)))
  121.           (setq text2 (substr text (- num 2) 3))
  122.           (setq text (strcat text1 "." text2))
  123.           )
  124.          ((= num 4)
  125.           (setq text (strcat "-0." (substr text 2 3)))
  126.           )
  127.          ((= num 3)
  128.           (setq text (strcat "-0.0" (substr text 2 2)))
  129.           )
  130.          ((= num 2)
  131.           (setq text (strcat "-0.00" (substr text 2 1))
  132.           ))));;;
  133.       ((= text 0)
  134.       (setq text "±0.000"));;;
  135.       )
  136.     (command "-insert" "标高符号" pt bili bili "")
  137.     (setq pt (list (+ (* 14 bili) (nth 0 pt)) (+ (* 3.5 bili) (nth 1 pt))))
  138.     (command "text" "j" "r" pt (* 2.5 bili) "" text)
  139.     (setvar "cmdecho" 1); 打开命令提示
  140.     )
  141.   )
  142. (defun c:bg (/ bg)
  143.   (command "line" "0,0,0" "6,0,0" "")
  144.   (setq bg (ssget "l"))
  145.   (command "pline" "6,3,0" "3,0" "0,3" "18,3" "")
  146.   (command "block" "标高符号"  "0,0,0" (ssget "l") bg "")
  147.   )

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

已领礼包: 488个

财富等级: 日进斗金

发表于 2004-6-12 18:44:15 | 显示全部楼层
(rtos 2.3333333 2 3) -->"2.333"

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-27 05:30 , Processed in 0.328703 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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