本帖最后由 作者 于 2004-11-29 12:39:29 编辑
 - (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)
- )
|