PreCad file format ver 2.5.0仕様書 Rev.1

PreCadの特徴

ファイル構成

/
 ├index
 ├drawing_1.pcdt
 ├drawing_2.pcdt
 ├drawing_3.pcdt
 └media/
   ├ e87099e2-8962-4e33-9de5-87eda5b55270.jpg
   └ 01ed77be-822f-474b-a297-6d4c025ba6be.jpg
filetype("sample")  //一行目はファイルタイプ。ここでは空白文字を使わないこと。
tag1(1)		//単独の数値。整数とするか実数とするかはタグの種類による。
tag2("STRING")	//単独の文字列。
tag3(10.0 15.5)	//座標。数値を空白文字で区切る。
tag4(tag1(5.5)tag2("xyz"))	//複数のタグパラメータ。
tag5(0xFF000000)	//16進数は整数として解釈する。主に色で使われる。
byLayer()	//パラメータなし。
//次の二つはどちらも同じ(順序は無関係)
tag6(tag1(5.5)tag2(123))
tag6(tag2(123)tag1(5.5))

インデックスファイル

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

以下は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 0.0)spacing(10.0)div(10)isScaled(0)angle(0.0))
 printInfo(printPaperSize(420.0 297.0)printCenter(0.0 0.0)printScale(2.0))
)

fileinfoセクション

ファイルの情報です。

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

contentsセクション

pages

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

page

要素 パラメータ 説明
title(title) title : String 図面のタイトル
drawing(file) file : String 図面のファイル名

settingsセクション

設定を記述します。

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

pageIndex : Int

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

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

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 グリッド角度(度)

printInfo

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

図面ファイル

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

fileinfoセクション

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

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

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")
    Line(...)
    Circle(...)
   layer("テスト2")
    Line(...)
  ...
 )
)        

layers

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

sheets

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

shapes

図形のリストです。図形以外にsheetおよびlayerタグがあらわれます。

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

図形共通

マクロ文字列
${$} $
${PageTitle} ページのタイトル
${PageNumber} ページ番号
${PageCount} 総ページ数
${SheetName} シート名
${SheetScale} シートの縮尺

図形属性

図形には以下の属性があります。

lineStyle(線スタイル属性)

線のスタイル。省略時は黒、実線、線幅0です。

lineStyle(width(w)color(c)lineType(name)flag(f))
要素 パラメータ 説明
width(w)
[ w ]
w : Double 線幅。省略時0.0
color(c)
[ c ]
c : Int 線色。省略時0xff000000(黒)
lineType(name)
[ t ]
name : String 線種名。省略時実線
flag(f)
[ f ]
f : Int フラグ。省略時0
線種名 パターン 説明
solid なし 実線
dashed 8.0, 4.0 破線
center 24.0, 4.0, 8.0, 4.0 一点鎖線
center 24.0, 4.0, 8.0, 4.0, 8.0, 4.0 二点鎖線
※パターンは線分長と空白のペアで長さはこれに線幅を掛ける。

fillStyle(塗りスタイル属性)

円や多角形の塗りのスタイルです。solid(単色)とbyLayerがあります。fillStyleのパラメータにはどちらかを指定してください。fillStyleタグが省略された場合は透明色です。

fillStyle(solid(0xFF00FF00))
要素 パラメータ 説明
solid(c) c : Int 面色。省略時、透明(アルファ値が0)
byLayer() レイヤ色。パラメータはありません。

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

矢印のスタイルです。省略時は矢印無し。

