スクリプトによる文字整列型の設定
ポイントと文字ボックス型の引き出し線の方向から角度を取得し、文字整列型を設定するスクリプトです。
- ■ サンプル
サンプル[script36.zip(約14KB)]をダウンロードする
 | sample.pcm | :サンプルプロジェクト |
 | PcmSetTextAlign.js | :サンプルスクリプト |
- ■ 準備
-
- ダウンロードしたファイルを「C:\sample\script36」へ解凍します。
- ダウンロードしたスクリプトファイル「PcmSetTextAlign.js」をユーザーメニューに登録します。
[ワークスペース]リボン-[カスタマイズ]-[ユーザーメニュー]を実行して[ユーザー定義メニュー1]ダイアログボックスを表示します。
<追加>ボタンをクリックし、[ユーザー定義メニュー2]ダイアログボックスを表示します。
スクリプトを登録して、引数を以下のように設定します。
ここでは、
- レイヤータイトル:「samples」
- 文字ボックス型フィールドタイトル:「文字ボックス」
- 文字整列型フィールドタイトル:「文字整列」
と入力します。
- サンプルプロジェクト「sample.pcm」を開きます。
- 画面には、「sample」レイヤーポイント内部属性「注記」「文字ボックス」「文字整列」フィールドの設定を表記しています。
- スクリプト実行前は、全レコードの「文字整列」フィールドに「左上」が設定されています。

- ■ 解説
-
- 要点1
- ポイントのXY座標値を取得します。
dblScale = 1 / objCi.InfoDouble(11)
- 要点2
- 「文字ボックス」フィールドから引き出し線の文字列表示位置の相対位置XY(mm)を取得します。
var x0 = lyr.PntGetPos(i, 0, 1);
var y0 = lyr.PntGetPos(i, 1, 1);
- 要点3
- 引き出し線の相対位置XY(mm)が(0,0)の場合、引き出し線が設定されていないと考え、「文字整列」フィールドに「0」(左上)の値を入力します。
if(x1 == 0 && y1 == 0){
tmp = db.SetCell(i, fid2, 0);
- 要点4
- ポイントのXY座標値と引き出し線の相対位置XY(mm)から方向(角度)を取得します。
var deg = Xksad(x0, y0, x1, y1);
- 要点5
- 取得した方向(角度)によって、「文字整列」フィールドに値を入力します。
- 0°~45°の場合、「4」(左中)
- 45°~135°の場合、「9」(中下)
- 135°~225°の場合、「6」(右中)
- 225°~315°の場合、「1」(上中)
- 315°~360°の場合、「4」(左中)
if(deg < 45){
tmp = db.SetCellByInteger(i, fid2, 4);
- ■ 実行
-
- サンプルプロジェクト「sample.pcm」を開きます。
- [ユーザーメニュー]リボン-[表示]-[文字整列型の設定]を実行します。
- すると、文字整列の値が変更されている事がわかります。


|