DCL入門

ダイアログボックスのレイアウトをDCLで変更しよう!【AutoCAD】

はこ
はこ

こんにちは!はこです。
AutoLISPを独学し、5年以上業務で使用しています。

こんな方に向けた記事です

  • ダイアログボックスのレイアウトを変更したいけど、どうやるの?
  • タイルをグループ毎(クラスタ)で囲って見やすくしたい

こんなお悩みをお持ちの方に向けて、今回の記事ではダイアログボックスのレイアウト(配置)について解説していきます。

DCLの記述でレイアウトを考えるのは楽しい作業なのでぜひご覧ください。

そもそもDCLってなに?という方はこちらの記事をご覧ください。
関連記事:ダイアログボックスを表示しよう!AutoCADのDCLを解説【AutoLISP】

ダイアログボックスのレイアウトをDCLで変更しよう!【AutoCAD】

layout-2

基本となるレイアウト

基本となるレイアウトの記述は次の4つです。実際に使用するときはこれらのレイアウトをうまく組み合わせて、理想の見た目に整えます。

レイアウト(配置)DCLの記述
layout-column
:column{}
layout-row:row{}
layout-boxed_column:boxed_column{}
layout-boxed_row
:boxed_row{}
はこ
はこ

1つずつ順番に解説していきます。

縦並び配置 column

columnはタイルを縦並び(下方向)に配置することができます。

DCLではレイアウトを記述せずタイルのみ記述した場合は縦並び(下方向)になります。

そのため、今回の図の例ではcolumnがなくても結果的に表示されるダイアログボックスは同じです。

layout-column
:column {}
{}内に記述したタイルが記述した順番で縦並び(下方向)に配置されます。
Layout_column:dialog {
  label = "Layout-column"; 
  :column {
    :edit_box {
      label = "column-1";
      key = "column-1";
    }
    :edit_box {
      label = "column-2";
      key = "column-2";
    }
  }
  ok_cancel;
}

横並び配置 row

rowはタイルを横並び(右方向)に配置することができます。

columnも同様ですが、rowの中に記述したタイルだけ横並びになります。

layout-row
:row {}
{}内に記述したタイルが記述した順番で横並び(右方向)に配置されます。
Layout_row:dialog {
  label = "Layout-row"; 
  :row {
    :edit_box {
      label = "row-1";
      key = "row-1";
    }
    :edit_box {
      label = "row-2";
      key = "row-2";
    }
  }
  ok_cancel;
}

枠付き縦並び配置 boxed_column

前述したcolumnと同様に縦並び(下方向)で配置されて、boxed_column内に記述したタイル全体を囲う枠線が表示されます。

枠線にはラベルも表示できるのでタイルのグループ(クラスタ)を見やすくすることができます。

layout-boxed_column
:boxed_column {}
{}内に記述したタイルが記述した順番で縦並び(下方向)に配置され、タイル全体を囲う枠線が表示されます。
Layout_boxed_column:dialog {
  label = "Layout-boxed_column"; 
  :boxed_column {
    label = "boxed_column";
    :edit_box {
      label = "column-1";
      key = "column-1";
    }
    :edit_box {
      label = "column-2";
      key = "column-2";
    }
  }
  ok_cancel;
}

枠付き横並び配置 boxed_row

rowと同様で横並び(右方向)に配置することができます。

boxed_columnと同じく枠線が表示されて、枠線にはラベルも表示することが可能です。

layout-boxed_row
:boxed_row {}
{}内に記述したタイルが記述した順番で横並び(右方向)に配置され、タイル全体を囲う枠線が表示されます。
Layout_boxed_row:dialog {
  label = "Layout-boxed_row"; 
  :boxed_row {
    label = "boxed_row";
    :edit_box {
      label = "row-1";
      key = "row-1";
    }
    :edit_box {
      label = "row-2";
      key = "row-2";
    }
  }
  ok_cancel;
}

レイアウトを組み合わせてみる

基本となるレイアウト4つを組み合わせると下のようなダイアログボックスが作成できます。

今回の例ではタイルはすべて編集ボックスにしていますが、ボタンやリストボックスに置き換えることも可能です。

こちらを参考にオリジナルのダイアログボックスを作成してみてください。

はこ
はこ

タイルの置き換えやレイアウトの変更がDCLの楽しいところです!

all-layout
All_Layout:dialog {
  label = "All-Layout";
  :boxed_column {
    label = "boxed_column";
    :row {
      :edit_box {
        label = "edit-1";
        key = "edit-1";
      }
      :edit_box {
        label = "edit-2";
        key = "edit-2";
      }
    }
    :edit_box {
      label = "edit-3";
      key = "edit-3";
    }
  }
  :boxed_row {
    label = "boxed_row";
    :column {
      :edit_box {
        label = "edit-4";
        key = "edit-4";
      }
      :edit_box {
        label = "edit-5";
        key = "edit-5";
      }
    }
    :edit_box {
      label = "edit-6";
      key = "edit-6";
    }
  }
  ok_cancel;
}

まとめ

今回はダイアログボックスのレイアウト(配置)について解説してきました。

レイアウトを整えると見やすいダイアログボックスを作成できるので、ぜひ活用してみてください。

レイアウト(配置)DCLの記述内容
layout-column
:column{}縦並び(下方向)に配置
layout-row:row{}横並び(右方向)に配置
layout-boxed_column:boxed_column{}縦並び(下方向)に配置
全体を囲う枠線が表示される
layout-boxed_row
:boxed_row{}横並び(右方向)に配置
全体を囲う枠線が表示される

プログラミングをもっと学びたい方におすすめ

AutoLISPをより理解しやすくするためには他のプログラミング言語を覚えることをおすすめします。こちらの記事ではおすすめのオンラインプログラミングスクールを紹介していますのでぜひご覧ください。

関連記事:学習目的別にご紹介!おすすめオンラインプログラミングスクール3選

無料体験もできるオンラインプログラミングスクールです!

-DCL入門

AutoLISPのおすすめ書籍はコチラ
AutoLISPのおすすめ書籍はコチラ