startArrow(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字

textStyle(文字スタイル)
要素 パラメータ 説明
color(c)
[ c ]
c : Int 文字色。省略時黒
textAlign(a)
[ ta ]
a : Int 文字配置 0:左 1:中央 2:右。省略時0
fontName(name)
[ fn ]
name : String フォント名。省略時、空文字列
fontHeight(h)
[ fh ]
h : Double フォントサイズ
fontWidthScale(w)
[ fw ]
w : Double フォント横幅比。省略時1
fontSpace(s)
[ fs ]
s : Double 文字間隔。省略時0
fontSkewAngle(a)
[ fa ]
a : Double 傾斜角。省略時0
flag(f)
[ f ]
f : Int フラグ。省略時0

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

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

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

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行の許容差の文字サイズの比率。省略時0.75
startArrow(...)
[ sa ]
矢印スタイル参照 始点の矢印スタイル。省略時矢印なし
endArrow(...)
[ ea ]
矢印スタイル参照 終点の矢印スタイル。省略時矢印なし
arrowMode(m)
[ am ]
m:Int 矢印モード
0:自動, 1:内側, 2:外側
省略時0

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

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

arcDimensionStyle(弧長寸法スタイル)
要素 パラメータ 説明
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行の許容差の文字サイズの比率。省略時0.75
startArrow(...)
[ sa ]
矢印スタイル参照 始点の矢印スタイル。省略時矢印なし
endArrow(...)
[ ea ]
矢印スタイル参照 終点の矢印スタイル。省略時矢印なし
arrowMode(m)
[ am ]
m:Int 矢印モード
0:自動, 1:内側, 2:外側
省略時0
em(m)
m : Int 引出線モード
0:自動, 1:平行, 2:放射状
省略時0

formatStyle(寸法値フォーマット)
要素 パラメータ 説明
fractionDigits(d)
[ fd ]
d : Int 小数点桁数。省略時1
usesGroupingSeparator(f)
[ gs ]
f : Int 0:区切りなし 1:桁区切り。省略時0
prefix(s)
[ p ]
s : String 前置文字。省略時、半径はR、直径はΦ、弧長は⌒、その他は文字無し
suffix(s)
[ s ]
s : String 後置文字。省略時、角度は°、その他は文字無し

tolerance(許容差)
要素 パラメータ 説明
toleranceType(t)
[ tt ]
t : Int 許容差タイプ 0:無し 1:一段 2:二段。省略時0
value0(v)
[ v0 ]
v : Double 許容差上、一段の時使用
value1(v)
[ v1 ]
v : Double 許容差下。一段の時は省略
fractionDigits(d)
[ fd ]
d : Int 小数点桁数。省略時1
suffix(s)
[ s ]
s : String 後置文字。省略時文字無し

図形要素

Line(線)
要素 パラメータ 説明
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 ]
線スタイル参照 線スタイル。省略時、黒実線、幅0
startArrow(...)
[ sa ]
矢印スタイル参照 始点の矢印スタイル。省略時矢印なし
endArrow(...)
[ ea ]
矢印スタイル参照 終点の矢印スタイル。省略時矢印なし
Polyline(連続線)
要素 パラメータ 説明
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 ]
線スタイル参照 線スタイル。省略時、黒実線、幅0
fillStyle(...)
[ fs ]
塗りスタイル参照 塗りスタイル。省略時塗りなし
startArrow(...)
[ sa ]
矢印スタイル参照 始点矢印。省略時矢印なし
endArrow(...)
[ ea ]
矢印スタイル参照 終点矢印。省略時矢印なし
Spline(スプライン曲線)
要素 パラメータ 説明
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 ]
線スタイル参照 線スタイル。省略時、黒実線、幅0
fillStyle(...)
[ fs ]
塗りスタイル参照 塗りスタイル。省略時塗りなし
startArrow(...)
[ sa ]
矢印スタイル参照 始点矢印。省略時矢印なし
endArrow(...)
[ ea ]
矢印スタイル参照 終点矢印。省略時矢印なし
Bezier(ベジェ曲線)
要素 パラメータ 説明
vertices(x1 y1 x2 y2 x3 y3 ... xn yn)
[ vs ]
x1..xn : Double, y1..yn : Double 頂点と制御点
lineStyle(...)
[ ls ]
線スタイル参照 線スタイル。省略時、黒実線、幅0
fillStyle(...)
[ fs ]
塗りスタイル参照 塗りスタイル。省略時塗りなし
startArrow(...)
[ sa ]
矢印スタイル参照 始点矢印。省略時矢印なし
endArrow(...)
[ ea ]
矢印スタイル参照 終点矢印。省略時矢印なし
Circle(円)
要素 パラメータ 説明
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 ]
線スタイル参照 線スタイル。省略時、黒実線、幅0
fillStyle(...)
[ fs ]
塗りスタイル参照 塗りスタイル。省略時塗りなし
Arc(円弧)
要素 パラメータ 説明
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 ]
線スタイル参照 線スタイル。省略時、黒実線、幅0
fillStyle(...)
[ fs ]
塗りスタイル参照 塗りスタイル。省略時塗りなし
startArrow(...)
[ sa ]
矢印スタイル参照 始点矢印。省略時矢印なし
endArrow(...)
[ ea ]
矢印スタイル参照 終点矢印。省略時矢印なし
Marker(点)
要素 パラメータ 説明
p0(x y) x : Double, y : Double 中心点
angle(a)
[ a ]
a : Double 角度(度)。省略時0
markerStyle(...)
[ ms ]
点スタイル参照 点スタイル
lineStyle(...)
[ ls ]
線スタイル参照 線スタイル。省略時、黒実線、幅0
Text(文字)
要素 パラメータ 説明
p0(x y) x : Double, y : Double 基準点
width(w)
[ w ]
w : Double
height(h)
[ h ]
h : Double 高さ
text(t)
[ t ]
t : String 文字列
angle(a)
[ a ]
a : Double 角度(度)。省略時0
basis(b)
[ b ]
b : Int 配置基準。省略時0(左下)
textStyle(...)
[ ts ]
文字スタイル参照 文字スタイル。
fillStyle(...)
[ fs ]
塗りスタイル参照 文字背景塗りスタイル。省略時塗りなし
Dimension(直線寸法)
要素 パラメータ 説明
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 ]
線スタイル参照 線スタイル。省略時、黒実線、幅0
fillStyle(...)
[ fs ]
塗りスタイル参照 文字背景塗りスタイル。省略時塗りなし
dimensionStyle(...)
[ ds ]
直線寸法スタイル参照 直線寸法スタイル
tolerance(...)
[ to ]
許容差参照 許容差。省略時、許容差なし
Radius(半径寸法)
要素 パラメータ 説明
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 ]
線スタイル参照 線スタイル。省略時、黒実線、幅0
fillStyle(...)
[ fs ]
塗りスタイル参照 文字背景塗りスタイル。省略時塗りなし
dimensionStyle(...)
[ ds ]
半径寸法スタイル参照 半径寸法スタイル
tolerance(...)
[ to ]
許容差参照 許容差。省略時、許容差なし
Diameter(直径寸法)
要素 パラメータ 説明
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 ]
線スタイル参照 線スタイル。省略時、黒実線、幅0
fillStyle(...)
[ fs ]
塗りスタイル参照 文字背景塗りスタイル。省略時塗りなし
dimensionStyle(...)
[ ds ]
直径寸法スタイル参照 直径寸法スタイル
tolerance(...)
[ to ]
許容差参照 許容差。省略時、許容差なし
Angle(角度寸法)
要素 パラメータ 説明
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 ]
線スタイル参照 線スタイル。省略時、黒実線、幅0
fillStyle(...)
[ fs ]
塗りスタイル参照 文字背景塗りスタイル。省略時塗りなし
dimensionStyle(...)
[ ds ]
直線寸法スタイル参照 寸法スタイル。直線寸法スタイルを使用
tolerance(...)
[ to ]
許容差参照 許容差。省略時、許容差なし
ArcDimension(弧長寸法)
要素 パラメータ 説明
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 ]
線スタイル参照 線スタイル。省略時、黒実線、幅0
fillStyle(...)
[ fs ]
塗りスタイル参照 文字背景塗りスタイル。省略時塗りなし
dimensionStyle(...)
[ ds ]
弧長寸法スタイル参照 弧長寸法スタイル
tolerance(...)
[ to ]
許容差参照 許容差。省略時、許容差なし

