Vla-put-taborder

提供:GizmoLabs - だいたい CAD LISP なサイト
2016年2月11日 (木) 11:17時点におけるGizmon (トーク | 投稿記録)による版 (ページの作成:「{{AutoLISP}} ; 構文 : (vla-put-taborder ''vla-object'' ''order'' ) ; 機能 : レイアウトのタブの順序を指定する。 ; 引数 :* vla-object … Layout...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
(vla-put-taborder vla-object order )


機能
レイアウトのタブの順序を指定する。


引数
  • vla-object … Layout のVLAオブジェクト
  • order … レイアウトのタブの順序


戻り値
nil


  • MEMO:このプロパティは、レイアウトをタブ コントロールに表示する順序をコントロールする。タブの順序は、データベース内の全レイアウト間で固有でありシーケンシャルでなければならない。
  • モデル空間タブはゼロ(0)のタブ順序でなければならない。ペーパー空間の各タブは 1 以上のタブ順序を持たなければならない。


サンプル
(vl-load-com)
(defun c:Example_TabOrder()
    ;; 2 つの新しいレイアウトを作成して、アルファベット順にするレイアウトのタブ オーダーを変更するサンプル
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
        
    ;; レイアウトを作成
    (setq Layout1 (vla-Add (vla-get-Layouts doc) "あ VIEW"))
    (setq Layout2 (vla-Add (vla-get-Layouts doc) "うん VIEW"))
    (setq SortIt (list)
          TabCount 0)

    ;; 内部で五十音順に並べ替える
    (while (>= (1- (vla-get-Count (vla-get-Layouts doc))) TabCount)
        (setq AddedTab :vlax-false)
        (setq TabName (vla-get-Name (vla-Item (vla-get-Layouts doc) TabCount)))
        (if (/= (strcase TabName) "MODEL")                  ;; モデルはスキップ
            (progn
               (setq SortIt (append SortIt (list TabName)))        ;; リストの先頭に追加
            ))
        (setq TabCount (1+ TabCount))
    )

    ;; レイアウトの名前を並べ替える
    (setq SortIt (acad_strlsort SortIt)
          SortCount 1)

    ;; タブオーダーを更新
    (foreach name SortIt
        (progn
            (setq tempLayout (vla-Item (vla-get-Layouts doc) name))
            (vla-put-TabOrder tempLayout SortCount)
            (setq SortCount (1+ SortCount))
        ))
    
    ;;-------------------------------
    ;; 新しいタブオーダーを読み込み
    ;;-------------------------------
    (setq msg "新しいタブオーダーは : \n"
          TabCount 0)

    (while (>= (1- (vla-get-Count (vla-get-Layouts doc))) TabCount)
        (setq TabName (vla-get-Name (vla-Item (vla-get-Layouts doc) TabCount)))
        
        (if (/= (strcase TabName) "MODEL")                  ;; モデルを変更
            (progn
                (setq TabOrder (vla-get-TabOrder (vla-Item (vla-get-Layouts doc) TabCount)))
                (setq msg (strcat msg "(" (itoa TabOrder) ")    " TabName "\n"))
            )
        )
        (setq TabCount (1+ TabCount))
    )
    
    (alert msg)
)


関連事項