IT情報

STEPファイルのフォーマット概要

STEPファイルのフォーマット概要 

STEPファイルのデータ構造

ISO-10303-21;  ←ISOのバージョンと枝番

HEADER;  ← ヘッダーセクション
FILE_DESCRIPTION( … )
FILE_NAME( … );
FILE_SCHEMA ( … );
FILE_POPULATION( … );   ← STEPバージョン3以降
SECTION_LANGUAGE( … );  ← STEPバージョン3以降
SECTION_CONTEXT( … );   ← STEPバージョン3以降
ENDSEC; ←ヘッダーセクションの終わり

ANCHOR;  ← アンカーセクション

・・・ 省略 ・・・

ENDSEC;  ← アンカーセクションの終わり

REFERENCE;  ←リファレンスセクション
#9998 = <http://www.hoge1.com/>;
#9999 = <http://www.hoge2.com/>;
ENDSEC;  ←リファレンスセクションの終わり

DATA;   ←データセクション
#5=APPLICATION_CONTEXT(‘automotive design’);

・・・ 省略 ・・・

#50=VERTEX_POINT(”,#49);
#51=CARTESIAN_POINT(”,(5.0,0.0,0.0));
#52=DIRECTION(”,(-1.0,0.0,0.0));
#53=DIRECTION(”,(0.0,0.0,-1.0));

・・・ 省略・・・

ENDSEC;   ←データセクションの終わり

SIGNATURE;   ←シグネチャーセクションり

・・・ 省略・・・

ENDSEC;   ←シグネチャーセクションの終わり

END-ISO-10303-21;  ←ISOのバージョンが有効な範囲の終わり

データセクション

CARTESIAN_POINT

x,y,zの座標を示します。

(1)形式

CARTESIAN_POINT ( Label名, ( x座標, y座標, z座標) ) ;

(2)例

#1 = CARTESIAN_POINT ( ‘NONE’, ( 1.0, 2.0, 3.0) ) ;

DIRECTION

方向ベクトルを示します。おそらく単位方向ベクトル。

(1)形式

DIRECTION ( Label名,  (x方向の座標,  y方向の座標,  z方向の座標)) ) ;

(2)例

#3 = DIRECTION ( ‘NONE’, ( 0.0000000000000000000, 0.0000000000000000000, -1.000000000000000000 ) ) ;

VECTOR

(1)形式

VECTOR ( Label名, 向きを表すエンティティ番号,  大きさ ) ;

(2)例

#66 = VECTOR ( ‘NONE’, #3, 50.00000000000000000 ) ;

SHAPE_DEFINITION_REPRESENTATION

トップレベルのエンティティ

(1)形式

SHAPE_DEFINITION_REPRESENTATION ( “property_definition” のエンティティ番号,  ”shape_representation”のエンティティ番号) ;

(2)例

#67 = SHAPE_DEFINITION_REPRESENTATION ( #30, #42 ) ;

PRODUCT_DEFINITION_SHAPE

 

(1)形式

PRODUCT_DEFINITION_SHAPE ( Label名,  説明,  エンティティ番号 ) ;

(2)例

#30 = PRODUCT_DEFINITION_SHAPE ( ‘NONE’, ‘NONE’, #11 ) ;

PRODUCT_DEFINITION

(1)形式

PRODUCT_DEFINITION ( ID番号,  説明, product_definition_formationの番号、 product_definition_contextの番号)

(2)例

#11 = PRODUCT_DEFINITION ( ‘UNKNOWN’, ”, #72, #36 ) ;

GEOMETRIC_REPRESENTATION_CONTEXT

(1)形式

GEOMETRIC_REPRESENTATION_CONTEXT :次元の定義

GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT:不確実な長さの定義(例:1.0e-05)

GLOBAL_UNIT_ASSIGNED_CONTEXT:単位系

単位系には、以下のものが定義されている

->#127 =( LENGTH_UNIT ( ) NAMED_UNIT ( * ) SI_UNIT ( .MILLI., .METRE. ) );  SI単位のメートルのミリ単位系を使用することを示している

->#6 =( NAMED_UNIT ( * ) PLANE_ANGLE_UNIT ( ) SI_UNIT ( $, .RADIAN. ) );  角度はSI単位のラジアンを使用することを示している

->#87 =( NAMED_UNIT ( * ) SI_UNIT ( $, .STERADIAN. ) SOLID_ANGLE_UNIT ( ) ); 立体角はSI単位のステラジアンを使用することを示している

REPRESENTATION_CONTEXT:名前