Leader(引出線)
要素 パラメータ 説明
vertices(x1 y1 x2 y2 x3 y3 ... xn yn)
[ vs ]
x1..xn : Double, y1..yn : Double 頂点
text(t)
[ t ]
t : String 文字列
leaderStyle.leaderBasisが3の時のみ有効。
lineStyle(...)
[ ls ]
線スタイル参照 線スタイル。省略時、黒実線、幅0
fillStyle(...)
[ fs ]
塗りスタイル参照 文字背景塗りスタイル。省略時塗りなし
leaderStyle(...)
[ lt ]
引出線スタイル参照 引出線スタイル
Balloon(バルーン)
要素 パラメータ 説明
vertices(x1 y1 x2 y2 x3 y3 ... xn yn)
[ vs ]
x1..xn : Double, y1..yn : Double 頂点
text(t)
[ t ]
t : String 文字列
lineStyle(...)
[ ls ]
線スタイル参照 線スタイル。省略時、黒実線、幅0
fillStyle(...)
[ fs ]
塗りスタイル参照 文字背景塗りスタイル。省略時塗りなし
balloonStyle(...)
[ bs ]
バルーンスタイル参照 バルーンスタイル
Group(グループ図形)
要素 パラメータ 説明
shapes(S1()S2()...Sn())
[ ss ]
S1..Sn:図形 図形のリスト
Path(パス図形)
要素 パラメータ 説明
p(...)
パスリスト
lineStyle(...)
[ ls ]
線スタイル参照 線スタイル。省略時、黒実線、幅0
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つの頂点の組
Image(画像図形)
要素 パラメータ 説明
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)
参考値。省略可。

