目 次
CADってなに?
SFCファイルってなに?
SFCファイルの構造
どんな利用方法がある?
SFC生成マクロ
現況測量(ベータ版) (光波での測量結果から平面図や横断図を自動作成する)
![]()
CADってなに?
コンピューターで図面を描くためのツールです。
寸法や角度、曲線を正確に描くことができます。
近年は、CADデータから直接物を作ることができるようになりました。(3次元CAD)
土木・建設業の分野でも重機にGPSアンテナを背負わせて、丁張もなしにいきなり切盛り土を行い仕上げてしまう IT施工というのが登場しています。
フリーソフトでは、JW-CAD、 HO-CAD等があります。
私のお薦めはIts Cad Max。 4800円の超廉価版CAD。
SFCファイルってなに?
前建設省(現 国土交通省)の時代にCADデータファイルのやり取りを行うため、互換性の高いファイル形式を作成しています。
sfc形式と、p21形式の2種類有り、現在はSXF Ver3.0。
SFCファイルは簡易版で、軽いのが特徴。
我々施工ユーザーにとっては、まともな図面が手にはいるようになるのが一番ありがたい。
(CAD製図基準(案)にはついていけない.....) 詳しくはこちら。
SFCファイルの構造
私もそれほど詳しい訳ではありませんが、調べてみました。
ワードバッドなどで開いてみるとわかりますが、こんな順番で記述されています。
ヘッダー部分 使用色宣言 フォント宣言 使用線種宣言 使用線幅宣言 図形記述 座標系宣言 用紙サイズ宣言 レイヤー宣言 終了コード
ヘッダー部分の記述
コード 説明ISO-10303-21; HEADER; ヘッダー宣言 FILE_DESCRIPTION(('SCADEC level2 feature_mode'), このCADはVer2.0(レベル2)です。 '2;1'); FILE_NAME('\X2\51684F535E73976256F3\X0\.sfc', ファイル名(全体平面図.sfcと書いてある)
FILE_NAME('ABC.sfc', と書くこともできます。'2007-5-8T16:54:35', 最終更新日時 (''), (''), 'SCADEC_API_Ver2.02', 'It''s Super CAD 2', 作成CADの名前です ''); FILE_SCHEMA(('ASSOCIATIVE_DRAUGHTING')); ENDSEC; ヘッダー部終了 DATA; 以下はデータ。
使用色宣言
規定値は図形コードで下表の番号で指定します。
記載例 コード 説明空白行 /*SXF SXF要素のタグ? #10 = pre_defined_colour_feature(\'red\') pre_defined_colour=既定色 SXF*/ SXF要素のタグ? 空白行 /*SXF #20 = user_defined_colour_feature('255','192','203') user_defined_colour=ユーザー定義色(ピンク) SXF*/
ユーザー定義色は図形コードで宣言順に17,18 と番号で指定します。
定義色一覧(pre_defined_colour_feature) No 色 色コード色見本 1 黒 (\'black\') ■ 2 赤 (\'red\') ■ 3 明るい緑 (\'green\') ■ 4 青 (\'blue\') ■ 5 黄 (\'yellow\') ■ 6 桃 (\'magenta\') ■ 7 水色 (\'cyan\') ■ 8 白 (\'white\') ■ 9 牡丹 (\'deeppink\') ■ 10 茶 (\'brown\') ■ 11 オレンジ (\'orange\') ■ 12 薄緑 (\'lightgreen\') ■ 13 明青 (\'lightblue\') ■ 14 青紫 (\'lavender\') ■ 15 25%灰色 (\'lightgray\') ■ 16 暗灰 (\'darkgray\') ■ フォント宣言
記載例
#110 = text_font_feature(\'MS ゴシック\')
図形コードで宣言順に1,2 と番号で指定します。
(変更の必要性を感じていないので、まだ追求していません)
使用線種宣言
記載例(SXFタグは省略)
既定の場合、線名(下表 Name)のみでデータの記述は必要ない
コード 説明#20 = pre_defined_font_feature(\'continuous\') pre_defined=既定線種(実線) #30 = user_defined_font_feature(\'点線\','2','(1.000000,1.000000)') user_defined=定義線種
定義の場合線名と区切データ数、区切データを記述する。
上の例で行くと 線名:点線、区切データ数:2、区切データ実線部:1.0、区切データ空白部:1.0
また、線種は32種まで(そんなには必要ないが)しか宣言できない。
規定値は図形コードで下表の番号で指定します。
ユーザー定義は図形コードで宣言順に17,18 と番号で指定します。
規定値一覧 線種 Name データ1 実線 continuous 2 破線 dashed 6,1.5 3 跳び破線 dashed spaced 6,6 4 一点長鎖線 long dashed dotted 12,1.5,0.25,1.5 5 二点長鎖線 long dashed double-dotted 12,1.5,0.25,1.5,0.25,1.5 6 三点長鎖線 long dashed triplicate-dotted 12,1.5,0.25,1.5,0.25,1.5,0.25,1.5 7 点線 dotted 0.25,1.5 8 一点鎖線 chain 12,1.5,3.5,1.5 9 二点鎖線 chain double dash 12,1.5,3.5,1.5,3.5,1.5 10 一点短鎖線 dashed dotted 6,1.5,0.25,1.5 11 一点二短鎖線 double-dashed dotted 6,1.5,6,1.5,0.25,1.5 12 二点短鎖線 dashed double-dotted 6,1.5,0.25,1.5,0.25,1.5 13 二点二短鎖線 double-dashed double-dotted 6,1.5,6,1.5,0.25,1.5,0.25,1.5 14 三点短鎖線 dashed triplicate-dotted 6,1.5,0.25,1.5,0.25,1.5,0.25,1.5 15 三点二短鎖線 double-dashed triplicate-dotted 6,1.5,6,1.5,0.25,1.5,0.25,1.5,0.25,1.5 16 未使用(予備) 使用線幅宣言
記載例(SXFタグは省略)
#40 = width_feature('0.250000') :0.25mmの線幅を宣言します
図形コードで宣言順に1,2 と番号で指定します。
※規定値とありますが、利用方法はまだ調べていません。
線幅規定値 No 幅(mm)1 0.132 0.183 0.254 0.355 0.56 0.77 18 1.49 210 未使用(予備)
図形記述
コ ー ド 例 (SXFタグは省略) | |
宣 言 項 目 | |
| 直線 | #100 = line_feature('1','1','1','3','73.727870','141.066170','348.179546','141.066170') |
| ペン,LayerNo,線種,線太,起点座標X,起点座標Y,終点座標X,終点座標Y | |
点 | #50 = point_marker_feature('1','1','73.783784','235.849589','7','0.00000000000000','1.00000000000000') |
| LayerNo,ペン,座標X,座標Y,点タイプ,回転角(0≦),尺度(1≦) | |
| 点タイプ(1〜7)1:*、2:○or●、3:・、4:+、5:□、6:△、7:× | |
円 | #60 = circle_feature('1','1','1','3','100.000000','49.500000','20.000000') |
| レイヤーNo,ペン色,線種,ペン,中心X座標,中心Y座標,半径 | |
| 円弧 | #40 = arc_feature('1','2','1','11','100.000000','49.500000','20.000000','0','0.00000000000000','90.0000000000000') |
| レイヤーNo,ペン色,線種,ペン,中心X座標,中心Y座標,半径,向きフラグ(0or1),開始角度,終了角度 | |
| 塗りつぶしの場合は別途コードあり | |
| 文字 | #40 = text_string_feature('1','1','1',\'ABC\','67.075085','79.071672','2.500000','3.750000','0.000000','0.00000000000000','0.00000000000000','1','1') |
| レイヤーNo,ペン色,フォント,文字,書込みY座標,書込みX座標,高さ,総幅,間隔,角度,スラント角度(イタリック),貼付位置,縦書き横書き(1or2) | |
| 貼付位置 1:左下 2:下 3:右下 4:左 5:中心 6:右 7:左上 8:上 9:右上 | |
| 改行ごとに別の文字として記入する |
座標値は小数点以下6桁まで指定できます。
座標系宣言
未調査 ごめんなさい。
用紙サイズ宣言
記載例(SXFタグは省略)
#120 = drawing_sheet_feature(\'sheet\','9','1','420','297')
\'sheet\',不明(9),1-横 0-縦,横寸法,縦寸法
用紙 A3横 420×297 drawing_sheet_feature(\'sheet\','9','1','420','297') 用紙 A3縦 420×297 drawing_sheet_feature(\'sheet\','9','0','297','420') 用紙 A0横 1189×841 drawing_sheet_feature(\'sheet\','9','1','1189','841') レイヤー宣言
記載例(SXFタグは省略)
#150 = layer_feature(\'Layer01\','1')
レイヤー名、表示:1/非表示:0
レイヤー名(文字の量) SXFレベル1 32バイト以下、レベル2 256バイト以下終了コード
ENDSEC;
END-ISO-10303-21;
これでおしまい。
どんな利用方法がある?
真っ先に私ら現場屋がやりたいと思うのは、現況測量結果のCAD図面へのプロット作業。
平面図への位置プロット、地盤高表示、横断図の生成でしょう。
他はあなたのアイディア次第。
SFC生成マクロ
簡単なものであれば、各種宣言部分を定型化して、図形部分のみ記述すればできてしまいます。
図面上のプロット位置は、計算してやる必要があります。(この部分が結構大変)