直接按比例画图形
直接按比例画图形。比如画园,正方形时先要求输入一个比例值,然后程序按这个比例画出图形,这样的程序如何写(defun C:test(/ pt1 pt2 scale)
;;保存系统变量设置
(setq old_OS(getvar "OSMODE")
old_CMD (getvar "CMDECHO")
old_OR (getvar "OrthoMode")
)
(setvar "CMDECHO" 0)
(setvar "OSMODE" 0)
;(setvar "OrthoMode" 0)
(setq scale (getreal "\nScale<100>:"))
(if (= scale nil)
(setq scale 100)
)
(setq pt1 (getpoint "\nFirst point:"))
(setq pt2 (getpoint pt1 "\nSecond point:"))
(command "rectang" pt1 pt2 "")
(ssadd (entlast) door)
(command "SCALE" door "" pt1 "scale")
;;恢复系统变量设置
(setvar "CMDECHO" old_CMD)
(setvar "OSMODE" old_OS)
(setvar "OrthoMode" old_OR)
(princ)(princ)
)
没人出手,我自己写了一个,在两句(ssadd (entlast) door)
(command "SCALE" door "" pt1 "scale") 好像有点问题,请高手看看 check 'CmdActive (setq scale (getreal "\nScale<100>:"))
(if (= scale nil)
(setq scale 100)
)
(setq pt1 (getpoint "\nFirst point:"))
(setq pt2 (getpoint pt1 "\nSecond point:"))
(command "rectang" pt1 pt2 )
(setq door (entlast))
(command "SCALE" door "" pt1 scale ) 谢谢楼上的朋友,还想问一下,如何读取系统变量DIMLFAC的值赋给上面程序中的scale (setq scale(getvar "DIMLFAC"))
页:
[1]