「Vla-put-activeucs」の版間の差分
(ページの作成:「{{AutoLISP}} ; 構文 : (vla-put-activeucs ''vla-object'') ; 機能 : 図面のアクティブな UCS を取得する。 ; 引数 :* vla-object … document の VLA...」) |
細編集の要約なし |
||
| 5行目: | 5行目: | ||
; 機能 | ; 機能 | ||
: 図面のアクティブな UCS | : 図面のアクティブな UCS を設定する。 | ||
2015年11月4日 (水) 13:35時点における最新版
- 構文
- (vla-put-activeucs vla-object)
- 機能
- 図面のアクティブな UCS を設定する。
- 引数
-
- vla-object … document の VLA オブジェクト
- ucs … UCSの VLAオブジェクト
- 戻り値
- nil
- memo:注記: 現在のアクティブな UCS への変更は、UCS がアクティブな UCS としてリセットされた後にのみ反映される。現在の UCS が保存されていない場合にアクティブな UCS を取得しようとすると、エラーが発生するため、アクティブな UCS 値を取得する前に、UCSNAME システム変数の値が空でないことを確認することが推奨される。
- 新しい UCS オブジェクトを追加し、それをアクティブにしてからアクティブな UCS 値を取得することもできる。
- サンプル
(command "_ucs" "na" "s" "test")
(command "_ucs" "na" "r" "test")
(setq *ActDoc* (vla-get-ActiveDocument (vlax-get-Acad-Object)))
(setq *ActUcs* (vla-get-activeucs *actdoc*))
(vl-load-com)
(defun c:Example_ActiveUCS()
;; UCSを保存して、現在の設定を返し、変更後に元に戻すサンプル
(setq acadObj (vlax-get-acad-object))
(setq doc (vla-get-ActiveDocument acadObj))
(setq UCSs (vla-get-UserCoordinateSystems doc))
;; 現在の UCSを保存。なければ作成して追加
(if (= (vlax-variant-value (vla-GetVariable doc "UCSNAME")) "")
(progn
(setq utility (vla-get-Utility doc))
(setq currUCS (vla-Add UCSs
(vla-GetVariable doc "UCSORG")
(vla-TranslateCoordinates utility (vla-GetVariable doc "UCSXDIR") acUCS acWorld :vlax-false)
(vla-TranslateCoordinates utility (vla-GetVariable doc "UCSYDIR") acUCS acWorld :vlax-false)
"OriginalUCS"
)
)
)
(setq currUCS (vla-get-ActiveUCS doc)) ;; 現在のUCSをを保存
)
(alert (strcat "現在の UCS は " (vla-get-Name currUCS)))
;; UCSを作成して変更
(setq origin (vlax-3d-point 0 0 0)
xAxis (vlax-3d-point 1 1 0)
yAxis (vlax-3d-point -1 1 0))
(setq newUCS (vla-Add UCSs origin xAxis yAxis "TestUCS"))
(vla-put-ActiveUCS doc newUCS)
(alert (strcat "新しい UCS は " (vla-get-Name newUCS)))
;; 元に戻す
(vla-put-ActiveUCS doc currUCS)
(alert (strcat "UCS を元に戻す " (vla-get-Name currUCS)))
)
関連事項