Vla-getcustomscale

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


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


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


戻り値
nil
  • MEMO : Numerator パラメータは、PaperUnits プロパティの設定に従属する。


サンプル
(vl-load-com)
(defun c:Example_GetCustomScale()
    ;; 図面の尺度情報を取得して変更するサンプル
    (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) " インチ\n" " ミリ\n"))
        
        ;; フォーマットを表示
        (setq msg (strcat msg "  含まれる " (rtos Numerator 2) Measurement
                              "  含まれる " (rtos Denominator 2) " 図面単位\n"
                              "_____________________\n"))   
    )

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

関連事項