(setq filename (strcat (getenv "TMP") "paramseting_by_meflying.ini"))
(defun Getxxx(fun msg def / val def2)
(if def
(progn
(if (/= (type def) 'STR) (setq def2 (rtos def)))
(setq val (fun (strcat msg "<" def2 ">:")))
(if (or (not val) (= val "")) def val)
)
(fun (strcat msg ":"))
)
)
(defun c:set( / f hei xs gap)
(if (findfile filename)
(progn
(setq f (open (findfile filename) "r"))
(setq hei (atof (read-line f)))
(setq xs (atoi (read-line f)))
(setq gap (atof (read-line f)))
(close f)
)
)
(setq hei (getxxx getreal "\n字体大小" hei))
(setq xs (getxxx getint "\n保留小数位数" xs))
(setq gap (getxxx getreal "\n文本间隔" gap))
(setq f (open filename "w"))
(mapcar '(lambda(e) (write-line (rtos e) f)) (list hei xs gap))
(close f)
(princ "\n设置完成!键入 TT 运行程序。")
(princ)
)
(defun c:TT( / val f hei xs gap pts pts pt2 pt2 len wid os)
(if (not (findfile filename))
(progn
(initget "S X")
(setq val (getkword "\n未设置参数![设置(S)/退出(X)]<退出>:"))
(if (not val) (setq val "X"))
(if (= val "S") (c:set))
)
)
(if (/= val "X")
(progn
(setq f (open (findfile filename) "r"))
(setq hei (atof (read-line f)))
(setq xs (atoi (read-line f)))
(setq gap (atof (read-line f)))
(close f)
(prompt (apply 'strcat (list "\n字高=" (rtos hei) ", 保留小数位=" (rtos xs) ", 文本间隔=" (rtos gap))))
(setq pts (getpoint "\n选择文本其始点:"))
(if pts
(progn
(while (and (setq pt1 (getpoint "\n选择第一点:")) (setq pt2 (getcorner pt1 "\n选择第二点:")))
(setq len (/ (abs (- (car pt1) (car pt2))) 1000))
(setq wid (/ (abs (- (cadr pt1) (cadr pt2))) 1000))
(setq os (getvar "osmode"))
(setvar "osmode" 0)
(command "_.text" pts 1000"" (strcat (rtos len 2 xs) " x " (rtos wid 2 xs) " = " (rtos (* len wid) 2 xs)))
(setvar "osmode" os)
(setq pts (polar pts (* 1.5 pi) gap))
);while
);progn
);if
)
)
(princ)
) 太好了,太谢谢你了。但是你好象没有转换成米为单位来表示。能帮我转一下吗? 已在12楼改好,输出以米为单位,设置中的字高,字间距仍然以毫米为单位 meflying发表于2004-11-29 12:40:00static/image/common/back.gif已在12楼改好,输出以米为单位,设置中的字高,字间距仍然以毫米为单位
<BR>谢谢,完全符合要求。 这个程序好,就是多次选择图形的“长*宽=值 ”不能自动的换行,哪位朋友给改改 顶起来
页:
1
[2]