・ UCSの状態を控える
LISPの中で、UCS(ユーザー座標系)を設定し作図処理を行わせる場合、処理後にUCSを元の状態に戻してやらなくてはなりません。UCS管理で名前をつけたり、直前のUCSを指定して戻しても良いのですが、名前がいっぱいできてしまったり、エラー処理などで不具合があるかもしれません。
そこで、UCSを3点で指定できるように、あらかじめ、現在のUCSのUCS原点・(
1.0 , 0 , 0)・( 0 , 1.0 , 0) を
WCSに変換した点を控えておきます。(UCSXDIR UCSYDIRは読取専用で、設定できない・・・(-_-;)
)
現在のUCSを控える
(setq lst_ucs_var (list (getvar "UCSORG")))
(setq lst_ucs_var (append lst_ucs_var (mapcar '(lambda (x) (trans x 1 0)) '((1.0 0 0) (0 1.0 0)))))
これを復元するには、一度WCSにしてからUCSコマンドで設定します
UCSを復元
(command "._UCS" "W")
(command "._UCS" "3" (car lst_ucs_var) (cadr lst_ucs_var) (caddr lst_ucs_var))
また、UCSICON や UCSFOLLOW の設定にも配慮する必要があることもあるので、注意が必要です