;;;调整对象XY比例
;;;程序设计:赖云龙;;;
;;;---------------;;;
(defun C:SCALEXY (/ holdosmode AA PT X Y PT1 PT2 L1 L2)
(command "_.undo" "_be")
(setq holdosmode (getvar "osmode"))
(setvar "osmode" 39)
(defun LL ()
(setq PT1 (getpoint "\n参考长度基准点: "))
(setq PT2 (getpoint PT1 "\n第二点: "))
(setq L1 (distance PT1 PT2))
(setq PT1 (getpoint "\n新的长度基准点: "))
(setq PT2 (getpoint PT1 "\n第二点: "))
(setq L2 (distance PT1 PT2))
)
(while (= AA NIL)
(setq AA (ssget))
)
(setq PT (getpoint "\n基准点 : "))
(setq X (getstring "\n/参考(R) <1>: "))
(cond
((= X "")
(setq X 1)
)
((or (= X "R") (= X "r"))
(LL)
(setq X (/ L1 L2))
)
(t
(setq X (atof X))
)
)
(setq Y (getstring (strcat "\n/参考(R) <" (rtos X) ">: ")
)
)
(cond
((= Y "")
(setq Y 1)
)
((or (= Y "R") (= Y "r"))
(LL)
(setq Y (/ L1 L2))
)
)
(setq A (rtos (* (getvar "CDATE") 1E8)))
(command "_.BLOCK" A PT AA "")
(command "_.INSERT" A PT X Y "")
(command "_.EXPLODE" "L")
(prompt "\n")
(command "_.purge" "b" A "n")
(setvar "osmode" holdosmode)
(command "_.undo" "_end")
(princ)
)