settingsセクション

設定を記述します。

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

currentLayer

選択中のレイヤ名

currentSheet

選択中のシート名

補足

ファイルバージョン

バージョンによる違い

filetype("precad_archive")
fileinfo(
 fileversion(1)appinfo("precad for windows version 1.0.0.0")
)
contents(
 drawing("drawing")
)
p0(x0,y0)p1(x1,y1)
points(P(x0,y0)P(x1,y1)...)  //Pは大文字
points(P(x0 y0)P(x1 y1)...)
controlPoints(cp(s(sx0 sy0)e(ex0 ey0)cp(s(sx1 sy1)e(ex1 ey1))...))

短縮形について

もともとタグ名は内部で使っている変数名を元に決めました(kotlinで作っていたため最初が小文字から始まります)。そのため比較的文字数が多くなってしまいました。
タグ名が多少長くてもCPUは十分速くファイルは圧縮するため、それほど問題にならないと思っていました。実際、ファイルサイズの増加はそれほどでもなく速度も(普通のファイルなら)問題になりませんでした。
しかし、Androidでサイズの大きなファイルを読み込むと速度は大きく落ちました。Androidのディスクアクセスは遅かったのです。
そのためバージョン2.2.0で短縮形を設けました。

履歴

2024/08/28 2.5.0 Rev.1

2024/08/25 2.5.0 Rev.0

2024/02/08 2.4.1 Rev.1

2024/02/08 2.4.1 Rev.0

2023/04/28 2.4.0 Rev.2

2023/04/14 2.4.0 rev1

2023/04/12 2.4 rev0

2023/04/10 rev5

2023/04/9 rev4

2023/03/23 rev3

2023/03/23 rev2

2023/03/09

PreCad file format ver 2.5.0仕様書 Rev.1

インデックスファイル

図面ファイル

補足