( GEOMETRIC_REPRESENTATION_CONTEXT ( <次元> ) GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT ( ( <エンティティ番号>) ) GLOBAL_UNIT_ASSIGNED_CONTEXT ( ( #127, #6, #87 ) ) REPRESENTATION_CONTEXT ( <識別ID>, <名前>) );

(2)例

#62 =( GEOMETRIC_REPRESENTATION_CONTEXT ( 3 ) GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT ( ( #13 ) ) GLOBAL_UNIT_ASSIGNED_CONTEXT ( ( #127, #6, #87 ) ) REPRESENTATION_CONTEXT ( ‘NONE’, ‘WORKASPACE’ ) );

LINE

ポイントとベクトルの形式で表現する

(1)形式

LINE ( ‘NONE’,  CARTESIAN_POINTの番号,  VECTORの番号 ) ;

(2)例

#57 = LINE ( ‘NONE’, #104, #66 ) ;

TRIMMED_CURVE

トリムカーブ

(1)形式

TRIMMED_CURVE ( ラベル名,  basis_curveの番号,  ( SET OF trimming_select  ), ( SET OF trimming_select  ),  sense_agreement, マスターの表現 ) ;

マスターの表現には、cartesian,parameter,unspecifiedのいずれかがセットされます。

(2)例

#118 = TRIMMED_CURVE ( ‘NONE’, #57, ( PARAMETER_VALUE ( 0.0000000000000000000 ), #15 ), ( PARAMETER_VALUE ( 1.000000000000000000 ), #4 ), .T., .PARAMETER. ) ;

CIRCLE / AXIS2_PLACEMENT_3D

(1)形式

CIRCLE (ラベル名,  AXIS2_PLACEMENT_3Dの番号, 半径 ) ;
AXIS2_PLACEMENT_3D ( ラベル名, CARTESIAN_POINTの番号,  軸1のベクトルの番号, 軸2のベクトルの番号 ) ;

(2)例

#47 = CIRCLE ( ‘NONE’, #100, 9.999999999999998200 ) ;
#100 = AXIS2_PLACEMENT_3D ( ‘NONE’, #5, #40, #76 ) ;

GEOMETRIC_CURVE_SET

曲線のリスト

(1)形式

GEOMETRIC_CURVE_SET ( ‘NONE’, ( ,区切りの曲線の番号) ) ;

(2)例

#116 = GEOMETRIC_CURVE_SET ( ‘NONE’, ( #91, #108, #29, #35, #24, #32, #82, #135, #70, #79, #71, #113, #2, #124, #45, #97, #80, #52, #118, #21, #83, #63, #131 ) ) ;

 

B_SPLINE_CURVE

Bスプライン曲線

(1)形式

BOUNDED_CURVE ( )は基底のエンティティ

curve_formは、polyline_form,circular_arc,elliptic_arc,parabolic_arc,hyperbolic_arc,unspecifiedのいずれか。

closed_curveは、T(True)またはF(False)のいずれか。self_intersectも同様。

B_SPLINE_CURVE_WITH_KNOTSは、Bスプライン曲線のKNOT。

knot_typeは、uniform_knots,quasi_uniform_knots,piecewise_bezier_knots,unspecifiedのいずれか。

( BOUNDED_CURVE ( ) B_SPLINE_CURVE ( <次数>,   (  <コントロールポイントリスト > ), curve_form,  closed_curve , self_intersect)
B_SPLINE_CURVE_WITH_KNOTS ( ( 3, 2, 3 ),( 3.141592653589793100, 4.712388980384689700, 6.283185307179586200 ),knot_type )
CURVE ( ) GEOMETRIC_REPRESENTATION_ITEM ( ) RATIONAL_B_SPLINE_CURVE ( ( 1.000000000000000000, 0.7071067811865475700, 1.000000000000000000, 0.7071067811865475700, 1.000000000000000000 ) )
REPRESENTATION_ITEM ( ” ) );

(2)例

#124 =( BOUNDED_CURVE ( ) B_SPLINE_CURVE ( 2, ( #141, #111, #78, #123, #69 ),.UNSPECIFIED., .F., .T. )
B_SPLINE_CURVE_WITH_KNOTS ( ( 3, 2, 3 ),
( 3.141592653589793100, 4.712388980384689700, 6.283185307179586200 ),
.UNSPECIFIED. )
CURVE ( ) GEOMETRIC_REPRESENTATION_ITEM ( ) RATIONAL_B_SPLINE_CURVE ( ( 1.000000000000000000, 0.7071067811865475700, 1.000000000000000000, 0.7071067811865475700, 1.000000000000000000 ) )
REPRESENTATION_ITEM ( ” ) );

 

参考URL)

STEPファイルAPI