「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)))
)
関連事項