[E] ファイル名:AP218_2.stp
1. ファイルの構造と説明
これまでAP216のフィアルを見てきたが、ここではAP218について調べてみる。STEPファイルの構造は、スキーマ名を除いて同じなので省略する。
本ファイルのデータの主要構造は図5.1の様になっていて、shipを意味する1ケのproductに対して5ケの意味合いがぶら下がっている。
図5.1 データの構成
先ず(#135−#141)は、ship_unitを表現する、つまりこのファイル系で使われる寸法などの単位系を設定している。
(#136−#142)は、global_axis_placementを表現していて、座標原点と船の位置の関係や方向と船との関係などを表している。
(#137−#143)は、principal_characteristicsを表現していて、dead weightやlppなどの主要目を表す。
(#138−#144)〜(#139−#145)は、panel_systemを表現するものである。
(1)application protocolの指定
アプリケーションの種別は、先に述べたヘッダー部のFILE_SCHEMAに設定されているが、データ部ではapplication_protocol_definitionエンティティを用いて、スキーマの名前に加えてそのバージョン(何年版のどのステイタスのものかなど)が設定される。
#217=APPLICATION_CONTEXT(
'Application protocol for the exchange of ship structures.');
#216=APPLICATION_PROTOCOL_DEFINITION('Draft International Standard',
'ship_structures_schema',2002,#217);
ここでは、スキーマはship_structures_schemaであり、そのステイタスは 2002年のDIS版であることが示されている。
(2)ship
Ship STEPでは、如何なる場合にもproductは1ケで、それはshipつまり船本体を意味することになっている。図5.1のようにこの1ケのproductに対して、各種のビュー(UoF)からのデータが加えられて一つの意味を持つことになる。ところでproductには必ずproduct_categoryが付与される、ここでは次の様に'navy ship'で'Fleet auxiliary vessel'であることが示されている。
#50=PRODUCT_RELATED_PRODUCT_CATEGORY('navy ship',$,(#310));
#48=PRODUCT_CATEGORY_RELATIONSHIP('navy ship types',$,#50,#49);
#49=PRODUCT_CATEGORY('Fleet auxiliary vessel',$);
(3)ship_unit
ここでは、単位系の設定を示している、つまりファイルの中のデータに使われている長さはメートルかインチかなどである。
#121=GLOBAL_UNIT_ASSIGNED_CONTEXT('.UNUSED.','.UNUSED.',(#119));
#119=(
LENGTH_UNIT()
NAMED_UNIT(*)
SI_UNIT($,.METRE.)
);
#74=(
GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNIT_ASSIGNED_CONTEXT((#119))
REPRESENTATION_CONTEXT('.UNUSED.','global co-ordinate space')
);
#143=NAME_ATTRIBUTE('global units',#170);
ここでは、直接#561を指し、METREを使うことを意味している。なお、ISO規格ではメートルはMETERではなくMETREなので注意を要する。ところで、この例では、SI_UNITのnameがMETREで、prefixは未指定(=$)になっているので、単位はメートルとなる。PrefixにCENTIが指定されるとセンチメートルを、MILLIが指定されるとミリメートルになる。
(4)global_axis_placement
座標系と原点(axis and origin)の情報として、右手座標系で原点が0である。
#73=AXIS2_PLACEMENT_3D('global axes and origin',#72,#70,#71);
#72=CARTESIAN_POINT('',(0.,0.,0.));
#70=DIRECTION('',(0.,0.,1.));
#71=DIRECTION('',(-1.,0.,0.));
#290=CARTESIAN_POINT('',(0.,0.,0.));
方向(orientation)の情報として、forward pointingが設定されている。
#111=DESCRIPTIVE_REPRESENTATION_ITEM('orientation','forward pointing');
後部のオフセット(after_perpendicular_offset )の値は、0.メートルとなっている。
#51=VALUE_REPRESENTATION_ITEM('after perpendicular offset',
LENGTH_MEASURE(0.));
(5)Principal_characteristics
length_between_perpendiculars として33.528メートルが、moulded_breadthとして7.62メートル、moulded_depthとして3.9116メートルなどが指定されている。
#193=PROPERTY_DEFINITION('.UNUSED.',$,#210);
#172=PROPERTY_DEFINITION_REPRESENTATION(#193,#124);
#124=REPRESENTATION('principal characteristics',(#52,#53,#54,#55,#56,#57,
#58,#59,#60,#61),#121);
#52=VALUE_REPRESENTATION_ITEM('length between perpendiculars',
POSITIVE_LENGTH_MEASURE(33.528));
#53=VALUE_REPRESENTATION_ITEM('moulded breadth',
POSITIVE_LENGTH_MEASURE(7.62));
#54=VALUE_REPRESENTATION_ITEM('moulded depth',
POSITIVE_LENGTH_MEASURE(3.9116));
#55=VALUE_REPRESENTATION_ITEM('block coefficient',RATIO_MEASURE(0.));
#56=VALUE_REPRESENTATION_ITEM('design deadweight',MASS_MEASURE(0.));
#57=VALUE_REPRESENTATION_ITEM('design draught',
POSITIVE_LENGTH_MEASURE(0.));
#58=VALUE_REPRESENTATION_ITEM('max draught at ap',
POSITIVE_LENGTH_MEASURE(0.));
#59=VALUE_REPRESENTATION_ITEM('max draught at fp',
POSITIVE_LENGTH_MEASURE(0.));
#60=VALUE_REPRESENTATION_ITEM('min draught at ap',
POSITIVE_LENGTH_MEASURE(0.));
#61=VALUE_REPRESENTATION_ITEM('min draught at fp',
POSITIVE_LENGTH_MEASURE(0.));
(6)Class hierarchy
本ファイルに出現するクラス階層関係を示すと図5.2の通り。ここで、#xxxは該当するクラスが宣言されているCLASSエンティティのインスタンスの番号を意味する。
図5.2 CLASS階層図
#248=CLASS('ship',$);
#249=CLASS('item',$);
#250=CLASS('definable object',$);
#251=CLASS('global axis placement',$);
#252=CLASS('general characteristics definition',$);
#253=CLASS('definition',$);
#254=CLASS('versionable object',$);
#255=CLASS('Shiptype',$);
#256=CLASS('functional definition',$);
#257=CLASS('principal characteristics',$);
#258=CLASS('panel system',$);
#259=CLASS('structural system',$);
#260=CLASS('system',$);
#261=CLASS('item structure',$);
#262=CLASS('plate',$);
#263=CLASS('structural part',$);
#264=CLASS('part',$);
#265=CLASS('plate functional definition',$);
#266=CLASS('structural part functional definition',$);
#267=CLASS('panel system functional definition',$);
#268=CLASS('structural system functional definition',$);
#269=CLASS('panel system design definition',$);
#270=CLASS('structural system design definition',$);
#271=CLASS('system design definition',$);
#272=CLASS('design definition',$);
#273=CLASS('panel system curve boundary',$);
#274=CLASS('plate design definition',$);
#275=CLASS('structural part design definition',$);
#276=CLASS('profile',$);
#277=CLASS('profile functional definition',$);
#219=GROUP_RELATIONSHIP('specialisation',$,#249,#248);
#220=GROUP_RELATIONSHIP('specialisation',$,#250,#249);
#221=GROUP_RELATIONSHIP('specialisation',$,#252,#251);
#222=GROUP_RELATIONSHIP('specialisation',$,#253,#252);
#223=GROUP_RELATIONSHIP('specialisation',$,#254,#253);
#224=GROUP_RELATIONSHIP('specialisation',$,#256,#255);
#225=GROUP_RELATIONSHIP('specialisation',$,#253,#256);
#226=GROUP_RELATIONSHIP('specialisation',$,#252,#257);
#227=GROUP_RELATIONSHIP('specialisation',$,#259,#258);
#228=GROUP_RELATIONSHIP('specialisation',$,#260,#259);
#229=GROUP_RELATIONSHIP('specialisation',$,#261,#260);
#230=GROUP_RELATIONSHIP('specialisation',$,#250,#261);
#231=GROUP_RELATIONSHIP('specialisation',$,#254,#261);
#232=GROUP_RELATIONSHIP('specialisation',$,#249,#260);
#233=GROUP_RELATIONSHIP('specialisation',$,#263,#262);
#234=GROUP_RELATIONSHIP('specialisation',$,#264,#263);
#235=GROUP_RELATIONSHIP('specialisation',$,#249,#264);
#236=GROUP_RELATIONSHIP('specialisation',$,#266,#265);
#237=GROUP_RELATIONSHIP('specialisation',$,#256,#266);
#238=GROUP_RELATIONSHIP('specialisation',$,#268,#267);
#239=GROUP_RELATIONSHIP('specialisation',$,#256,#268);
#240=GROUP_RELATIONSHIP('specialisation',$,#270,#269);
#241=GROUP_RELATIONSHIP('specialisation',$,#271,#270);
#242=GROUP_RELATIONSHIP('specialisation',$,#272,#271);
#243=GROUP_RELATIONSHIP('specialisation',$,#253,#272);
#244=GROUP_RELATIONSHIP('specialisation',$,#275,#274);
#245=GROUP_RELATIONSHIP('specialisation',$,#272,#275);
#246=GROUP_RELATIONSHIP('specialisation',$,#263,#276);
#247=GROUP_RELATIONSHIP('specialisation',$,#266,#277);
|