<ARCHICAD23 >
GDLオブジェクト内でテキスト文字列を入力する際に、文字列の内容やフォントの種類やサイズ、ペンカラー等を制御するには、設定したい項目をパラメータとして作成する必要があります。ARCHICAD23でGDLオブジェクトを作成する際に、設定することが多い下記項目について記述方法を紹介します。
文字列の内容を設定で変更できるようにする
GDLオブジェクトではパラメータを使用して、記述内容を参照しながら作成することができます。内容をオブジェクトの設定で変更できるようにするためには、テキスト文字列をパラメータとします。
パラメータのボタンをクリックして、「新規」のボタンをクリックして新しく変数を作成します。
今回は下記のように作成しています。
- 変数名: F
- タイプ: テキスト
- 名前: テキスト
- 値: テキスト内容
次に、2Dスクリプトに記述します。下記のように記述すると変数「F」の内容をテキストとして作成するため、オブジェクトの設定で変数の内容を変更すると、テキスト文字列の内容が変わります。
2Dスクリプトには下記のように記述します。
テキスト文字列のペンカラーを変更する
テキストのペンカラーを変更するには、2DスクリプトでPENとして記述すると、その後に記述された内容はそのペンカラーで作成されます。別のペンカラーにしたい場合は、再度、PENを記述し設定します。下の図は、20番のペンカラーを指定して記述しています。このPENで設定した後に記述される内容は20番のペンカラーで作成されます。
パラメータの変数として追加する場合は、テキスト文字列の場合と同様ですが、オブジェクトの設定内のシンボル線ペンや切断線ペンを使用したい場合は、下記を使用します。
- シンボル線ペン: SYMB_VIEW_PEN
- 切断線ペン: SYMB_SECT_PEN
シンボル線ペンを参照する場合の記述は下記です。
PEN SYMB_VIEW_PEN
text2 0,0, F
フォントの種類を取得する
フォントの種類を取得するには、パラメータとして変数の追加の他に、PCに存在しているフォントの一覧を取得する必要があります。既存の変数を使用してフォントの一覧から選択できるようにします。
パラメータをクリックして、下記の変数を追加します。
- 変数名: fontType
- タイプ: テキスト
- 名前: フォントタイプ
- 値: Meiryo UI 日本語
次に、指定したフォントをテキスト文字列に反映させるためには、スタイルを設定する必要があります。DEFINE STYLEを使用してテキストのスタイルを定義します。フォントの種類を設定する箇所に作成した変数「fontType」を設定します。例えば、フォントの種類は設定したfontTypeから参照し、文字高さは3㎜、テキストの基準は左下の場合、下記のように記述します。
下記にように記述します。テキストの基準が左上から、左下に変わっているため、2Dスクリプトにホットスポットを追加しています。
DEFINE STYLE "textstyle" fontType, 3, 7, 0
SET STYLE "textstyle"
PEN SYMB_VIEW_PEN
hotspot2 0, 0
text2 0,0, F
フォントサイズを設定する
フォントサイズは先ほどのDEFINE STYLE内で定義するため、パラメータとして変数を追加します。RANGEを設定して、負の値にならないよう制限を追加します。
まず、パラメータに変数として「gs_font_size」を追加します。他のオブジェクトでもこの変数名を使用しているため、一覧表などで一括して修正したい場合は、同じ変数名とします。
- 変数名: gs_font_size
- タイプ: 実数
- 名前: フォントサイズ
- 値: 10.0
下記のように記述します。
PEN SYMB_VIEW_PEN
text2 0,0, F
次に、この変数が負の値とならないよう制限を追加します。パラメータスクリプトに移動し、下記のように記述します。パラメータの値を絶対値として入力する記述と0より大きい値が入力できるように制限します。
記述は下記です。
PARAMETERS gs_font_size = abs(gs_font_size)
VALUES "gs_font_size" range (0, ]
最後に、2Dスクリプトで作成した変数を使用するように修正します。
記述は下記です。
DEFINE STYLE "textstyle" fontType, gs_font_size, 7, 0
SET STYLE "textstyle"
PEN SYMB_VIEW_PEN
hotspot2 0, 0
text2 0,0, F
コメント
0件のコメント
記事コメントは受け付けていません。