Vla-setcustomscale

提供:GizmoLabs - だいたい CAD LISP なサイト
2015年12月25日 (金) 11:41時点におけるGizmon (トーク | 投稿記録)による版 (ページの作成:「{{AutoLISP}} ; 構文 : (vla-setcustomscale ''vla-object'' ''Numerator'' ''Denominator'') ; 機能 : レイアウトまたは印刷設定のカスタム尺度を設定...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
(vla-setcustomscale vla-object Numerator Denominator)


機能
レイアウトまたは印刷設定のカスタム尺度を設定する。


引数
  • vla-object … VLAオブジェクト(Layout、PlotConfiguration)
  • Numerator … 尺度の比率の分子を示す正の数。この値は尺度のインチ数またはミリメートル数を示す。
  • Denominator … 尺度の比率の分母を示す正の数。この値は尺度の作図単位の数を示す。


戻り値
nil


サンプル
(vl-load-com)
(defun c:Example_SetCustomScale()
    ;; 現在のビューにレイアウトコレクションにアクセスし、各レイアウトのカスタム尺度に
    ;; 関する基本的な情報を一覧表示するサンプル。
    ;; その後、モデル空間のカスタム尺度情報を変更して、尺度情報を再表示。
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))

    ;; 現在の尺度情報
    (setq Layouts (vla-get-Layouts doc))
    
    (setq msg "")
    
    ;; すべてのレイアウトの尺度情報を取得。
    (vlax-for Layout Layouts
        (setq msg (strcat msg (vla-get-Name Layout) "\n"))
        
        ;; 尺度情報を取得
        (vla-GetCustomScale Layout 'Numerator 'Denominator)
        
        ;; インチかミリか
        (setq Measurement (if (= (vla-get-PaperUnits Layout) acInches) " インチ\n" " ミリ\n"))
        
        ;; 表示
        (setq msg (strcat msg "  含む " (rtos Numerator 2) Measurement
                              "  含む " (rtos Denominator 2) " 作図単位\n"
                              "_____________________\n"))   
    )
    
    ;; カスタム尺度の情報を表示
    (alert (strcat "現在の図面のカスタム尺度情報 : " msg))
  
    ;; 尺度変更
    (setq Numerator 1
          Denominator 1)
    
    (vla-SetCustomScale (vla-Item (vla-get-Layouts doc) "Model") Numerator Denominator)
    (vla-Regen doc acAllViewports)
            
    ;; 新しい尺度情報を表示
    (setq Layouts (vla-get-Layouts doc))
    
    (setq msg "")
    
    ;; すべてのレイアウトの尺度情報を取得。
    (vlax-for Layout Layouts
        (setq msg (strcat msg (vla-get-Name Layout) "\n"))
        
        ;; 尺度情報を取得
        (vla-GetCustomScale Layout 'Numerator 'Denominator)
        
        ;; インチかミリか
        (setq Measurement (if (= (vla-get-PaperUnits Layout) acInches) " inch(es)\n" " millimeter(s)\n"))
        
        ;; カスタム尺度の情報を表示
        (setq msg (strcat msg "  含む " (rtos Numerator 2) Measurement
                              "  含む " (rtos Denominator 2) " 作図単位\n"
                              "_____________________\n"))   
    )

    ;; カスタム尺度の情報を表示
    (alert (strcat "現在の図面のカスタム尺度情報 : " msg))
)

関連事項