サポート > PC-MAPPING ヒント集 > スクリプト > スクリプトによる文字整列型の設定
スクリプトによる文字整列型の設定
ポイントと文字ボックス型の引き出し線の方向から角度を取得し、文字整列型を設定するスクリプトです。
■ サンプル
サンプル[script36.zip(約14KB)]をダウンロードする
sample.pcm:サンプルプロジェクト
PcmSetTextAlign.js:サンプルスクリプト

■ 準備
  1. ダウンロードしたファイルを「C:\sample\script36」へ解凍します。

  2. ダウンロードしたスクリプトファイル「PcmSetTextAlign.js」をユーザーメニューに登録します。
    [ワークスペース]リボン-[カスタマイズ]-[ユーザーメニュー]を実行して[ユーザー定義メニュー1]ダイアログボックスを表示します。
    <追加>ボタンをクリックし、[ユーザー定義メニュー2]ダイアログボックスを表示します。
    スクリプトを登録して、引数を以下のように設定します。
    ここでは、
    • レイヤータイトル:「samples」
    • 文字ボックス型フィールドタイトル:「文字ボックス」
    • 文字整列型フィールドタイトル:「文字整列」
    と入力します。

  3. サンプルプロジェクト「sample.pcm」を開きます。

  4. 画面には、「sample」レイヤーポイント内部属性「注記」「文字ボックス」「文字整列」フィールドの設定を表記しています。

  5. スクリプト実行前は、全レコードの「文字整列」フィールドに「左上」が設定されています。

■ 解説
要点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);

■ 実行
  1. サンプルプロジェクト「sample.pcm」を開きます。

  2. [ユーザーメニュー]リボン-[表示]-[文字整列型の設定]を実行します。

  3. すると、文字整列の値が変更されている事がわかります。