发新话题
打印

CAD实用LISP文件调整对象XY比例.LSP

CAD实用LISP文件调整对象XY比例.LSP

;;;调整对象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)
)

TOP

有难度。~~~一头雾水~~~~

TOP

发新话题