PreCad file format ver 2.9.0仕様書 Rev.0

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)gridSizeOnPaper(10)div(5)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)gridSizeOnPaper(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 グリッド角度(度)
gridSizeOnPaper(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")
    ls(w(0.5))
    Line(...)
    Circle(...)
   layer("テスト2")
    ls(w(1.0))
    Line(...)
  ...
 )
)        

layers

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

sheets

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

shapes

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

図形共通

// カレント線種を幅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))
マクロ文字列
${$} $
${PageTitle} ページのタイトル
${PageNumber} ページ番号
${PageCount} 総ページ数
${SheetName} シート名
${SheetScale} シートの縮尺

図形属性

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

lineStyle(線スタイル属性)

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

lineStyle(width(w)color(c)lineType(name)flag(f))
要素 パラメータ 説明
width(w)
[ w ]
w : Double 線幅
color(c)
[ c ]
c : Int 線色
lineType(name)
[ t ]
name : String 線種名
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規格を参考にした。

fillStyle(塗りスタイル属性)

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

fillStyle(solid(0xFF00FF00))
fillStyle(byLayer())
要素 パラメータ 説明
solid(c) c : Int 面色
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 文字配置
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 傾斜角
flag(f)
[ f ]
f : Int フラグ

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 文字の下線との縦方向の離れ
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の時有効

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行の許容差の文字サイズの比率
startArrow(...)
[ sa ]
矢印スタイル参照 始点の矢印スタイル
endArrow(...)
[ ea ]
矢印スタイル参照 終点の矢印スタイル
arrowMode(m)
[ am ]
m:Int 矢印モード
0:自動, 1:内側, 2:外側
ul(m)
m:Int 寸法値単位。寸法値自動の時に使用。
0:mm, 1:cm, 2:m, 3:inch

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:外側

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

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

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

formatStyle(寸法値フォーマット)
要素 パラメータ 説明
fractionDigits(d)
[ fd ]
d : Int 小数点桁数。省略時1
usesGroupingSeparator(f)
[ gs ]
f : Int 0:区切りなし 1:桁区切り
prefix(s)
[ p ]
s : String 前置文字
suffix(s)
[ s ]
s : String 後置文字

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 後置文字
カレント属性
属性 初期値 説明
lineStyle
[ls]
lineStyle(w(0) c(0xff000000) t("solid") f(0))
fillStyle
[fs]
fillStyle(solid(0x00ffffff))
startArrow startArrow(t(0) s(3.0)) 線の始点矢印
endArrow 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) f(0))
markerStyle
[ms]
markerStyle(t("x") s(2.5))
leaderStyle 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 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 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 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 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 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 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))

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

コマンド

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

コマンド パラメータ 説明
save() 現在の属性をスタックに保存します。
restore() saveコマンドで保存した属性をスタックから戻します。
clear() 現在の属性を初期値に変更します(スタックは変更しません)。

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

図形要素

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 ]
線スタイル参照 線スタイル
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 ]
線スタイル参照 線スタイル
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 ]
線スタイル参照 線スタイル
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 ]
線スタイル参照 線スタイル
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 ]
線スタイル参照 線スタイル
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 ]
線スタイル参照 線スタイル
fillStyle(...)
[ fs ]
塗りスタイル参照 塗りスタイル
startArrow(...)
[ sa ]
矢印スタイル参照 始点矢印
endArrow(...)
[ ea ]
矢印スタイル参照 終点矢印
Marker(点)
要素 パラメータ 説明
p0(x y) x : Double, y : Double 中心点
angle(a)
[ a ]
a : Double 角度(度)。省略時0
markerStyle(...)
[ ms ]
点スタイル参照 点スタイル
lineStyle(...)
[ ls ]
線スタイル参照 線スタイル
Text(文字)
要素 パラメータ 説明
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 ]
塗りスタイル参照 文字背景塗りスタイル
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 ]
線スタイル参照 線スタイル
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 ]
線スタイル参照 線スタイル
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 ]
線スタイル参照 線スタイル
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 ]
線スタイル参照 線スタイル
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 ]
線スタイル参照 線スタイル
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 ]
線スタイル参照 線スタイル
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 ]
線スタイル参照 線スタイル
fillStyle(...)
[ fs ]
塗りスタイル参照 文字背景塗りスタイル
balloonStyle(...)
[ bs ]
バルーンスタイル参照 バルーンスタイル
Group(グループ図形)
要素 パラメータ 説明
shapes(S1()S2()...Sn())
[ ss ]
S1..Sn:図形 図形のリスト
Path(パス図形)
要素 パラメータ 説明
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つの頂点の組
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で短縮形を設けました。

履歴

2025/12/22 2.9.0 Rev.0

2025/12/05 2.8.0 Rev.0

2025/1/14 2.7.0 Rev.0

2024/10/20 2.6.0 Rev.0

2024/10/20 2.5.1 Rev.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.9.0仕様書 Rev.0

インデックスファイル

図面ファイル

補足