szx025 发表于 2015-2-12 13:16:59

直接按比例画图形

直接按比例画图形。比如画园,正方形时先要求输入一个比例值,然后程序按这个比例画出图形,这样的程序如何写


szx025 发表于 2015-2-12 14:05:37

(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") 好像有点问题,请高手看看

Andyhon 发表于 2015-2-12 14:08:47

check 'CmdActive

fan_zh 发表于 2015-2-12 14:15:07

(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 )

szx025 发表于 2015-2-12 16:05:18

谢谢楼上的朋友,还想问一下,如何读取系统变量DIMLFAC的值赋给上面程序中的scale

longcashman 发表于 2015-2-13 15:47:39

(setq scale(getvar "DIMLFAC"))
页: [1]
查看完整版本: 直接按比例画图形