1 PreCadの特徴

  • PreCadは2DCADです。複数のページを作成することができます。
  • 各ページにはレイヤーの他にシートがあります。シートは縮尺を設定できます。
  • シートを複数使用することで縮尺の異なる部分図を作成することができます。
  • PreCadのファイルは複数のファイルをZIP形式で圧縮し、拡張子をpcadとしたものです。拡張子をzipに変えて展開すると内容を確認することができます。

2 ファイル構成

  • PreCadの図面ファイルはインデックスファイル及び複数の図面ファイルにより構成されています。それらをzipで圧縮後、拡張子をpcadに変更したものです。そのためPreCadのファイルの拡張子をzipに変更し解凍すると構成するファイルを確認することができます。
    以下はファイル構成の例です。
/
 ├index
 ├drawing_1.pcdt
 ├drawing_2.pcdt
 ├drawing_3.pcdt
 └media/
   ├ e87099e2-8962-4e33-9de5-87eda5b55270.jpg
   └ 01ed77be-822f-474b-a297-6d4c025ba6be.jpg
  • インデックスファイル及び図面ファイルはテキストファイルで文字コードはUTF8です。改行コードはLF(0x0A)もしくはCRLF(0x0D, 0x0A)です。
  • ファイルフォーマットはタグパラメータ形式を使用しています。タグパラメータ形式はタグの次にパラメータを()で囲み記述します。パラメータは、数値、文字列、ラベル及びタグパラメータを複数含めることができます。パラメータの区切りは空白文字です。また、パラメータがないタグも存在します。タグの出現順は一部(セクション、ページ、レイヤ、シート、図形の順序など)を除き自由です。
  • タグ名は大文字小文字を区別します。
  • 一部のタグには短縮形があります。この仕様書では短縮形があるものは[]で囲って併記します。
  • 改行や空白などは無視されます(ただし、ファイル先頭のfiletypeは除きます)。
  • //から行末まではコメントです。
  • 数値は整数(Int)もしくは実数(Double)でタグごとに判断します。
  • 整数は16進表記も使えます。16進表記では先頭に0xを付けます。16進表記は主に色値に使います。色値は32ビットARGBです。
  • 文字列はダブルクォーテーションでくくります。文字列中の行末の改行は無視されます。\はエスケープ文字です。改行は\n、タブは\tです。\の後にその他の文字が来た場合はその文字が使われます(例えばダブルクォーテーションは\"を使います)。
  • ラベルは%で始まる任意の文字の集合です。例えば、色で%lはレイヤ線色を表します。文字のスタイルフラグの%ibはイタリックとボールドの組み合わせです。
  • ファイルの1行目にfiletypeタグを記入してください。
  • 例えば、indexファイルは1行目にfiletype("precad_archive")と記入します。これでファイルの種類を判別します。filetype("precad_archive")はタグパラメータ形式ですが、途中に空白や改行を入れず行の先頭から書いてください(ファイル種別の判別を簡略化するためです)。
  • 1行目のfiletypeはアプリケーション側で一行読み込んで文字列として比較しても通常のタグパラメータと同じように解析してもどちらでも問題ありません。
  • mediaフォルダは画像などを同梱する時に使います。画像はこのフォルダに保存する他に、図面ファイル内に文字列として同梱することもできます。
  • 以下はタグパラメータ形式の例です。
filetype("sample")  //一行目はファイルタイプ。ここでは空白文字を使わないこと。
tag1(1)     //単独の数値。整数とするか実数とするかはタグの種類による。
tag2("STRING")  //単独の文字列。
tag3(10.0 15.5) //座標。数値を空白文字で区切る。
tag4(tag1(5.5)tag2("xyz"))  //複数のタグパラメータ。
tag5(0xFF000000)    //16進数は整数として解釈する。主に色で使われる。
tag7(%ab)   //ラベル
tag8(%)     //ラベル。%だけも有効
byLayer()     //パラメータなし。
//次の二つはどちらも同じ(タグ(ここではtag1, tag2)の順序はどちらが先でもよいという例)
tag9(tag1(5.5)tag2(123))
tag9(tag2(123)tag1(5.5))

3 インデックスファイル

インデックスファイルのファイル名はindexです。このファイルにページの情報と共通する設定を記入します。

  • 1行目にfiletype("precad_archive")を空白文字なしで記入してください。
  • 2行目以降にfileinfo、contents、settingsのセクションが続きます。この出現順は守ってください。バージョンアップ等で新たにセクションが加わるかもしれませんので未知のセクションは読み飛ばせるようにしてください。

以下はindexファイルの例です。

filetype("precad_archive")
fileinfo(
 version(2.0.0)appinfo("precad for windows version 2.0.0.0")
)
contents(
 pages(
  page(
   title("Page1")drawing("drawing_1.pcdt")
  )
  page(
   title("Page2")drawing("drawing_2.pcdt")
  )
 )
)
settings(
 pageIndex(0)
 paper(name("A3")size(297 210))
 grid(p0(0 0)gridSizeOnPaper(10)div(5)isScaled(0)angle(0.0))
 printInfo(printPaperSize(420.0 297.0)printCenter(0.0 0.0)printScale(2.0))
)

3.1 fileinfoセクション

ファイルの情報です。

要素 パラメータ 説明
version(version) version : String フォーマットのバージョン
appinfo(name) name : String 作成したアプリの情報
  • バージョンは2.1.0のようにメジャーバージョン、マイナ―バージョン、リビジョンを小数点で分割します。
  • メジャーバージョンは大きなファイル構造の変更時に変更します。マルチページ対応時に1から2に上がりました。メジャーバージョンが上がり旧アプリで読めない場合はエラーを表示します(メジャーバージョンが上がった場合、おそらくそうなるでしょう)。
  • マイナーバージョンは要素追加、タグ名の変更・削除などで変わります。この変更で新バージョンのファイルを旧バージョンで読むと情報の欠落などが起こるかもしれません。必要であれば警告を表示します。
  • 読み込み時、マイナーバージョンにより処理を変えることを推奨しません。マイナーバージョンはあくまでも参考とし、タグをもとに読み込みを行うべきです。
  • リビジョンはその他軽微な変更で変わります。

3.2 contentsセクション

3.2.1 pages

ページのリストです。1ページから順に並びます。

3.2.1.1 page

要素 パラメータ 説明
title(title) title : String 図面のタイトル
drawing(file) file : String 図面のファイル名
  • 図面ファイルの拡張子はpcdt(PreCad Drawing Text)です。

3.3 settingsセクション

設定を記述します。

settings(
 pageIndex(0)   
 paper(name("A3")size(297 210))
 grid(p0(0 0)gridSizeOnPaper(10)div(5)isScaled(0)angle(0.0))
 printInfo(printPaperSize(420.0 297.0)printCenter(0.0 0.0)printScale(2.0))
)

3.3.1 pageIndex : Int

選択されていたページのインデクス(0が1ページ目)。

3.3.2 paper

用紙設定。画面上で表示される用紙のサイズで印刷用紙で無いことに注意。

要素 パラメータ 説明
size(width height) width : Double, height : Double 用紙サイズ。

PreCadでは以下の用紙リストから用紙を選択している。

用紙名 サイズ(幅 x 高さ) mm 備考
Letter 279 x 216 11 x 8.5 in
A4 297 x 210
A3 420 x 297
A2 594 x 420
A1 841 x 594
A0 1189 x 841
2A 1682 x 1189
3A 2378 x 1682
4A 3364 x 2378
5A 4756 x 3364

3.3.3 grid

グリッドの設定

要素 パラメータ 説明
p0(x y) x : Double, y : Double グリッド原点
spacing(s) s : Double グリッド間隔(廃止)
div(n) n : Int グリッド間隔をn分割
isScaled(f) f : Int 0:グリッド間隔は用紙寸
1:グリッド間隔は実寸
angle(s) s : Double グリッド角度(度)
gridSizeOnPaper(s) s : Double 用紙上のグリッド間隔
  • spacingは2.8.0で追加された長さの単位と相性が悪いため2.8.0以降不使用。gridSizeOnPaperを使用する。

3.3.4 printInfo

印刷範囲の設定

要素 パラメータ 説明
printPaperSize(width height) width : Double, height : Double 印刷する用紙のサイズ
printCenter(x y) x : Double, y : Double 印刷領域の中心座標
printScale(scale) scale : Double 印刷倍率

4 図面ファイル

図面ファイルは各ページの図面本体です。
1行目にfiletype("precad_document")を記入してください。これでファイルの種類を判別します。
2行目以降にfileinfo、contents、settingsのセクションが続きます。この出現順は守ってください。バージョンアップ等で新たにセクションが加わるかもしれませんので未知のセクションは読み飛ばせるようにしてください。

4.1 fileinfoセクション

ファイルの情報です。インデックスファイルに準拠します。

要素 パラメータ 説明
version(version) version : Stgring フォーマットのバージョン
appinfo(name) name : String 作成したアプリの情報

4.2 contentsセクション

レイヤ、シート、図形を記述します。
drawingファイルでは基本的に使用する要素は事前に定義されていなければいけません。したがってshapesはsheet及びlayerが必要になるのでshapesの前にlayers及びsheetsが必要になります(layersとsheetsの出現順には制約がありません)。

contents(
 layers(
  layer(name("テスト1")color(0xFF000000)lineWidth(0))
  layer(name("テスト2")color(0xFF000000)lineWidth(0))
 )
 sheets(
  sheet(name("シート1")scale(0.3))
  sheet(name("シート2")scale(0.3))
 )
 shapes(
  sheet("シート2")
   layer("テスト1")
    ls(w(0.5))  //線幅0.5に変更。lineStyle(width(0.5))の省略形
    Line(...)
    Circle(...)
   layer("テスト2")
    ls(w(1.0))
    Line(...)
  ...
 )
)        

4.2.1 layers

レイヤのリストです。並びは表示されるときの重ね順で下から上になります。

4.2.1.1 layer

レイヤ

要素 パラメータ 説明
name(name) name : String レイヤ名
color(c) c : Int レイヤ色
省略時 0xff000000(黒)
lineWidth(w) w : Double レイヤ線幅
省略時 0.0
lineType(t) t : String レイヤ線種名
省略時 “solid”(実線)
visible(f) f : Int 0:非表示 1:表示
省略時 1
printable(f) f : Int 0:印刷不可 1:印刷可
省略時 1
editable(f) f : Int 0:編集不可 1:編集可
省略時 1

4.2.2 sheets

シートのリストです。並びは表示されるときの重ね順で下から上になります。

4.2.2.1 sheet

シート

要素 パラメータ 説明
name(name) name : String レイヤ名
scale(s) s : Double 縮尺
省略時 1.0
visible(f) f : Int 0:非表示 1:表示
省略時 1
printable(f) f : Int 0:印刷不可 1:印刷可
省略時 1
editable(f) f : Int 0:編集不可 1:編集可
省略時 1

4.2.3 shapes

図形のリストです。図形以外にsheet、layer及び属性値タグがあらわれます。

  • sheetコマンドで現在の書き込みシートを切り替えます。
  • layerコマンドで現在の書き込みレイヤを切り替えます。
  • 属性値(線種など)が図形外で使われた場合、その属性は以降の図形で使われます。
  • 図形の並びは表示されるときの重ね順で下から上になります。

4.2.3.1 図形リスト概要

  • 座標及び大きさ(線幅、半径、文字サイズ等)は用紙寸です。シートの縮尺で割ることで実寸になります。
  • 座標原点は用紙の中心でX軸は右が正、Y軸は上が正です。
  • 角度は度(degree)です。左回りが正です。ただし、文字の傾斜角は右回りが正です。
  • 図形には、座標などのパラメータの他に線種などの属性があります。
  • 図形のパラメータは省略でき、デフォルト値が定義されているものがあります。省略時の値が書かれていない場合、その値は未定義です。
  • 図形の属性は、現在選択されている属性(カレント属性)が使われます(ただし、すべての属性がカレント属性に指定できるわけではありません)。
    また、図形内に属性を書くことで、その属性値を上書きすることができます。
  • 図形の属性は、その一部のみをを変更することができます(例えば、線スタイルはその色のみを変更することができます)。 ただし、fillStyleのうち、グラデーションのパラメータは一部のみの変更はできず、省略した場合はデフォルト値が使われます。
// カレント線スタイルを幅0.5、実線、黒にする。
ls(w(0.5) t("solid") c(0xff000000))

// 線スタイルは幅1.0、実線、黒。カレント線スタイルは変更しない。
Line(ls(w(1.0)) pp(0 0 100 50))

// カレント線スタイルの色のみ変更(幅0.5、実線、赤)。
ls(c(0xffff0000))

//カレント線スタイルは、lsを使わずlc, lw, ltを使うこともできます
lc(0xff000000)  // 線色
lw(0.3)         // 線幅
lt(%a)          // 線種
  • 文字図形や寸法線などの文字列にはページタイトルなどに置換できるマクロ文字列を使用できます。以下のマクロ文字列が使用できます。
マクロ文字列
${$} $
${PageTitle} ページのタイトル
${PageNumber} ページ番号
${PageCount} 総ページ数
${SheetName} シート名
${SheetScale} シートの縮尺

4.2.3.2 図形属性

図形には以下の属性があります。要素名の[]内は短縮名です。

4.2.3.2.1 lineStyle(線スタイル属性)

線のスタイルです。

lineStyle(width(w)color(c)lineType(name)flag(f))
要素 パラメータ 説明
width(w)
[ w ]
w : Double / Label 線幅
%l : レイヤ線幅
color(c)
[ c ]
c : Int / Label 線色
%l : レイヤ線色
lineType(name)
[ t ]
name : String / Label 線種名
%l : レイヤ線種
%a : 補助線
flag(f)
[ f ]
f : Int フラグ
  • 線種
線種名 パターン 説明
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規格を参考にした。

  • フラグ(フォーマット2.10.0からこのフラグの代わりに%l等のラベルを使用する。ラベルを使う場合、このフラグは使用しないこと。両方使われた場合の動作は未定義)
    1:ColorByLayer
    0x1000:補助線
    0x2000:TypeByLayer
    0x8000:WidthByLayer
    ※ ColorByLayerの場合、線色があっても無視されます。線種と線幅も同様です。

4.2.3.2.2 fillStyle(塗りスタイル属性)

円や多角形の塗りのスタイルです。単色塗りは、solidとbyLayer、グラデーションとしてlg(線形グラデーション)とrg(放射状グラデーション)があります。

fillStyle(solid(0xFF00FF00))  // 緑単色塗り
fillStyle(0xFF00FF00)         // 上と同じ。2.10.0よりこの書式も可

fillStyle(byLayer())          // レイヤ色
fillStyle(%l)                 // 上と同じ。2.10.0よりこの書式も可
fillStyle(lg(c(0xff000000 0xffff0000)))   // 線形グラデーション
fillStyle(lr(c(0xff000000 0xffff0000)))   // 放射状グラデーション
要素 パラメータ 説明
solid(c) c : Int 面色
byLayer() レイヤ色
c c:Int/Label 面色
%l: レイヤ色
lg(…) グラデーション lg参照 線形グラデーション
rg(…) グラデーション rg参照 放射状グラデーション

○ グラデーション

lg(線形グラデーション)

要素 パラメータ 説明
c(start end) start : Int, end : Int 開始色、終了色。省略時は黒と白
a(angle) angle: Double 角度。省略時0.0

斜めのグラデーションは図形を囲む矩形の対角頂点を開始・終了点とする。

rg(放射状グラデーション)

要素 パラメータ 説明
c(start end) start : Int, end : Int 開始色、終了色。省略時は黒と白
p0(x y) x: Double, y: Double 中心座標(0.0~1.0)省略時(0.5, 0.5)

グラデーションは円形で、中心座標から図形を囲む矩形の最も遠い頂点までの距離を半径とする。
中心座標は図形を囲む矩形の中心(0.5, 0.5)、左下(0.0, 0.0)、右上(1.0, 1.0)とする。

4.2.3.2.3 arrow, startArrow, endArrow(矢印、始点矢印、終点矢印スタイル属性)

矢印のスタイルです。

arrow(size(3)type(1))
要素 パラメータ 説明
size(size)
[ s ]
size : Double 矢印の大きさ
type(id)
[ t ]
id : Int 矢印の種類
  • 矢印の種類
ID 種類
0 なし
1 開いた矢印
2 三角形
3 塗りつぶした三角形
4
5 塗りつぶした円
6 四角形
7 塗りつぶした四角形
8 斜め線
9 S字

4.2.3.2.4 textStyle(文字スタイル)
要素 パラメータ 説明
color(c)
[ c ]
c : Int/Label 文字色
%l : レイヤ線色
textAlign(a)
[ ta ]
a : Int 文字配置
fontName(name)
[ fn ]
name : String フォント名
fontHeight(h)
[ fh ]
h : Double フォントサイズ
fontWidthScale(w)
[ fw ]
w : Double フォント横幅比
fontSpace(s)
[ fs ]
s : Double 文字間隔
fontSkewAngle(a)
[ fa ]
a : Double 傾斜角(右回りが正)
sf(f) sf : Label 文字修飾
flag(f)
[ f ]
f : Int フラグ
  • 文字配置
    0:左 1:中央 2:右 3:両端揃え 4:均等揃え
  • 文字修飾ラベル

以下の文字の組み合わせ
i : イタリック
b : ボールド
u : 下線
s : 取り消し線
l : 文字のみ傾斜
f : 枠線

  sf(%ib) // イタリック・ボールド
  sf(%bi) // 上と同じ。順序は関係ない
  sf(%)   // ラベル文字がない場合、修飾無し
  • フラグ(フォーマット2.10.0からこのフラグの代わりに%l等のラベルを使用する。ラベルを使う場合、このフラグは使用しないこと。両方使われた場合の動作は未定義)

フラグは以下の値の組み合わせです。
0x0000_0001 : ColorByLayer
0x0002_0000 : (予約:縦書き?)
0x0004_0000 : イタリック
0x0008_0000 : ボールド
0x0010_0000 : 下線
0x0020_0000 : 取り消し線
0x0040_0000 : (予約:未定)
0x0080_0000 : (予約:折り返しなし?)
0x0100_0000 : 文字のみ傾斜
0x0200_0000 : 枠線

  • 「文字のみ傾斜」は、fontSkewAngleで文字のみを傾かせる(文字枠は長方形で文字のみ傾く)。フラグが立っていない場合は、文字枠を含め文字を歪ませる(文字枠は平行四辺形になる)。
  • 枠線は、太さ0.13mmの実線。

4.2.3.2.5 markerStyle(点スタイル)
要素 パラメータ 説明
type(name)
[ t ]
name : String マーカー名
size(s)
[ s ]
s : Double サイズ
  • マーカー名
名称 種類 備考
asterisk
circle
dot オブジェクトのsizeを使わず、すべての点の大きさは共通の設定を使用する。
plus
square 四角
triangle 三角形
x X

4.2.3.2.6 leaderStyle(引出線スタイル)
要素 パラメータ 説明
textOffset(d)
[ to ]
d : Double 文字の下線との縦方向の離れ
leaderOffset(d)
[ lo ]
d : Double 引出線の終点から文字横方向の離れ
extendLine(i)
[ el ]
i : Int 線を文字列まで延長。
0:延長なし 1:延長する
leaderOrientation(i)
[ lr ]
i : Int 文字の配置方向。
0:水平 1:平行
leaderBasis(i)
[ lb ]
i : Int 文字の配置。
0:上 1:下 2:中 3:自由
textStyle(…)
[ ts ]
文字スタイル参照 文字スタイル
arrowStyle(…)
[ as ]
矢印スタイル参照 矢印スタイル
textAngle(d)
[ ta ]
d:Double 文字角度。leaderBasisが3の時有効
  • leaderBasisが3の場合、leaderOffsettとtextOffsetは文字配置の相対座標。extendLine及びleaderOrientationは無視される。
  • textAngleはleaderBasisが3の時のみ有効。

4.2.3.2.7 balloonStyle(バルーンスタイル)
要素 パラメータ 説明
radius(r)
[ r ]
r : Double 半径
textStyle(…)
[ ts ]
文字スタイル参照 文字スタイル
arrowStyle(…)
[ as ]
矢印スタイル参照 矢印スタイル

4.2.3.2.8 dimensionStyle(直線寸法スタイル)
要素 パラメータ 説明
extensionLineOffset(d)
[ eo ]
d : Double 引出位置から引出線までの離れ
extensionLineOvershoot(d)
[ ev ]
d : Double 寸法線からの引出線の延長長さ
dimensionLineExtension(d)
[ de ]
d : Double 寸法線の延長長さ
textStyle(…)
[ ts ]
文字スタイル参照 文字スタイル
textOffset(d)
[ to ]
d : Double 文字の寸法線との離れ。省略時0
formatStyle(…)
[ fs ]
寸法値フォーマット参照 寸法値フォーマット
tolerance2LinesTextScale(s)
[ tt ]
s:Double 2行の許容差の文字サイズの比率
startArrow(…)
[ sa ]
矢印スタイル参照 始点の矢印スタイル
endArrow(…)
[ ea ]
矢印スタイル参照 終点の矢印スタイル
arrowMode(m)
[ am ]
m:Int 矢印モード
0:自動, 1:内側, 2:外側
ul(m)
m:Int 寸法値単位。寸法値自動の時に使用。
0:mm, 1:cm, 2:m, 3:inch

4.2.3.2.9 angleStyle(角度寸法スタイル)
要素 パラメータ 説明
extensionLineOffset(d)
[ eo ]
d : Double 引出位置から引出線までの離れ
extensionLineOvershoot(d)
[ ev ]
d : Double 寸法線からの引出線の延長長さ
dimensionLineExtension(d)
[ de ]
d : Double 寸法線の延長長さ
textStyle(…)
[ ts ]
文字スタイル参照 文字スタイル
textOffset(d)
[ to ]
d : Double 文字の寸法線との離れ
formatStyle(…)
[ fs ]
寸法値フォーマット参照 寸法値フォーマット
tolerance2LinesTextScale(s)
[ tt ]
s:Double 2行の許容差の文字サイズの比率
startArrow(…)
[ sa ]
矢印スタイル参照 始点の矢印スタイル
endArrow(…)
[ ea ]
矢印スタイル参照 終点の矢印スタイル
arrowMode(m)
[ am ]
m:Int 矢印モード
0:自動, 1:内側, 2:外側

4.2.3.2.10 radiusStyle(半径寸法スタイル)
要素 パラメータ 説明
dimensionLineExtension(d)
[de(d)]
d : Double 寸法線の延長長さ
fromText(i)
[ ft ]
i:Int 0:中心から円周に向けて線を引く。
1:文字から円周に向けての線のみ
textStyle(…)
[ ts ]
文字スタイル参照 文字スタイル
textOffset(d)
[ to ]
d : Double 文字の寸法線との離れ
formatStyle(…)
[ fs ]
寸法値フォーマット参照 寸法値フォーマット
tolerance2LinesTextScale(s)
[ tt ]
s:Double 2行の許容差の文字サイズの比率
arrowStyle(…)
[ as ]
矢印スタイル参照 矢印スタイル
arrowMode(m)
[ am ]
m:Int 矢印モード
0:自動, 1:内側, 2:外側
ul(m)
m:Int 寸法値単位。寸法値自動の時に使用。
0:mm, 1:cm, 2:m, 3:inch

4.2.3.2.11 diameterStyle(直径寸法スタイル)
要素 パラメータ 説明
dimensionLineExtension(d)
[de(d)]
d : Double 寸法線の延長長さ
textStyle(…)
[ ts ]
文字スタイル参照 文字スタイル
textOffset(d)
[ to ]
d : Double 文字の寸法線との離れ
formatStyle(…)
[ fs ]
寸法値フォーマット参照 寸法値フォーマット
tolerance2LinesTextScale(s)
[ tt ]
s:Double 2行の許容差の文字サイズの比率
startArrow(…)
[ sa ]
矢印スタイル参照 始点の矢印スタイル
endArrow(…)
[ ea ]
矢印スタイル参照 終点の矢印スタイル
arrowMode(m)
[ am ]
m:Int 矢印モード
0:自動, 1:内側, 2:外側
ul(m)
m:Int 寸法値単位。寸法値自動の時に使用。
0:mm, 1:cm, 2:m, 3:inch

4.2.3.2.12 arcDimensionStyle(弧長寸法スタイル)
要素 パラメータ 説明
extensionLineOffset(d)
[ eo ]
d : Double 引出位置から引出線までの離れ
extensionLineOvershoot(d)
[ ev ]
d : Double 寸法線からの引出線の延長長さ
dimensionLineExtension(d)
[ de ]
d : Double 寸法線の延長長さ
textStyle(…)
[ ts ]
文字スタイル参照 文字スタイル
textOffset(d)
[ to ]
d : Double 文字の寸法線との離れ
formatStyle(…)
[ fs ]
寸法値フォーマット参照 寸法値フォーマット
tolerance2LinesTextScale(s)
[ tt ]
s:Double 2行の許容差の文字サイズの比率
startArrow(…)
[ sa ]
矢印スタイル参照 始点の矢印スタイル
endArrow(…)
[ ea ]
矢印スタイル参照 終点の矢印スタイル
arrowMode(m)
[ am ]
m:Int 矢印モード
0:自動, 1:内側, 2:外側
em(m)
m : Int 引出線モード
0:自動, 1:平行, 2:放射状
ul(m)
m:Int 寸法値単位。寸法値自動の時に使用。
0:mm, 1:cm, 2:m, 3:inch
  • 引出線モード自動では、弧角が90度以内で平行、90度を超えると放射状になる。

4.2.3.2.13 formatStyle(寸法値フォーマット)
要素 パラメータ 説明
fractionDigits(d)
[ fd ]
d : Int 小数点桁数。省略時1
usesGroupingSeparator(f)
[ gs ]
f : Int 0:区切りなし 1:桁区切り
prefix(s)
[ p ]
s : String 前置文字
suffix(s)
[ s ]
s : String 後置文字
  • formatStyleは、寸法図形スタイル内で使用(カレント属性として指定できない)
  • prefix及びsuffixは図形により省略時の文字が違うことに注意。

4.2.3.2.14 tolerance(許容差)
要素 パラメータ 説明
toleranceType(t)
[ tt ]
t : Int 許容差タイプ 0:無し 1:一段 2:二段
value0(v)
[ v0 ]
v : Double 許容差上(一段の時はこちらを使用)
value1(v)
[ v1 ]
v : Double 許容差下(一段の時は使われない)
fractionDigits(d)
[ fd ]
d : Int 小数点桁数
suffix(s)
[ s ]
s : String 後置文字
  • toleranceは、寸法図形内で使用(カレント属性として指定できない)

4.2.3.3 カレント属性

  • カレント属性は、以下のものが使えます。属性名の[]内は短縮名です。
属性 初期値 説明
lineStyle
[ls]
lineStyle(w(0) c(0xff000000) t(“solid”))
fillStyle
[fs]
fillStyle(solid(0x00ffffff))
startArrow
[sa]
startArrow(t(0) s(3.0)) 線の始点矢印
endArrow
[ea]
endArrow(t(0) s(3.0)) 線の終点矢印
textStyle
[ts]
textStyle(c(0xff000000) ta(0) fn(““) fh(4.0) fw(1.0) fs(0.0) fa(0.0))
markerStyle
[ms]
markerStyle(t(“x”) s(2.5))
leaderStyle
[leas]
leaderStyle(to(0.0) lo(0.0) el(1) lr(0) lb(0) ts(c(0xff000000) ta(0) fn(““) fh(4.0) fw(1.0) fs(0.0) fa(0.0) f(0)) as(t(1) s(3.0)) ta(0.0))
balloonStyle
[bals]
balloonStyle(r(4.0) ts(c(0xff000000) ta(0) fn(““) fh(4.0) fw(1.0) fs(0.0) fa(0.0) f(0)) as(t(1) s(3.0)))
dimensionStyle
[dims]
dimensionStyle(eo(1.0) ev(2.0) de(5.0) ts(c(0xff000000) ta(0) fn(““) fh(4.0) fw(1.0) fs(0.0) fa(0.0) f(0)) to(0.0) fs(fd(1) gs(0) p(”“) s(”“)) tt(0.75) sa(t(1) s(3.0)) ea(t(1) s(3.0)) am(0) ul(0))
angleStyle
[angs]
angleStyle(eo(1.0) ev(2.0) de(5.0) ts(c(0xff000000) ta(0) fn(““) fh(4.0) fw(1.0) fs(0.0) fa(0.0) f(0)) to(0.0) fs(fd(1) gs(0) p(”“) s(”°“)) tt(0.75) sa(t(1) s(3.0)) ea(t(1) s(3.0)) am(0))
radiusStyle
[rads]
radiusStyle(de(5.0) ft(0) ts(c(0xff000000) ta(0) fn(““) fh(4.0) fw(1.0) fs(0.0) fa(0.0) f(0)) to(0) fs(fd(1) gs(0) p(”R”) s(““)) tt(0.75) as(t(1) s(3.0)) am(0) ul(0))
diameterStyle
[dias]
diameterStyle(de(5.0) ts(c(0xff000000) ta(0) fn(““) fh(4.0) fw(1.0) fs(0.0) fa(0.0) f(0)) to(0) fs(fd(1) gs(0) p(”Φ”) s(““)) tt(0.75) sa(t(1) s(3.0)) ea(t(1) s(3.0)) am(0) ul(0))
arcDimensionStyle
[arcs]
arcDimensionStyle(eo(1.0) ev(2.0) de(5.0) ts(c(0xff000000) ta(0) fn(““) fh(4.0) fw(1.0) fs(0.0) fa(0.0) f(0)) to(0.0) fs(fd(1) gs(0) p(”⌒“) s(”“)) tt(0.75) sa(t(1) s(3.0)) ea(t(1) s(3.0)) am(0) em(0) ul(0))

線スタイルについては以下の属性も受け付ける(図形内には使用できません)

要素 パラメータ 説明
lc(c) c:Int/Label lineStylec
lw(w) w:Double/Label lineStylew
lt(t) c:Int/Label lineStylet

※ カレント属性の文字スタイル及び矢印スタイルは、カレント属性のleaderStyle、balloonStyle、dimensionStyle、angleStyle、radiusStyle、diameterStyle及びarcDimensionStyleへ影響を与えません。

4.2.3.4 コマンド

以下のコマンドが使えます。

コマンド パラメータ 説明
save() 現在の属性をスタックに保存します。
restore() saveコマンドで保存した属性をスタックから戻します。
clear() 現在の属性を初期値に変更します(スタックは変更しません)。 
layer(name) name:String 書き込みレイヤをnameのレイヤに切り替えます。 
sheet(name) name:String 書き込みシートをnameのシートに切り替えます。 

※ このドキュメントを書いている時点でsave, restore, clearのコマンドは未使用です。

4.2.3.5 図形要素

図形名および要素名の[]内は短縮名です。

4.2.3.5.1 Line [ L ](線)
要素 パラメータ 説明
pp(x0 y0 x1 y1) x0 : Double, y0 : Double,
x1 : Double, y1 : Double
始点と終点
p0(x y) x : Double, y : Double 始点
p1(x y) x : Double, y : Double 終点
lineStyle(…)
[ ls ]
線スタイル参照 線スタイル
startArrow(…)
[ sa ]
矢印スタイル参照 始点の矢印スタイル
endArrow(…)
[ ea ]
矢印スタイル参照 終点の矢印スタイル
4.2.3.5.2 Polyline [ P ](ポリライン)
要素 パラメータ 説明
vertices(x1 y1 x2 y2 x3 y3 … xn yn)
[ vs ]
x1..xn : Double, y1..yn : Double 頂点
isClosed(flag)
[ ic ]
flag : Int 0:Open 1:Close 省略時0
lineStyle(…)
[ ls ]
線スタイル参照 線スタイル
fillStyle(…)
[ fs ]
塗りスタイル参照 塗りスタイル
startArrow(…)
[ sa ]
矢印スタイル参照 始点矢印
endArrow(…)
[ ea ]
矢印スタイル参照 終点矢印
  • isCloseが1の時は矢印スタイルは使われません。
4.2.3.5.3 Spline [ S ](スプライン曲線)
要素 パラメータ 説明
vertices(x1 y1 x2 y2 x3 y3 … xn yn)
[ vs ]
x1..xn : Double, y1..yn : Double 頂点
isClosed(flag)
[ ic ]
flag : Int 0:Open 1:Close 省略時0
lineStyle(…)
[ ls ]
線スタイル参照 線スタイル
fillStyle(…)
[ fs ]
塗りスタイル参照 塗りスタイル
startArrow(…)
[ sa ]
矢印スタイル参照 始点矢印
endArrow(…)
[ ea ]
矢印スタイル参照 終点矢印
  • カーディナルスプラインでテンションは0.5です。
  • isCloseが1の時は矢印スタイルは使われません。
4.2.3.5.4 Bezier [ B ](ベジェ曲線)
要素 パラメータ 説明
vertices(x1 y1 x2 y2 x3 y3 … xn yn)
[ vs ]
x1..xn : Double, y1..yn : Double 頂点と制御点
lineStyle(…)
[ ls ]
線スタイル参照 線スタイル
fillStyle(…)
[ fs ]
塗りスタイル参照 塗りスタイル
startArrow(…)
[ sa ]
矢印スタイル参照 始点矢印
endArrow(…)
[ ea ]
矢印スタイル参照 終点矢印
  • 3次ベジェ曲線です。頂点、制御点1、制御点2,頂点の順に並べてあります。頂点数をmとした場合、制御点と頂点の合計nはn=3*m+1になります。
  • isCloseが1の時は始点と終点が直線で繋がれ矢印スタイルは使われません。
4.2.3.5.5 Circle [ C ](円)
要素 パラメータ 説明
p0(x y) x : Double, y : Double 中心点
radius(r)
[ r ]
r : Double 半径
flatness(f)
[ f ]
f : Double 扁平率。省略時1
angle(a)
[ a ]
a : Double 角度(度)。省略時0
lineStyle(…)
[ ls ]
線スタイル参照 線スタイル
fillStyle(…)
[ fs ]
塗りスタイル参照 塗りスタイル
4.2.3.5.6 Arc [ A ](円弧)
要素 パラメータ 説明
p0(x y) x : Double, y : Double 中心点
radius(r)
[ r ]
r : Double 半径
flatness(f)
[ f ]
f : Double 扁平率。省略時1
angle(a)
[ a ]
a : Double 角度(度)。省略時0
startAngle(a)
[ st ]
a : Double 開始角(度)。省略時0
sweepAngle(a)
[ sw ]
a : Double 角幅(度)。省略時90
lineStyle(…)
[ ls ]
線スタイル参照 線スタイル
fillStyle(…)
[ fs ]
塗りスタイル参照 塗りスタイル
startArrow(…)
[ sa ]
矢印スタイル参照 始点矢印
endArrow(…)
[ ea ]
矢印スタイル参照 終点矢印
  • 開始角及び角幅は省略可能ですが省略値は暫定のため省略を推奨しません。
  • 角幅は左回りが正、右回りは負です。
4.2.3.5.7 Marker [ M ](点)
要素 パラメータ 説明
p0(x y) x : Double, y : Double 中心点
angle(a)
[ a ]
a : Double 角度(度)。省略時0
markerStyle(…)
[ ms ]
点スタイル参照 点スタイル
lineStyle(…)
[ ls ]
線スタイル参照 線スタイル
  • 線スタイルの線種は無効で常に実線になります。
  • 線種がレイヤ線種になっていても実線で表示される。
  • 線種が仮線の場合は印刷されない点となる。
4.2.3.5.8 Text [ T ](文字)
要素 パラメータ 説明
p0(x y) x : Double, y : Double 基準点
width(w)
[ w ]
w : Double 文字枠幅。省略時0。
height(h)
[ h ]
h : Double 文字枠高さ。省略時0。
text(t)
[ t ]
t : String 文字列
angle(a)
[ a ]
a : Double 角度(度)。省略時0
basis(b)
[ b ]
b : Int 配置基準。省略時0(左下)
fm(m) m : Int 文字枠モード。省略時0(自動)
textStyle(…)
[ ts ]
文字スタイル参照 文字スタイル。
fillStyle(…)
[ fs ]
塗りスタイル参照 文字背景塗りスタイル
  • 配置基準
    0:左下, 1:中下, 2:右下, 3:左中, 4:中央, 5:右中, 6:左上, 7:中上, 8:右上
  • 文字枠内は背景色で塗りつぶしができます。また、文字枠の幅で文字列は折り返されます。文字枠の大きさは、文字枠幅と文字枠高さと文字枠モードの組み合わせで決まります。
  • 文字枠モード
    0:自動。文字枠の幅と高さは文字列を囲む範囲(折り返しなし)。width(文字枠幅)とheight(文字枠高さ)は省略できる(存在しても使われない)。
    1:幅可変。width(文字枠幅)が有効で、文字枠高さは文字列を囲む範囲。height(文字枠高さ)は省略できる(存在しても使われない)。
    2:幅と高さ可変。文字枠は、width(文字枠幅)とheight(文字枠高さ)で決まる。
  • 必要な文字枠幅・高さが0の場合、文字列を囲む範囲を初期値としてとる。
4.2.3.5.9 Dimension [ Dim ](直線寸法)
要素 パラメータ 説明
p0(x y) x : Double, y : Double 寸法線始点
p1(x y) x : Double, y : Double 寸法線終点
direction(dx dy)
[ d ]
dx : Double, dy : Double 寸法線から引出位置への方向単位ベクトル
extensionLine0(d)
[ e0 ]
d : Double 始点側引き出し線の長さ
extensionLine1(d)
[ e1 ]
d : Double 終点側引き出し線の長さ
text(t)
[ t ]
t : String 文字列
tp(d) d : Double 文字配置位置 0.0が始点、1.0が終点、0.5が寸法線の中央。省略時0.5
enableAutoDimension(f)
[ ed ]
f : Int 1で寸法値自動。省略時1
lineStyle(…)
[ ls ]
線スタイル参照 線スタイル
fillStyle(…)
[ fs ]
塗りスタイル参照 文字背景塗りスタイル
dimensionStyle(…)
[ ds ]
直線寸法スタイル参照 直線寸法スタイル
tolerance(…)
[ to ]
許容差参照 許容差。省略時、許容差なし
  • 引き出し線の長さがマイナスの場合、directionの逆向きに引き出し線を伸ばす。
4.2.3.5.10 Radius [ Rad ](半径寸法)
要素 パラメータ 説明
p0(x y) x : Double, y : Double 寸法線始点
p1(x y) x : Double, y : Double 寸法線終点
text(t)
[ t ]
t : String 文字列
tp(d) d : Double 文字配置位置 0.0が中心、1.0が終点、0.5が寸法線の中央。省略時0.5
enableAutoDimension(f)
[ ed ]
f : Int 1で寸法値自動。省略時1
lineStyle(…)
[ ls ]
線スタイル参照 線スタイル
fillStyle(…)
[ fs ]
塗りスタイル参照 文字背景塗りスタイル
dimensionStyle(…)
[ ds ]
半径寸法スタイル参照 半径寸法スタイル
tolerance(…)
[ to ]
許容差参照 許容差。省略時、許容差なし
  • 始点は円の中心。
4.2.3.5.11 Diameter [ Dia ](直径寸法)
要素 パラメータ 説明
p0(x y) x : Double, y : Double 寸法線始点
p1(x y) x : Double, y : Double 寸法線終点
text(t)
[ t ]
t : String 文字列
tp(d) d : Double 文字配置位置 0.0が始点、1.0が終点、0.5が寸法線の中央。省略時0.5
enableAutoDimension(f)
[ ed ]
f : Int 1で寸法値自動。省略時1
lineStyle(…)
[ ls ]
線スタイル参照 線スタイル
fillStyle(…)
[ fs ]
塗りスタイル参照 文字背景塗りスタイル
dimensionStyle(…)
[ ds ]
直径寸法スタイル参照 直径寸法スタイル
tolerance(…)
[ to ]
許容差参照 許容差。省略時、許容差なし
4.2.3.5.12 Angle [ Ang ](角度寸法)
要素 パラメータ 説明
p0(x y) x : Double, y : Double 中心
radius(r)
[ r ]
r : Double 半径
startAngle(a)
[ st ]
a : Double 開始角(度)。省略時0
sweepAngle(a)
[ sw ]
a : Double 角幅(度)。省略時90
extensionLine0(d)
[ e0 ]
d : Double 始点側引き出し線の長さ
extensionLine1(d)
[ e1 ]
d : Double 終点側引き出し線の長さ
text(t)
[ t ]
t : String 文字列
tp(d) d : Double 文字配置位置 0.0が始点、1.0が終点、0.5が寸法線の中央。省略時0.5
enableAutoDimension(f)
[ ed ]
f : Int 1で寸法値自動。省略時1
lineStyle(…)
[ ls ]
線スタイル参照 線スタイル
fillStyle(…)
[ fs ]
塗りスタイル参照 文字背景塗りスタイル
dimensionStyle(…)
[ ds ]
角度寸法スタイル参照 角度寸法スタイル
tolerance(…)
[ to ]
許容差参照 許容差。省略時、許容差なし
  • 引き出し線の長さがマイナスの場合、中心と反対側に引き出し線を伸ばす。
4.2.3.5.13 ArcDimension [ ArcD ](弧長寸法)
要素 パラメータ 説明
p0(x y) x : Double, y : Double 中心
radius(r)
[ r ]
r : Double 寸法線の半径
startAngle(a)
[ st ]
a : Double 開始角(度)。省略時0
sweepAngle(a)
[ sw ]
a : Double 角幅(度)。省略時90
ar(r)
r : Double 弧長の半径
text(t)
[ t ]
t : String 文字列
tp(d) d : Double 文字配置位置 0.0が始点、1.0が終点、0.5が寸法線の中央。省略時0.5
enableAutoDimension(f)
[ ed ]
f : Int 1で寸法値自動。省略時1
lineStyle(…)
[ ls ]
線スタイル参照 線スタイル
fillStyle(…)
[ fs ]
塗りスタイル参照 文字背景塗りスタイル
dimensionStyle(…)
[ ds ]
弧長寸法スタイル参照 弧長寸法スタイル
tolerance(…)
[ to ]
許容差参照 許容差。省略時、許容差なし
  • 寸法線(寸法値が表示される)の半径と、弧長を測る半径があることに注意。
  • 延長線が平行(延長線モード自動で弧幅が90度以内の場合を含む)で寸法線の半径が弧長の半径より小さい時、寸法線が寸法線の半径で描画できないならば、寸法線の半径を無視し、寸法線を描画できる最小の半径を使い描画する。

4.2.3.5.14 Leader [ Lea ](引出線)
要素 パラメータ 説明
vertices(x1 y1 x2 y2 x3 y3 … xn yn)
[ vs ]
x1..xn : Double, y1..yn : Double 頂点
text(t)
[ t ]
t : String 文字列
lineStyle(…)
[ ls ]
線スタイル参照 線スタイル
fillStyle(…)
[ fs ]
塗りスタイル参照 文字背景塗りスタイル
leaderStyle(…)
[ lt ]
引出線スタイル参照 引出線スタイル
  • leaderStyle.leaderBasisが3(Free)の場合、文字列の配置点は最後の頂点にleaderStyle.textOffsetをX、leaderStyle.leaderOffsetをYとしてオフセットする(文字の基点は中心)。
  • leaderStyle.leaderBasisが3(Free)の場合、leaderStyle.extendLineとleaderStyle.leaderOrientationは無視され文字列の傾きはleaderStyle.textAngleが使われる。
4.2.3.5.15 Balloon [ Bal ](バルーン)
要素 パラメータ 説明
vertices(x1 y1 x2 y2 x3 y3 … xn yn)
[ vs ]
x1..xn : Double, y1..yn : Double 頂点
text(t)
[ t ]
t : String 文字列
lineStyle(…)
[ ls ]
線スタイル参照 線スタイル
fillStyle(…)
[ fs ]
塗りスタイル参照 文字背景塗りスタイル
balloonStyle(…)
[ bs ]
バルーンスタイル参照 バルーンスタイル
4.2.3.5.16 Group [ G ](グループ図形)
要素 パラメータ 説明
shapes(S1()S2()…Sn())
[ ss ]
S1..Sn:図形 図形のリスト
4.2.3.5.17 Path [ Pa ](パス図形)
要素 パラメータ 説明
p(…)
パスリスト
lineStyle(…)
[ ls ]
線スタイル参照 線スタイル
fillStyle(…)
[ fs ]
塗りスタイル参照 塗りスタイル

パス要素

要素 パラメータ 説明
s(x,y)
x:Double, y:Double 始点
e(flag)
flag:Int 0:閉じない, 1:閉じる
l(x1 y1 x2 y2 … xn yn)
x1..xn : Double, y1..yn : Double 直線
b(x1 y1 x2 y2 … xn yn)
x1..xn : Double, y1..yn : Double 3次ベジェ曲線。2つの制御点と1つの頂点の組
  • パスはs()から始まること。e()のフラグが1の時は最後の点から始点まで直線を引く。
4.2.3.5.18 Image [ Img ](画像図形)
要素 パラメータ 説明
p0(x y) x : Double, y : Double 中心
width(w)
[ w ]
w : Double
height(h)
[ h ]
h : Double 高さ
angle(a)
[ a ]
a : Double 角度(度)。省略時0
image(bytes)
[ im ]
bytes : Bytes 画像データ
src(file)
file : String 画像データファイルへのパス(フォルダ名含む)。例:src(“media\\e1ed77be-822f-4743-a295-6d4c025ba6b0.png”) フォルダの区切りの’\’は文字列では2つ必要なことに注意。ファイルに拡張子は無くてもよいが、あったほうがデバッグが楽になると思います。
type(name)
[ t ]
name : String 画像の種類(jpg, png, bmp)
参考値。省略可。
  • 画像の種類はバイナリから判断できるためtypeタグは無くてもよい。今のところtypeタグはデバッグで使うことを想定する。
  • imageタグとsrcタグは片方のみ有効。両方あった場合の動作は未定義。
  • imageタグを使うとファイルサイズが大きくなりますが、画像を一つのファイルにまとめることができるのでアプリケーションによっては実装が容易になります。
  • 既存の図面に別の図面をインポートで追加する可能性を考えて、srcに使うファイル名は(ファイル名の衝突を避けるため)uuidを使うことを推奨します(そこまでしなくても、prefixを付けたミリ秒単位の日時をファイル名にしても大丈夫と思います)。

4.3 settingsセクション

設定を記述します。

settings(
 currentLayer("Lyer1")
 currentSheet("Sheet2")
)

4.3.1 currentLayer

選択中のレイヤ名

4.3.2 currentSheet

選択中のシート名

5 補足

5.1 ファイルバージョン

  • インデックスファイルと図面ファイルのバージョンはそれぞれ違う値にすることもできますが、インデクスファイルのメジャーバージョン2以降はインデックスファイルと図面ファイルは同じものにしようと思います。

5.2 バージョンによる違い

  • ファイルバージョンは文字列でversionタグを使いますが、旧バージョンではfileversion(versionNumber)を使いメジャーバージョン(整数値)のみでした。
  • メジャーバージョン1はページが1つしかなく、pagesタグがない代わりにdrawingタグがあります。また、settingsタグはありません(設定はdrawingファイルにあります)。
    以下はインデックスファイルのメジャーバージョン1の例です。メジャーバージョン1では図面ファイル名はdrawingでした。
filetype("precad_archive")
fileinfo(
 fileversion(1)appinfo("precad for windows version 1.0.0.0")
)
contents(
 drawing("drawing")
)
  • 線図形(Line)の始点と終点はppタグでまとめて書き出しますが、バージョン2.1.0までは始点と終点を別々に以下の書式で記述していました。バージョン2.2.0以降、分けて記述するのは冗長なのでppの書式に変更しました。互換性のため読み込みのみ対応しています。
p0(x0,y0)p1(x1,y1)
  • 頂点リスト(vertices())はファイルバージョン2.0.0以下では次の書式でした。互換性のため読み込みのみ対応しています。
points(P(x0,y0)P(x1,y1)...)  //Pは大文字
  • ベジェ曲線の頂点リストは以下の旧型式(ファイルバージョン2.0.0以下)があります(非推奨)。各頂点とその制御点を分けて記述します。制御点は各頂点の始点側(s())と終点側(e())の制御点を記述します。開いたベジェ曲線の場合は始点の終点側の制御点、終点の始点側の制御点は無視されます。
    記述が冗長なのでこの形式は互換性のために読み込みのみ対応しています。
points(P(x0 y0)P(x1 y1)...)
controlPoints(cp(s(sx0 sy0)e(ex0 ey0)cp(s(sx1 sy1)e(ex1 ey1))...))
  • バージョン2.1.0以前の直径寸法スタイルと直線寸法スタイルの矢印は始点終点同じものでした。そのため矢印スタイルのタグはarrowStyleでした。

  • バージョン2.3.0からImageのsrcタグにファイル名を追加、圧縮ファイル内のmediaフォルダ内に画像を保存します。それ以前はimageタグを使用し文字列として同梱していました(この方式はクリップボード経由のコピーのために現在も使われています)。

  • バージョン2.9.0からカレント属性を定義しました。

  • バージョン2.10.0からラベル(%lなど)を追加しました。

  • バージョン2.10.0から図形の短縮名を追加しました。

  • バージョン2.11.0からfillStyleに線形グラデーション、放射状グラデーションを追加しました。

6 履歴

  • 2026/04/27 v2.11.0 Rev.1
    • 文章修正および書式の変更。
  • 2026/03/21 v2.11.0 Rev.0
    • fillStyleに線形グラデーション、放射状グラデーションを追加。
    • 誤記修正。
  • 2026/01/31 v2.10.0 Rev.1
    • 誤記修正。
  • 2026/01/10 v2.10.0 Rev.0
    • パラメータにラベル(%lなど)を追加。
    • カレント線スタイルにlc, lw, ltを追加。
    • 図形に短縮名を追加しました。
    • レイヤとシートの説明が抜けていたので追加しました。
    • 誤記修正。
  • 2025/12/22 v2.9.1 Rev.0
    • カレント属性の始点終点矢印、引出線、バルーン、寸法線類に省略形を追加。
  • 2025/12/22 v2.9.0 Rev.0
    • 図形属性を図形外にも記載可能とした(カレント属性)。それに合わせ図形の属性値省略時の値を削除。
    • toleranceのfractionDigitsの省略時の値を1から2へ変更。
  • 2025/12/05 v2.8.0 Rev.0
    • 直線寸法、半径寸法、直径寸法、弧長寸法に長さの単位を追加。
    • 角度寸法スタイルを定義(v2.7.0までは直線寸法スタイルを使用。直線寸法スタイルに長さの単位を追加したため、新たに定義)。
    • グリッドのspacingタグ廃止、gridSizeOnPaperタグ追加。
  • 2025/1/14 v2.7.0 Rev.0
    • textStyleのtextAlignに両端揃えと均等揃え追加。
    • Text(文字)にfm(文字枠モード)追加。
    • 文字スタイルの縦書きは未実装のため、フラグを予約に変更。
    • 文字スタイルに枠線フラグ追加。
  • 2024/10/20 v2.6.0 Rev.0
    • バージョン変更 v2.5.1->v2.6.0(線種追加したので)。
    • 履歴の日付修正。
  • 2024/10/20 v2.5.1 Rev.0
    • 線種追加。
    • 線種名誤記修正。
  • 2024/08/28 v2.5.0 Rev.1
    • formatStyleのprefix,suffix省略値修正。
    • textStyleのfontName省略値追加。
  • 2024/08/25 v2.5.0 Rev.0
    • ArcDimension(弧長寸法)、arcDimensionStyle(弧長寸法スタイル)追加
    • 誤記修正
  • 2024/02/08 v2.4.1 Rev.1
    • 点(dot)のサイズについて修正
  • 2024/02/08 v2.4.1 Rev.0
    • textStyleのflagの値の誤記を修正。
    • textStyleのflagにTEXT_SLANT_ONLY_CHARACTERを追加。
  • 2023/04/28 v2.4.0 Rev.2
    • 用紙名を保存するように変更。用紙の回転フラグ追加。
  • 2023/04/14 v2.4.0 rev1
    • Leaderの修正
    • 寸法値の変更
    • このファイルのバージョン名の命名規則変更。
  • 2023/04/12 v2.4 rev0
    • 引出線の仕様変更。
    • 半径寸法のdimensionLineExtension説明追加、flag追加。
    • 寸法線関係の説明追加と修正。
  • 2023/04/10 rev5
    • 直径寸法のdimensionLineExtensionが0の場合の処理を追加。
    • leaderStyleにパラメータ追加。
  • 2023/04/9 rev4
    • 寸法線と角度寸法のdimensionLineExtensionが0の場合の処理を追加。
  • 2023/03/23 rev3
    • 線種追加
  • 2023/03/23 rev2
    • マクロ文字列追加
  • 2023/03/09
    • 初版