马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×

- (defun c:bg1 ( / num bili pt pt0 text text1 text2)
- (princ "\n欢迎使用ago高程自动标注-图纸空间版:")
- (princ "\n请确定(标高符号)块是否在搜索路径内,否则情先执行BG建立块:")
- (princ "\n请输入图纸比例")
- (cond ((/= bjbili nil) (princ bgbili)))
- (princ ":")
- (setq bili (getint))
- (if (= bili nil)
- (setq bili bgbili)
- (setq bgbili bili))
- (if
- (= bili nil);
- (setq bili 1);
- )
- (setq pt0 (getpoint"\n请选择0程点:"))
- ;(cond ((= bgor nil)
- ;(bg)(setq bgor 1))
- ; )
- (setq n 1)
- (while
- (= n 1)
- (setq pt (getpoint"\n请选择需标注高程点(或按ESC退出):"))
- (setvar "cmdecho" 0) ; 关闭命令示
- (setq osn (getvar "OSMODE"));记忆捕捉
- (setvar "OSMODE" 0)
- (setq pt (list (nth 0 pt0) (nth 1 pt)))
- (setq text (* bili (- (nth 1 pt) (nth 1 pt0))))
- (setq text (fix text))
- (cond
- ((> text 0)
- (setq text (itoa text))
- (setq num (strlen text))
- (cond
- ((> num 3)
- (setq text1 (substr text 1 (- num 3)))
- (setq text2 (substr text (- num 2) 3))
- (setq text (strcat text1 "." text2))
- )
- ((= num 3)
- (setq text (strcat "0." text))
- )
- ((= num 2)
- (setq text (strcat "0.0" text))
- )
- ((= num 1)
- (setq text (strcat "0.00" text))
- )));;
- ((< text 0)
- (setq text (itoa text))
- (setq num (strlen text))
- (cond
- ((> num 4)
- (setq text1 (substr text 1 (- num 3)))
- (setq text2 (substr text (- num 2) 3))
- (setq text (strcat text1 "." text2))
- )
- ((= num 4)
- (setq text (strcat "-0." (substr text 2 3)))
- )
- ((= num 3)
- (setq text (strcat "-0.0" (substr text 2 2)))
- )
- ((= num 2)
- (setq text (strcat "-0.00" (substr text 2 1))
- ))));;;
- ((= text 0)
- (setq text "±0.000"));;;
- )
- (command "-insert" "标高符号" pt "" "" "")
- (setq pt (list (+ 14 (nth 0 pt)) (+ 3.5 (nth 1 pt))))
- (command "text" "j" "r" pt "2.5" "" text)
- (setvar "OSMODE" osn)
- (setvar "cmdecho" 1); 打开命令提示
- )
- )
- (defun c:bg2 ( / num bili pt pt0 text text1 text2)
- (princ "\n欢迎使用ago高程自动标注-模型空间版:")
- (princ "\n请确定(标高符号)块是否在搜索路径内:")
- (setq bili (getint"\n请输入出图比例:"))
- (if
- (= bili nil);
- (setq bili 1);
- )
- (setq pt0 (getpoint"\n请选择0程点:"))
- ;(cond ((= bgor nil)
- ;(bg)(setq bgor 1))
- ;)
- (setq n 1)
- (while
- (= n 1)
- (setq pt (getpoint"\n请选择需标注高程点(或按ESC退出):"))
- (setvar "cmdecho" 0) ; 关闭命令提示
- (setq pt (list (nth 0 pt0) (nth 1 pt)))
- (setq text (- (nth 1 pt) (nth 1 pt0)))
- (setq text (fix text))
- (cond
- ((> text 0)
- (setq text (itoa text))
- (setq num (strlen text))
- (cond
- ((> num 3)
- (setq text1 (substr text 1 (- num 3)))
- (setq text2 (substr text (- num 2) 3))
- (setq text (strcat text1 "." text2))
- )
- ((= num 3)
- (setq text (strcat "0." text))
- )
- ((= num 2)
- (setq text (strcat "0.0" text))
- )
- ((= num 1)
- (setq text (strcat "0.00" text))
- )));;
- ((< text 0)
- (setq text (itoa text))
- (setq num (strlen text))
- (cond
- ((> num 4)
- (setq text1 (substr text 1 (- num 3)))
- (setq text2 (substr text (- num 2) 3))
- (setq text (strcat text1 "." text2))
- )
- ((= num 4)
- (setq text (strcat "-0." (substr text 2 3)))
- )
- ((= num 3)
- (setq text (strcat "-0.0" (substr text 2 2)))
- )
- ((= num 2)
- (setq text (strcat "-0.00" (substr text 2 1))
- ))));;;
- ((= text 0)
- (setq text "±0.000"));;;
- )
- (command "-insert" "标高符号" pt bili bili "")
- (setq pt (list (+ (* 14 bili) (nth 0 pt)) (+ (* 3.5 bili) (nth 1 pt))))
- (command "text" "j" "r" pt (* 2.5 bili) "" text)
- (setvar "cmdecho" 1); 打开命令提示
- )
- )
- (defun c:bg (/ bg)
- (command "line" "0,0,0" "6,0,0" "")
- (setq bg (ssget "l"))
- (command "pline" "6,3,0" "3,0" "0,3" "18,3" "")
- (command "block" "标高符号" "0,0,0" (ssget "l") bg "")
- )
郁闷,我不知道怎么取整,总是取不了 |