52 lines
1.5 KiB
Common Lisp
52 lines
1.5 KiB
Common Lisp
(defun C:moveOrigin (/ move wcs setCurrUcs newOrigin)
|
|
(vl-load-com)
|
|
(graphscr)
|
|
|
|
(initget 1 "Yes No")
|
|
(setq move (getkword "Move origin? [Yes/No]"))
|
|
(if
|
|
(= move "Yes")
|
|
(progn
|
|
(setq wcs (getvar "worlducs"))
|
|
(if
|
|
(= wcs 0)
|
|
(progn
|
|
;; it's not WCS
|
|
(initget 1 "UCS Pick")
|
|
(setq setCurrUcs (getkword "Set current UCS or pick point [UCS/Pick]"))
|
|
(if
|
|
(= setCurrUcs "UCS")
|
|
(progn
|
|
(setq newOrigin (trans '(0.0 0.0 0.0) 1 0))
|
|
(command "._UCS" "W")
|
|
(moveDrawing newOrigin)
|
|
)
|
|
(progn
|
|
;; Pick point selected
|
|
(command "._UCS" "W")
|
|
(pickPoint)
|
|
|
|
)
|
|
|
|
)
|
|
)
|
|
;;it's wcs:
|
|
(pickPoint)
|
|
)
|
|
)
|
|
)
|
|
)
|
|
|
|
(defun pickPoint ()
|
|
(setq newOrigin (getpoint "\nPick new origin"))
|
|
;; (print newOrigin)
|
|
(moveDrawing newOrigin)
|
|
)
|
|
|
|
(defun moveDrawing (point / ssX coords)
|
|
(setq ssX (ssget "x"))
|
|
(setq coords (strcat (rtos (car point) 2) "," (rtos (cadr point) 2)))
|
|
|
|
(command "move" ssX "" coords "0,0")
|
|
)
|