#
以降は文字列内を除きコメントです。#preco
と記入すると、クリップボード経由などで貼り付けるとタイプ識別が行われます(予定)。.
(ピリオド)です。0xffaa1234
や0XCC1234AA
など)。"
(ダブルコーテーション)で囲みます。\n
を使います。例えば、"The Martians are
coming!"
は、The Martians are coming!
となります。改行が必要な場合は、The Martians are\n coming!
とします。
"
が必要な場合は\"
とします。文字列中に\
が必要な場合は\\
です。bylayer
、線種で使われるconstruction
、色名など)があります。パラメータの区切りは少なくとも一つの空白文字(スペース、タブ)です。text"abcdefg"100 10#This line is OK, but not recommended. It's easier to read if there are spaces.
&
を付けることで次の行へ続けて書くことができます(&
はパラメータと同じ記法で書くこと)。line 0 0 10 10 20 20
#これを以下のように書くことはできない。
line 0 0 10 10 20&
20
#次のようにすること。
line 0 0 10 10 20 &
20
参考例
#preco
line 0 0 100 0 100 -50 # lines (0,0)-(100,0)-(100,-50)
lc red # Line color is red.
# Indent is OK.
circle 0 0 100 # circle center=(0,0) radius=100
text "The Martians are coming!" 100 100 0
行が数値から始まる場合、それ以降の数値を座標とみなして線分を引きます。
XY座標を空白文字(スペースorタブ)で区切ります。一行に複数のXY座標を書くことも可能です。
空行を含む数値以外の行があるまでが一つのセグメントで連続線を描きます。
以下の例では、辺の長さが40と80の2つの正方形(と円)を描きます。
線しかない場合はこれでもいいのですが、他の図形がある場合はlineコマンドかpolylineコマンドを使うことを推奨します。
-20 -20
20 -20
20 20
-20 20
-20 -20
-40 -40 40 -40 40 40 -40 40
-40 -40
circle 0 0 50
コマンド行は、最初にコマンドがあり、パラメータが続きます。
パラメータは省略できるものがあります。パラメータが省略された場合、特別な意味がある場合とデフォルト値が使われる場合があります。パラメータは空白で区切るため、複数のパラメータの途中のパラメータのみを省略することはできません。
この仕様書上でのパラメータは次の記法によります。
[]
で囲みます。=
で右辺に記入します。下記の例では、x, y, radiusは省略できませんが、angleを省略した場合はangle=0.0、flatnessも省略した場合は、flatness=1.0、angle=0.0となります。
circle x y radius [flatness=1.0] [angle=0.0]
また、下記の例ではx, y片方のみは省略できませんが、x, yのペアは省略できます。
p0 [x y]
図形の色や線種など図形の装飾に関するもの。
PreCadのツールバーで現在選択されている色、線種、線幅。
色については要素により、カレント線色、カレント文字色、カレント塗りつぶし色などと呼びます。単にカレント値と呼ぶこともあります。
フォントについてもカレントフォント名等、同様です。
PreCadのレイヤリストで選択されている書き込みレイヤ。
用紙上で表示される大きさを用紙寸、それを縮尺で割った物が実寸です。
線幅は常に用紙寸で書かれます。
ps f
f
が0の時、座標や長さは実寸、f
が1のときは用紙寸となります。初期値は0(実寸)です。
グループ化中は使用しないでください。
p0 [x y]
マウスで指示する座標を(x, y)にします。
これは、座標を(-X, -Y)オフセットすることと同様です。設定される座標値はpsコマンドの影響をうけます。
初期値は(0, 0)です。
パラメータなしの場合、初期値(0, 0)に戻します。
グループ化中は使用しないでください。
また、p0
コマンドの値は加算されるので注意してください(通常は複数使うことはないと思います)。
p0 100 50
line 100 50 200 50 # マウス位置から右横に100の長さの線を引きます。
p0 10 20 # 座標値は(100+10, 50+20)
line 100 50 200 50 # マウス位置から(-10, -20)の位置で右横に100の長さの線を引きます。
p0 # 初期化
line 100 50 200 50 # マウス位置から(100, 50)の位置で右横に100の長さの線を引きます。
文書構造に関するコマンドです。
layer [name]
書き込みレイヤをname
のレイヤにします。name
は文字列です。レイヤ名がない場合、カレントレイヤが書き込みレイヤになります。
初期値はカレントレイヤが書き込みレイヤです。
name
のレイヤが存在しない場合、その名前のレイヤが新たに作られます。
グループ化中は使用しないでください。
layer "Layer1" # レイヤ名"Layer1"を選択
layer # カレントレイヤを選択
色や線種などの図形の属性を指定するコマンドです。
lc [color]
これ以降の図形で使う線色を設定します。color
がない場合、カレント線色が使われます。
初期値はカレント線色です。
color
は整数値(32ビット、アルファ値も含む)及びいくつかの定義値が使えます。
名称 | 定義 |
---|---|
bylayer | レイヤカラー |
black | 黒(0xff000000) |
blue | 青(0xff0000ff) |
red | 赤(0xffff0000) |
magenta | 紫(0xffff00ff) |
green | 緑(0xff00ff00) |
cyan | 水色(0xff00ffff) |
yellow | 黄色(0xffffff00) |
white | 白(0xffffffff) |
gray | 灰色(0xff808080) |
lightgray | 明るい灰色(0xffd3d3d3) |
darkgray | 暗い灰色(0xffa9a9a9) |
transparent | 透明(0x00ffffff) |
lc -65536 # 0xffff0000(赤)。32ビットで上位から、ARGB
lc 0xffff0000 # 16進表記(赤)。xやaからfは大文字でも可
lc red # 赤
lc bylayer # レイヤ線色
lc # カレント線色
lt [name]
これ以降の図形で使う線種を設定します。name
がない場合、カレント線種が使われます。
初期値はカレント線種です。
bylayerはレイヤ線種、constructionは補助線、文字列の場合は線種名となります。
線種名は下表によります。
線種名 | パターン | 説明 |
---|---|---|
solid | なし | 実線 |
dashed | 12.0, 3.0 | 破線 |
dash_space | 12.0, 12.0 | 跳び破線 |
center | 24.0, 3.0, 7.0, 3.0 | 一点鎖線 |
phantom | 24.0, 3.0, 7.0, 3.0, 7.0, 3.0 | 二点鎖線 |
long-dash_dot | 24.0, 3.0, 0.5, 3.0 | 一点長鎖線 |
long-dash_2dot | 24.0, 3.0, 0.5, 3.0, 0.5, 3.0 | 二点長鎖線 |
long-dash_3dot | 24.0, 3.0, 0.5, 3.0, 0.5, 3.0, 0.5, 3.0 | 二点長鎖線 |
dot | 0.5, 3.0 | 点線 |
dash_dot | 12.0, 3.0, 0.5, 3.0 | 一点短鎖線 |
2dash_dot | 12.0, 3.0, 12.0, 3.0, 0.5, 3.0 | 一点二短鎖線 |
dash_2dot | 12.0, 3.0, 0.5, 3.0, 0.5, 3.0 | 二点短鎖線 |
2dash_2dot | 12.0, 3.0, 12.0, 3.0, 0.5, 3.0, 0.5, 3.0 | 二点二短鎖線 |
dash_3dot | 12.0, 3.0, 0.5, 3.0, 0.5, 3.0, 0.5, 3.0 | 三点短鎖線 |
2dash_3dot | 12.0, 3.0, 12.0, 3.0, 0.5, 3.0, 0.5, 3.0, 0.5, 3.0 | 三点二短鎖線 |
※パターンは線分長と空白のペアで、長さはこれに線幅を掛ける。
※パターンはSXF規格を参考にした。
※個人的にはsolid, dashed, center, phantom, dotあたりを使うと思います。
※線種名が上記の表にない場合、エラーではなく警告レベルで線種はsolid(実線)とします。
lt "solid" # 実線
lt bylayer # レイヤ線種
lt construction # 補助線
lt # カレント線種
lw [width]
これ以降の図形で使う線幅を設定します。線幅は用紙上の寸法です。width
がない場合、カレント線幅が使われます。
初期値はカレント線幅です。
bylayerはレイヤ線幅です。
lw 0.25 # 太さ0.25mm
lw bylayer # レイヤ線幅
lw # カレント線幅
lz f
fが1の場合、以降のline, arc, polyline, spline, bezierの終点と始点が結ばれます(図形を閉じます)。f
が0の場合は終点と始点を結びません。
初期値は0(終点と始点を結ばない)です。
fc [color]
これ以降の図形で使う塗りつぶし色を設定します。色の指定方法はlc
と同じです。
初期値はカレント塗りつぶし色です。
mt [name]
マーカー名を文字列で設定します。マーカー名がない場合はカレントマーカー名が使われます。初期値はカレントマーカー名です。マーカー名は下表によります。
名称 | 種類 | 備考 |
---|---|---|
asterisk | ||
circle | ||
dot | sizeを使わず、大きさは設定を使用する。 | |
plus | ||
square | ||
triangle | ||
x |
mt "plus" # マーカー '+'
mt # カレントマーカー
ms [size]
マーカーサイズを設定します。マーカーサイズは用紙寸になります。マーカーサイズがない場合はカレントマーカーサイズが使われます。初期値はカレントマーカーサイズです。
マーカー名がdot
の場合、このサイズは使われません。
※マーカーサイズは用紙寸なのでpsが0の場合、注意が必要です。
ms 4 # マーカーサイズ 4
ms # カレントマーカーサイズ
tc [color]
これ以降の図形で使う文字色を設定します。色の指定方法はlcと同じです。
初期値はカレント文字色です。
tb f
文字の配置基準です。f
は0:左下、1:中下、2:右下、3:左中、4:中央、5:右中、6:左上、7:中上、8:右上。
初期値は0(左下)です。
fn [name]
name
のフォント名を指定します。name
がない場合はカレントフォント名が使われます。
初期値はカレントフォント名です。
fh [h]
文字の高さを指定します。h
がない場合はカレント文字高さが使われます。
psが0の場合、ここで指定するサイズは実寸になります。
初期値はカレント文字高さです。
fw [w]
文字幅の比率を指定します。w
がない場合はカレント文字幅比率が使われます。
初期値はカレント文字幅です。
fs [s]
文字と文字の間隔を指定します。s
がない場合はカレント文字間隔が使われます。
psが0の場合、ここで指定するサイズは実寸になります。
初期値はカレント文字間隔です。
fa [a]
フォントの傾斜角を指定します。フォントの傾斜角は時計回りが正となるので注意してください。a
がない場合はカレント傾斜角が使われます。
初期値はカレント傾斜角です。
ff [f]
文字の修飾(イタリック、ボールドなど)を設定します。
f
は、以下の値の組み合わせです。
1 : イタリック
2 : ボールド
4 : 下線
8 : 取り消し線
16 :(予約:不使用)
32 :(予約:不使用)
64 : 文字のみ傾斜
128 : 枠線
f
がない場合はカレント文字修飾が使われます。
初期値はカレント文字修飾です。
fnt [h] [w] [s] [a] [f]
フォントに関するフォント名以外のパラメータを設定します。
h: 文字高さ、w: 文字幅の比率、s: 文字間隔、a: 文字傾斜角、f:文字修飾
パラメータを全て省略した場合は全てカレント値が使われます。パラメータを一部省略した場合、そのパラメータは変更されません。
初期値はカレント値です。
各パラメータ詳細は、fh,fw,fs,fa,ffを参照してください。
line [x0 y0] [x1 y1] [x2 y2] ... [xn yn]
線を引きます。複数のxy座標のペアをパラメータとして渡すとそれらを結んだ線を引きます。
lzが1の場合は終点と始点の間に線を引きます。
通常、直線は2点が必要ですが、2点より少なくてもエラーにはなりません(何も書かれません)。また、パラメータは偶数個必要です。
# (0,0)、(100,0)、(100,50)の座標をつなぐ線。
line 0 0 100 0 100 50
circle x y radius [flatness=1.0] [angle=0.0]
中心座標(x,y)、半径radius、扁平率flatness、傾きangleの楕円を描きます。塗りつぶしができます。
circle 0 0 100 # 中心(0,0)、半径100の円
circle 0 0 100 0.5 # 中心(0,0)、半径100、扁平率0.5の楕円
circle 0 0 100 0.5 30 # 中心(0,0)、半径100、扁平率0.5、傾き30度の楕円
arc x y radius start sweep [flatness=1.0] [angle=0.0]
中心座標(x,y)、半径radius、開始角start、角幅sweep、扁平率flatness、傾きangleの楕円弧を描きます。塗りつぶしができます。startから、sweepが正の場合は左回り、負の場合は右回りの円弧になります。
lzが1の場合は終点と始点の間に線を引きます(円弧ではなくベジェ曲線になります)。
arc 0 0 100 30 45 # 中心(0,0)、半径100、開始角30、角幅45の円弧
arc 0 0 100 30 -45 0.5 # 中心(0,0)、半径100、開始角30、角幅-45(時計回りで45度)、扁平率0.5の楕円弧
arc 0 0 100 30 -45 0.5 30 # 中心(0,0)、半径100、開始角30、角幅-45(時計回りで45度)、扁平率0.5、傾き30度の楕円弧
arc 0 0 100 30 45 # 中心(0,0)、半径100、開始角30、角幅45の円弧
arc 0 0 100 30 -45 0.5 # 中心(0,0)、半径100、開始角30、角幅-45(時計回りで45度)、扁平率0.5の楕
fan x y radius start sweep [flatness=1.0] [angle=0.0]
中心座標(x,y)、半径radius、開始角start、角幅sweep、扁平率flatness、傾きangleの扇形(ベジェ曲線)を描きます。塗りつぶしができます。
polyline [x0 y0] [x1 y1] [x2 y2] ... [xn yn]
複数のxy座標のペアをパラメータとして渡すとそれらを結んだ線(ポリライン)を描きます。
lzが1の場合は終点と始点の間に線を引きます。
塗りつぶしができます。
spline [x0 y0] [x1 y1] [x2 y2] ... [xn yn]
複数のxy座標のペアをパラメータとして渡すとそれらを結んだスプライン曲線を描きます。
lzが1の場合は終点と始点を曲線で結びます。
塗りつぶしができます。
bezier x0 y0 dx0 dy0 cx1 cy1 x1 y1 [dx1 dy1 cx2 cy2 x2 y2] ... [dxn-1 dyn-1 cxn cyn xn yn]
3次ベジェ曲線です。頂点、制御点1(dx,dy)、制御点2(cx,cy),頂点の順に並べてあります。頂点数をmとした場合、制御点と頂点の合計は3*m+1になります。
lzが1の場合は終点と始点の間に直線を引きます。
塗りつぶしができます。
text str x y [angle=0.0]
文字列strを座標(x,y)、角度angleで描きます。塗りつぶし色で背景を塗ることができます。
text "test" 0 0
text "test" 0 0 30
marker x y [angle=0.0]
マーカーを座標(x,y)、角度angleでマーカーを描きます。
スタイルはマーカーの種類はmt、マーカーサイズはms、色などは線の属性を使用します(色はlc、線幅はlw、線種ltはconstructionのみ有効)。
group
....
....
end group
group
とend group
間の図形をグループ化します。group
中にgroup
を入れることもできます。
group
中ではlayerコマンド、psコマンド、p0コマンドは使えません。
また、end group
が存在しない場合、そのグループ図形は追加されません(エラーにするか未定)。
2025/04/17
2025/04/09