start implementing SimpleReader
This commit is contained in:
parent
4be052af48
commit
51b640c91a
1864
data/tests/Step/as1-ac-214.stp
Normal file
1864
data/tests/Step/as1-ac-214.stp
Normal file
File diff suppressed because it is too large
Load Diff
220
data/tests/Step/gasket1.p21
Normal file
220
data/tests/Step/gasket1.p21
Normal file
|
@ -0,0 +1,220 @@
|
|||
ISO-10303-21;
|
||||
HEADER;
|
||||
FILE_DESCRIPTION(('STEP conformance test data','AP203 class 6 - advanced brep'),'1');
|
||||
FILE_NAME('gasket1.p21','1994-12-14 T10:00:00',
|
||||
('S. Dhar','S. Jetli','M. McFarland','J. Kindrick'),
|
||||
('Industrial Technology Institute',
|
||||
'P.O. Box 1485',
|
||||
'Ann Arbor',
|
||||
'Michigan',
|
||||
'48106'),'NIST Data Probe, Release March 1993','conformance test suite','K. H. Muralidhar');
|
||||
FILE_SCHEMA(('CONFIG_CONTROL_DESIGN'));
|
||||
ENDSEC;
|
||||
DATA;
|
||||
#1=PRODUCT('11113','Flat Ring Gasket','Description for part 11113',(#2));
|
||||
#2=MECHANICAL_CONTEXT('detailed design',#3,'mechanical');
|
||||
#3=APPLICATION_CONTEXT('Control the configuration of three dimensional design');
|
||||
#300=APPLICATION_PROTOCOL_DEFINITION('AP definition status','config_control_design', 1994, #3);
|
||||
#4=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#5,#8,(#1));
|
||||
#5=PERSON_AND_ORGANIZATION(#6,#7);
|
||||
#6=PERSON('307-10-5806','Muralidhar','K.',('H.'),$,$);
|
||||
#7=ORGANIZATION('ITI-Michigan','Industrial Technology Institute','A not-for-profit engineering and research center');
|
||||
#8=PERSON_AND_ORGANIZATION_ROLE('design_owner');
|
||||
#9=PRODUCT_RELATED_PRODUCT_CATEGORY('detail','Part Type for product 11113',(#1));
|
||||
#10=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('A','Description of version with specified source for part 11113',#1,.BOUGHT.);
|
||||
#11=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#15,(#10));
|
||||
#13=PERSON_AND_ORGANIZATION(#14,#7);
|
||||
#14=PERSON('302-30-6149','Quadir','Nur',$,$,$);
|
||||
#15=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#44=CC_DESIGN_APPROVAL(#45,(#10));
|
||||
#45=APPROVAL(#46,'Approved as initial STEP test case part');
|
||||
#46=APPROVAL_STATUS('approved');
|
||||
#47=APPROVAL_DATE_TIME(#48,#45);
|
||||
#48=DATE_AND_TIME(#50,#51);
|
||||
#50=CALENDAR_DATE(1993,17,7);
|
||||
#51=LOCAL_TIME(13,29,52.0,#29);
|
||||
#69=APPROVAL_PERSON_ORGANIZATION(#70,#45,#72);
|
||||
#70=PERSON_AND_ORGANIZATION(#71,#7);
|
||||
#71=PERSON('574-20-7069','Kindrick','James',$,$,$);
|
||||
#72=APPROVAL_ROLE('Authorize part release');
|
||||
#31=CC_DESIGN_SECURITY_CLASSIFICATION(#32,(#10));
|
||||
#32=SECURITY_CLASSIFICATION('1993-C1','open availability of STEP test data',#33);
|
||||
#33=SECURITY_CLASSIFICATION_LEVEL('unclassified');
|
||||
#34=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#35,#39,(#32));
|
||||
#35=DATE_AND_TIME(#36,#37);
|
||||
#36=CALENDAR_DATE(1993,17,7);
|
||||
#37=LOCAL_TIME(13,45,20.0,#29);
|
||||
#39=DATE_TIME_ROLE('classification_date');
|
||||
#40=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#41,#43,(#32));
|
||||
#41=PERSON_AND_ORGANIZATION(#42,#7);
|
||||
#42=PERSON('412-89-3456','Dhar','Shantanu',$,('Mr.'),$);
|
||||
#43=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
|
||||
#53=CC_DESIGN_APPROVAL(#54,(#32));
|
||||
#54=APPROVAL(#55,'Approved as unclassified step test data');
|
||||
#55=APPROVAL_STATUS('approved');
|
||||
#56=APPROVAL_DATE_TIME(#57,#54);
|
||||
#57=DATE_AND_TIME(#58,#59);
|
||||
#58=CALENDAR_DATE(1993,17,7);
|
||||
#59=LOCAL_TIME(13,47,28.0,#29);
|
||||
#73=APPROVAL_PERSON_ORGANIZATION(#74,#54,#76);
|
||||
#74=PERSON_AND_ORGANIZATION(#75,#7);
|
||||
#75=PERSON('525-94-5792','Matthews','Robert',('S.'),$,$);
|
||||
#76=APPROVAL_ROLE('Authorize the security code');
|
||||
#17=PRODUCT_DEFINITION('D1','Detailed drawing as planned for conformance testing',#10,#18);
|
||||
#18=DESIGN_CONTEXT('detailed design',#3,'design');
|
||||
#19=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#23,(#17));
|
||||
#23=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#24=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#25,#30,(#17));
|
||||
#25=DATE_AND_TIME(#27,#28);
|
||||
#27=CALENDAR_DATE(1993,19,7);
|
||||
#28=LOCAL_TIME(19,46,55.0,#29);
|
||||
#29=COORDINATED_UNIVERSAL_TIME_OFFSET(8,$,.BEHIND.);
|
||||
#30=DATE_TIME_ROLE('creation_date');
|
||||
#61=CC_DESIGN_APPROVAL(#62,(#17));
|
||||
#62=APPROVAL(#63,'Approved as STEP conformance testing drawing');
|
||||
#63=APPROVAL_STATUS('approved');
|
||||
#64=APPROVAL_DATE_TIME(#65,#62);
|
||||
#65=DATE_AND_TIME(#66,#67);
|
||||
#66=CALENDAR_DATE(1993,19,7);
|
||||
#67=LOCAL_TIME(19,47,51.0,#29);
|
||||
#77=APPROVAL_PERSON_ORGANIZATION(#70,#62,#79);
|
||||
#79=APPROVAL_ROLE('Authorize product definition');
|
||||
#80=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#81,#84,(#10,#1010));
|
||||
#81=PERSON_AND_ORGANIZATION(#82,#83);
|
||||
#82=PERSON('CDI-2','Dwaraka','B.',('K.'),$,$);
|
||||
#83=ORGANIZATION('CDI','Contract Design, Inc.','Contract engineering organization.');
|
||||
#84=PERSON_AND_ORGANIZATION_ROLE('design_supplier');
|
||||
#88=SUPPLIED_PART_RELATIONSHIP('design','design supplier','The supplier provides detailed designs',#17,#1017);
|
||||
#85=CC_DESIGN_CERTIFICATION(#86,(#88));
|
||||
#86=CERTIFICATION('ISO-9000 certified design supplier','quality control',#87);
|
||||
#87=CERTIFICATION_TYPE('design_supplier');
|
||||
#89=CC_DESIGN_APPROVAL(#90,(#86));
|
||||
#90=APPROVAL(#91,'Approved as ISO-9000 certified supplier');
|
||||
#91=APPROVAL_STATUS('approved');
|
||||
#92=APPROVAL_PERSON_ORGANIZATION(#70,#90,#93);
|
||||
#93=APPROVAL_ROLE('Authorize supplier certification');
|
||||
#94=DATE_AND_TIME(#95,#96);
|
||||
#95=CALENDAR_DATE(1993,20,4);
|
||||
#96=LOCAL_TIME(15,47,51.0,#29);
|
||||
#97=APPROVAL_DATE_TIME(#94,#90);
|
||||
#98=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#100,#102,(#86));
|
||||
#99=CALENDAR_DATE(1993,19,4);
|
||||
#100=DATE_AND_TIME(#99,#101);
|
||||
#101=LOCAL_TIME(10,41,59.0,#29);
|
||||
#102=DATE_TIME_ROLE('certification_date');
|
||||
#1010=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('S-1','For Flat Ring Gasket',#1,.MADE.);
|
||||
#1011=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1016,(#1010));
|
||||
#1013=PERSON_AND_ORGANIZATION(#1014,#83);
|
||||
#1014=PERSON('CDI-1','Brandenberg','Chad',$,$,$);
|
||||
#1016=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#1044=CC_DESIGN_APPROVAL(#1045,(#1010));
|
||||
#1045=APPROVAL(#1046,'Approved as test part design');
|
||||
#1046=APPROVAL_STATUS('approved');
|
||||
#1047=APPROVAL_DATE_TIME(#1048,#1045);
|
||||
#1048=DATE_AND_TIME(#1050,#1051);
|
||||
#1050=CALENDAR_DATE(1993,19,7);
|
||||
#1051=LOCAL_TIME(19,51,59.0,#29);
|
||||
#1069=APPROVAL_PERSON_ORGANIZATION(#1070,#1045,#1072);
|
||||
#1070=PERSON_AND_ORGANIZATION(#82,#83);
|
||||
#1072=APPROVAL_ROLE('Authorize part version');
|
||||
#1031=CC_DESIGN_SECURITY_CLASSIFICATION(#1032,(#1010));
|
||||
#1032=SECURITY_CLASSIFICATION('1993-C2','open availability of test part designs',#1033);
|
||||
#1033=SECURITY_CLASSIFICATION_LEVEL('unclassified');
|
||||
#1034=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1035,#1039,(#1032));
|
||||
#1035=DATE_AND_TIME(#1036,#1037);
|
||||
#1036=CALENDAR_DATE(1993,19,7);
|
||||
#1037=LOCAL_TIME(19,45,41.0,#29);
|
||||
#1039=DATE_TIME_ROLE('classification_date');
|
||||
#1040=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1041,#1043,(#1032));
|
||||
#1041=PERSON_AND_ORGANIZATION(#1042,#83);
|
||||
#1042=PERSON('CDI-3','Sauter','Mitch',$,$,$);
|
||||
#1043=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
|
||||
#1053=CC_DESIGN_APPROVAL(#1054,(#1032));
|
||||
#1054=APPROVAL(#1055,'Approved as unclassified part design');
|
||||
#1055=APPROVAL_STATUS('approved');
|
||||
#1056=APPROVAL_DATE_TIME(#1057,#1054);
|
||||
#1057=DATE_AND_TIME(#1058,#1059);
|
||||
#1058=CALENDAR_DATE(1993,19,7);
|
||||
#1059=LOCAL_TIME(19,47,58.0,#29);
|
||||
#1073=APPROVAL_PERSON_ORGANIZATION(#81,#1054,#1076);
|
||||
#1076=APPROVAL_ROLE('Authorize the security code');
|
||||
#1017=PRODUCT_DEFINITION('D2','Description of product for part 11113',#1010,#1018);
|
||||
#1018=DESIGN_CONTEXT('detailed design',#3,'design');
|
||||
#1019=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1023,(#1017));
|
||||
#1023=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#1024=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1025,#1030,(#1017));
|
||||
#1025=DATE_AND_TIME(#1027,#1028);
|
||||
#1027=CALENDAR_DATE(1993,18,7);
|
||||
#1028=LOCAL_TIME(10,51,59.0,#29);
|
||||
#1030=DATE_TIME_ROLE('creation_date');
|
||||
#1061=CC_DESIGN_APPROVAL(#1062,(#1017));
|
||||
#1062=APPROVAL(#1063,'Approved as detailed drawing');
|
||||
#1063=APPROVAL_STATUS('approved');
|
||||
#1064=APPROVAL_DATE_TIME(#1065,#1062);
|
||||
#1065=DATE_AND_TIME(#1066,#1067);
|
||||
#1066=CALENDAR_DATE(1993,19,7);
|
||||
#1067=LOCAL_TIME(19,51,59.0,#29);
|
||||
#1077=APPROVAL_PERSON_ORGANIZATION(#81,#1062,#1079);
|
||||
#1079=APPROVAL_ROLE('Authorize product definition');
|
||||
|
||||
#1080=SHAPE_DEFINITION_REPRESENTATION(#1081,#9240);
|
||||
#1081=PRODUCT_DEFINITION_SHAPE('ABR_Shape','Shape of Flat Ring Gasket',#17);
|
||||
#9040 =(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.));
|
||||
#9041 =(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.));
|
||||
#9042 =(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT());
|
||||
#9043 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000001),#9040);
|
||||
#9100 = CARTESIAN_POINT('CartPt1',(0.0,0.0,0.0));
|
||||
#9101 = DIRECTION('Dir1',(1.0,0.0,0.0));
|
||||
#9103 = DIRECTION('Dir3',(0.0,0.0,1.0));
|
||||
#9120 = AXIS2_PLACEMENT_3D('Ax2P3D1',#9100,#9103,#9101);
|
||||
#9121 = PLANE('Plane1',#9120);
|
||||
#9122 = CIRCLE('Circ1',#9120,30.0);
|
||||
#9123 = CARTESIAN_POINT('CartPt2',(30.0,0.0,0.0));
|
||||
#9124 = VERTEX_POINT('VertPt1',#9123);
|
||||
#9125 = EDGE_CURVE('EdgeCur1',#9124,#9124,#9122,.T.);
|
||||
#9126 = ORIENTED_EDGE('OriEdge1',*,*,#9125,.T.);
|
||||
#9127 = EDGE_LOOP('EdgeLoop1',(#9126));
|
||||
#9128 = FACE_BOUND('FaceBnd1',#9127,.F.);
|
||||
#9130 = CIRCLE('Circ2',#9120,25.0);
|
||||
#9131 = CARTESIAN_POINT('CartPt3',(25.0,0.0,0.0));
|
||||
#9132 = VERTEX_POINT('VertPt2',#9131);
|
||||
#9133 = EDGE_CURVE('EdgeCur2',#9132,#9132,#9130,.T.);
|
||||
#9134 = ORIENTED_EDGE('OriEdge2',*,*,#9133,.T.);
|
||||
#9135 = EDGE_LOOP('EdgeLoop2',(#9134));
|
||||
#9136 = FACE_BOUND('FaceBnd2',#9135,.T.);
|
||||
#9137 = ADVANCED_FACE('AdvFace1',(#9136,#9128),#9121,.F.);
|
||||
#9140 = CARTESIAN_POINT('CartPt4',(0.0,0.0,5.0));
|
||||
#9141 = AXIS2_PLACEMENT_3D('Ax2P3D2',#9140,#9103,#9101);
|
||||
#9142 = PLANE('Plane2',#9141);
|
||||
#9143 = CIRCLE('Circ3',#9141,30.0);
|
||||
#9144 = CARTESIAN_POINT('CartPt5',(30.0,0.0,5.0));
|
||||
#9145 = VERTEX_POINT('VertPt3',#9144);
|
||||
#9146 = EDGE_CURVE('EdgeCur3',#9145,#9145,#9143,.T.);
|
||||
#9147 = ORIENTED_EDGE('OriEdge3',*,*,#9146,.T.);
|
||||
#9148 = EDGE_LOOP('EdgeLoop3',(#9147));
|
||||
#9149 = FACE_BOUND('FaceBnd3',#9148,.T.);
|
||||
#9160 = CIRCLE('Circ4',#9141,25.0);
|
||||
#9161 = CARTESIAN_POINT('CartPt6',(25.0,0.0,5.0));
|
||||
#9162 = VERTEX_POINT('VertPt4',#9161);
|
||||
#9163 = EDGE_CURVE('EdgeCur4',#9162,#9162,#9160,.T.);
|
||||
#9164 = ORIENTED_EDGE('OriEdge4',*,*,#9163,.T.);
|
||||
#9165 = EDGE_LOOP('EdgeLoop4',(#9164));
|
||||
#9166 = FACE_BOUND('FaceBnd4',#9165,.F.);
|
||||
#9167 = ADVANCED_FACE('AdvFace2',(#9149,#9166),#9142,.T.);
|
||||
#9180 = CYLINDRICAL_SURFACE('CylSur1',#9120,30.0);
|
||||
#9190 = FACE_BOUND('FaceBnd5',#9127,.T.);
|
||||
#9191 = FACE_BOUND('FaceBnd6',#9148,.F.);
|
||||
#9192 = ADVANCED_FACE('AdvFace3',(#9190,#9191),#9180,.T.);
|
||||
#9200 = CYLINDRICAL_SURFACE('CylSur2',#9120,25.0);
|
||||
#9201 = FACE_BOUND('FaceBnd7',#9135,.F.);
|
||||
#9202 = FACE_BOUND('FaceBnd8',#9165,.T.);
|
||||
#9203 = ADVANCED_FACE('AdvFace4',(#9201,#9202),#9200,.F.);
|
||||
#9210 = CLOSED_SHELL('CloseSh1',(#9137,#9167,#9192,#9203));
|
||||
#9220 = MANIFOLD_SOLID_BREP('ManSolBrep1',#9210);
|
||||
#9230 = (GEOMETRIC_REPRESENTATION_CONTEXT(3)
|
||||
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#9043))
|
||||
GLOBAL_UNIT_ASSIGNED_CONTEXT((#9040,#9041,#9042))
|
||||
REPRESENTATION_CONTEXT('CONTEXT for advanced brep test case gasket','This is a 3d context using millimeters for linear dimension'));
|
||||
#9240 = ADVANCED_BREP_SHAPE_REPRESENTATION('ABShapeRep1',(#9220),#9230);
|
||||
ENDSEC;
|
||||
END-ISO-10303-21;
|
71
data/tests/Step/geometry_out.stp
Normal file
71
data/tests/Step/geometry_out.stp
Normal file
|
@ -0,0 +1,71 @@
|
|||
ISO-10303-21;
|
||||
HEADER;
|
||||
/* Generated by software containing ST-Developer
|
||||
* from STEP Tools, Inc. (www.steptools.com)
|
||||
*/
|
||||
|
||||
FILE_DESCRIPTION(
|
||||
/* description */ ('Empty Shape Representation Sample File'),
|
||||
/* implementation_level */ '2;1');
|
||||
|
||||
FILE_NAME(
|
||||
/* name */ 'output_file',
|
||||
/* time_stamp */ '2005-11-07T17:37:07-05:00',
|
||||
/* author */ (''),
|
||||
/* organization */ (''),
|
||||
/* preprocessor_version */ 'ST-DEVELOPER v11',
|
||||
/* originating_system */ 'Geometry Demo',
|
||||
/* authorisation */ '');
|
||||
|
||||
FILE_SCHEMA (('AUTOMOTIVE_DESIGN'));
|
||||
ENDSEC;
|
||||
|
||||
DATA;
|
||||
#10=AXIS2_PLACEMENT_3D('orientation',#11,$,$);
|
||||
#11=CARTESIAN_POINT('',(1.1,2.2,3.3));
|
||||
#12=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-006),#14,
|
||||
'DISTANCE_ACCURACY_VALUE',
|
||||
'Maximum model space distance between geometric entities at asserted co
|
||||
nnectivities');
|
||||
#13=(
|
||||
GEOMETRIC_REPRESENTATION_CONTEXT(3)
|
||||
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#12))
|
||||
GLOBAL_UNIT_ASSIGNED_CONTEXT((#14,#16,#19))
|
||||
REPRESENTATION_CONTEXT('ID1','3D')
|
||||
);
|
||||
#14=(
|
||||
LENGTH_UNIT()
|
||||
NAMED_UNIT(*)
|
||||
SI_UNIT(.MILLI.,.METRE.)
|
||||
);
|
||||
#15=DIMENSIONAL_EXPONENTS(0.,0.,0.,0.,0.,0.,0.);
|
||||
#16=(
|
||||
CONVERSION_BASED_UNIT('degree',#18)
|
||||
NAMED_UNIT(#15)
|
||||
PLANE_ANGLE_UNIT()
|
||||
);
|
||||
#17=(
|
||||
NAMED_UNIT(*)
|
||||
PLANE_ANGLE_UNIT()
|
||||
SI_UNIT($,.RADIAN.)
|
||||
);
|
||||
#18=MEASURE_WITH_UNIT(PLANE_ANGLE_MEASURE(0.01745329252),#17);
|
||||
#19=(
|
||||
NAMED_UNIT(*)
|
||||
SI_UNIT($,.STERADIAN.)
|
||||
SOLID_ANGLE_UNIT()
|
||||
);
|
||||
#20=SHAPE_DEFINITION_REPRESENTATION(#21,#22);
|
||||
#21=PRODUCT_DEFINITION_SHAPE('',$,#24);
|
||||
#22=SHAPE_REPRESENTATION('',(#10),#13);
|
||||
#23=PRODUCT_DEFINITION_CONTEXT('3D Mechanical Parts',#27,'design');
|
||||
#24=PRODUCT_DEFINITION('design','example product_definition',#25,#23);
|
||||
#25=PRODUCT_DEFINITION_FORMATION('1.0','first version of our widget',#29);
|
||||
#26=APPLICATION_PROTOCOL_DEFINITION('international standard',
|
||||
'automotive_design',2003,#27);
|
||||
#27=APPLICATION_CONTEXT(
|
||||
'Core Data for Automotive Mechanical Design Process');
|
||||
#28=PRODUCT_CONTEXT('3D Mechanical Parts',#27,'mechanical');
|
||||
#29=PRODUCT('1234-K789','widget','a fictional product',(#28));
|
||||
ENDSEC;
|
||||
END-ISO-10303-21;
|
103
src/Mod/Import/App/SCL/SimpleReader.py
Normal file
103
src/Mod/Import/App/SCL/SimpleReader.py
Normal file
|
@ -0,0 +1,103 @@
|
|||
# Copyright (c) 2014, Juergen Riegel (FreeCAD@juergen-riegel.net)
|
||||
# Copyright (c) 2011, Thomas Paviot (tpaviot@gmail.com)
|
||||
# All rights reserved.
|
||||
|
||||
# This file is part of the StepClassLibrary (SCL).
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
#
|
||||
# Redistributions in binary form must reproduce the above copyright notice,
|
||||
# this list of conditions and the following disclaimer in the documentation
|
||||
# and/or other materials provided with the distribution.
|
||||
#
|
||||
# Neither the name of the <ORGANIZATION> nor the names of its contributors may
|
||||
# be used to endorse or promote products derived from this software without
|
||||
# specific prior written permission.
|
||||
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
# ARE DISCLAIMED.
|
||||
# IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
|
||||
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
"""Simple Part21 STEP reader
|
||||
|
||||
Reads a given STEP file. Maps the enteties and instaciate the
|
||||
corosbonding classes.
|
||||
In addition it writes out a graphwiz file with the entity graph.
|
||||
"""
|
||||
|
||||
import Part21,sys
|
||||
|
||||
|
||||
|
||||
__title__="Simple Part21 STEP reader"
|
||||
__author__ = "Juergen Riegel, Thomas Paviot"
|
||||
__url__ = "http://www.freecadweb.org"
|
||||
__version__ = "0.1 (Jan 2014)"
|
||||
|
||||
|
||||
|
||||
class SimpleParser:
|
||||
"""
|
||||
Loads all instances definition of a Part21 file into memory.
|
||||
Two dicts are created:
|
||||
self._instance_definition : stores attibutes, key is the instance integer id
|
||||
self._number_of_ancestors : stores the number of ancestors of entity id. This enables
|
||||
to define the order of instances creation.
|
||||
"""
|
||||
def __init__(self, filename):
|
||||
import time
|
||||
import sys
|
||||
self._p21loader = Part21.Part21Parser("gasket1.p21")
|
||||
self.schemaModule = None
|
||||
self.schemaClasses = None
|
||||
|
||||
def instaciate(self):
|
||||
"""Instaciate the python classe from the enteties"""
|
||||
import inspect
|
||||
# load the needed schema module
|
||||
if self._p21loader.get_schema_name() == 'config_control_design':
|
||||
import config_control_design
|
||||
self.schemaModule = config_control_design
|
||||
if self._p21loader.get_schema_name() == 'automotive_design':
|
||||
import automotive_design
|
||||
self.schemaModule = automotive_design
|
||||
|
||||
if self.schemaModule:
|
||||
self.schemaClasses = dict(inspect.getmembers(self.schemaModule))
|
||||
|
||||
for number_of_ancestor in self._p21loader._number_of_ancestors.keys():
|
||||
for entity_definition_id in self._p21loader._number_of_ancestors[number_of_ancestor]:
|
||||
#print entity_definition_id,':',self._p21loader._instances_definition[entity_definition_id]
|
||||
self.create_entity_instance(entity_definition_id)
|
||||
|
||||
def create_entity_instance(self, instance_id):
|
||||
instance_definition = self._p21loader._instances_definition[instance_id]
|
||||
print "Instance definition to process",instance_definition
|
||||
# first find class name
|
||||
class_name = instance_definition[0].lower()
|
||||
print "Class name:%s"%class_name
|
||||
|
||||
if not class_name=='':
|
||||
object_ = self.schemaClasses[class_name]
|
||||
# then attributes
|
||||
print object_.__doc__
|
||||
#instance_attributes = instance_definition[1]
|
||||
#print "instance_attributes:",instance_attributes
|
||||
#a = object_(*instance_attributes)
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.path.append('..') # path where config_control_design.py is found
|
||||
parser = SimpleParser("gasket1.p21") # simple test file
|
||||
parser.instaciate()
|
|
@ -1 +1 @@
|
|||
__all__ = ['SCLBase','SimpleDataTypes','AggregationDataTypes','TypeChecker','ConstructedDataTypes','Expr','Part21']
|
||||
__all__ = ['SCLBase','SimpleDataTypes','AggregationDataTypes','TypeChecker','ConstructedDataTypes','Expr','Part21','SimpleParser']
|
||||
|
|
220
src/Mod/Import/App/SCL/gasket1.p21
Normal file
220
src/Mod/Import/App/SCL/gasket1.p21
Normal file
|
@ -0,0 +1,220 @@
|
|||
ISO-10303-21;
|
||||
HEADER;
|
||||
FILE_DESCRIPTION(('STEP conformance test data','AP203 class 6 - advanced brep'),'1');
|
||||
FILE_NAME('gasket1.p21','1994-12-14 T10:00:00',
|
||||
('S. Dhar','S. Jetli','M. McFarland','J. Kindrick'),
|
||||
('Industrial Technology Institute',
|
||||
'P.O. Box 1485',
|
||||
'Ann Arbor',
|
||||
'Michigan',
|
||||
'48106'),'NIST Data Probe, Release March 1993','conformance test suite','K. H. Muralidhar');
|
||||
FILE_SCHEMA(('CONFIG_CONTROL_DESIGN'));
|
||||
ENDSEC;
|
||||
DATA;
|
||||
#1=PRODUCT('11113','Flat Ring Gasket','Description for part 11113',(#2));
|
||||
#2=MECHANICAL_CONTEXT('detailed design',#3,'mechanical');
|
||||
#3=APPLICATION_CONTEXT('Control the configuration of three dimensional design');
|
||||
#300=APPLICATION_PROTOCOL_DEFINITION('AP definition status','config_control_design', 1994, #3);
|
||||
#4=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#5,#8,(#1));
|
||||
#5=PERSON_AND_ORGANIZATION(#6,#7);
|
||||
#6=PERSON('307-10-5806','Muralidhar','K.',('H.'),$,$);
|
||||
#7=ORGANIZATION('ITI-Michigan','Industrial Technology Institute','A not-for-profit engineering and research center');
|
||||
#8=PERSON_AND_ORGANIZATION_ROLE('design_owner');
|
||||
#9=PRODUCT_RELATED_PRODUCT_CATEGORY('detail','Part Type for product 11113',(#1));
|
||||
#10=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('A','Description of version with specified source for part 11113',#1,.BOUGHT.);
|
||||
#11=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#15,(#10));
|
||||
#13=PERSON_AND_ORGANIZATION(#14,#7);
|
||||
#14=PERSON('302-30-6149','Quadir','Nur',$,$,$);
|
||||
#15=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#44=CC_DESIGN_APPROVAL(#45,(#10));
|
||||
#45=APPROVAL(#46,'Approved as initial STEP test case part');
|
||||
#46=APPROVAL_STATUS('approved');
|
||||
#47=APPROVAL_DATE_TIME(#48,#45);
|
||||
#48=DATE_AND_TIME(#50,#51);
|
||||
#50=CALENDAR_DATE(1993,17,7);
|
||||
#51=LOCAL_TIME(13,29,52.0,#29);
|
||||
#69=APPROVAL_PERSON_ORGANIZATION(#70,#45,#72);
|
||||
#70=PERSON_AND_ORGANIZATION(#71,#7);
|
||||
#71=PERSON('574-20-7069','Kindrick','James',$,$,$);
|
||||
#72=APPROVAL_ROLE('Authorize part release');
|
||||
#31=CC_DESIGN_SECURITY_CLASSIFICATION(#32,(#10));
|
||||
#32=SECURITY_CLASSIFICATION('1993-C1','open availability of STEP test data',#33);
|
||||
#33=SECURITY_CLASSIFICATION_LEVEL('unclassified');
|
||||
#34=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#35,#39,(#32));
|
||||
#35=DATE_AND_TIME(#36,#37);
|
||||
#36=CALENDAR_DATE(1993,17,7);
|
||||
#37=LOCAL_TIME(13,45,20.0,#29);
|
||||
#39=DATE_TIME_ROLE('classification_date');
|
||||
#40=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#41,#43,(#32));
|
||||
#41=PERSON_AND_ORGANIZATION(#42,#7);
|
||||
#42=PERSON('412-89-3456','Dhar','Shantanu',$,('Mr.'),$);
|
||||
#43=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
|
||||
#53=CC_DESIGN_APPROVAL(#54,(#32));
|
||||
#54=APPROVAL(#55,'Approved as unclassified step test data');
|
||||
#55=APPROVAL_STATUS('approved');
|
||||
#56=APPROVAL_DATE_TIME(#57,#54);
|
||||
#57=DATE_AND_TIME(#58,#59);
|
||||
#58=CALENDAR_DATE(1993,17,7);
|
||||
#59=LOCAL_TIME(13,47,28.0,#29);
|
||||
#73=APPROVAL_PERSON_ORGANIZATION(#74,#54,#76);
|
||||
#74=PERSON_AND_ORGANIZATION(#75,#7);
|
||||
#75=PERSON('525-94-5792','Matthews','Robert',('S.'),$,$);
|
||||
#76=APPROVAL_ROLE('Authorize the security code');
|
||||
#17=PRODUCT_DEFINITION('D1','Detailed drawing as planned for conformance testing',#10,#18);
|
||||
#18=DESIGN_CONTEXT('detailed design',#3,'design');
|
||||
#19=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#23,(#17));
|
||||
#23=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#24=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#25,#30,(#17));
|
||||
#25=DATE_AND_TIME(#27,#28);
|
||||
#27=CALENDAR_DATE(1993,19,7);
|
||||
#28=LOCAL_TIME(19,46,55.0,#29);
|
||||
#29=COORDINATED_UNIVERSAL_TIME_OFFSET(8,$,.BEHIND.);
|
||||
#30=DATE_TIME_ROLE('creation_date');
|
||||
#61=CC_DESIGN_APPROVAL(#62,(#17));
|
||||
#62=APPROVAL(#63,'Approved as STEP conformance testing drawing');
|
||||
#63=APPROVAL_STATUS('approved');
|
||||
#64=APPROVAL_DATE_TIME(#65,#62);
|
||||
#65=DATE_AND_TIME(#66,#67);
|
||||
#66=CALENDAR_DATE(1993,19,7);
|
||||
#67=LOCAL_TIME(19,47,51.0,#29);
|
||||
#77=APPROVAL_PERSON_ORGANIZATION(#70,#62,#79);
|
||||
#79=APPROVAL_ROLE('Authorize product definition');
|
||||
#80=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#81,#84,(#10,#1010));
|
||||
#81=PERSON_AND_ORGANIZATION(#82,#83);
|
||||
#82=PERSON('CDI-2','Dwaraka','B.',('K.'),$,$);
|
||||
#83=ORGANIZATION('CDI','Contract Design, Inc.','Contract engineering organization.');
|
||||
#84=PERSON_AND_ORGANIZATION_ROLE('design_supplier');
|
||||
#88=SUPPLIED_PART_RELATIONSHIP('design','design supplier','The supplier provides detailed designs',#17,#1017);
|
||||
#85=CC_DESIGN_CERTIFICATION(#86,(#88));
|
||||
#86=CERTIFICATION('ISO-9000 certified design supplier','quality control',#87);
|
||||
#87=CERTIFICATION_TYPE('design_supplier');
|
||||
#89=CC_DESIGN_APPROVAL(#90,(#86));
|
||||
#90=APPROVAL(#91,'Approved as ISO-9000 certified supplier');
|
||||
#91=APPROVAL_STATUS('approved');
|
||||
#92=APPROVAL_PERSON_ORGANIZATION(#70,#90,#93);
|
||||
#93=APPROVAL_ROLE('Authorize supplier certification');
|
||||
#94=DATE_AND_TIME(#95,#96);
|
||||
#95=CALENDAR_DATE(1993,20,4);
|
||||
#96=LOCAL_TIME(15,47,51.0,#29);
|
||||
#97=APPROVAL_DATE_TIME(#94,#90);
|
||||
#98=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#100,#102,(#86));
|
||||
#99=CALENDAR_DATE(1993,19,4);
|
||||
#100=DATE_AND_TIME(#99,#101);
|
||||
#101=LOCAL_TIME(10,41,59.0,#29);
|
||||
#102=DATE_TIME_ROLE('certification_date');
|
||||
#1010=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('S-1','For Flat Ring Gasket',#1,.MADE.);
|
||||
#1011=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1016,(#1010));
|
||||
#1013=PERSON_AND_ORGANIZATION(#1014,#83);
|
||||
#1014=PERSON('CDI-1','Brandenberg','Chad',$,$,$);
|
||||
#1016=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#1044=CC_DESIGN_APPROVAL(#1045,(#1010));
|
||||
#1045=APPROVAL(#1046,'Approved as test part design');
|
||||
#1046=APPROVAL_STATUS('approved');
|
||||
#1047=APPROVAL_DATE_TIME(#1048,#1045);
|
||||
#1048=DATE_AND_TIME(#1050,#1051);
|
||||
#1050=CALENDAR_DATE(1993,19,7);
|
||||
#1051=LOCAL_TIME(19,51,59.0,#29);
|
||||
#1069=APPROVAL_PERSON_ORGANIZATION(#1070,#1045,#1072);
|
||||
#1070=PERSON_AND_ORGANIZATION(#82,#83);
|
||||
#1072=APPROVAL_ROLE('Authorize part version');
|
||||
#1031=CC_DESIGN_SECURITY_CLASSIFICATION(#1032,(#1010));
|
||||
#1032=SECURITY_CLASSIFICATION('1993-C2','open availability of test part designs',#1033);
|
||||
#1033=SECURITY_CLASSIFICATION_LEVEL('unclassified');
|
||||
#1034=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1035,#1039,(#1032));
|
||||
#1035=DATE_AND_TIME(#1036,#1037);
|
||||
#1036=CALENDAR_DATE(1993,19,7);
|
||||
#1037=LOCAL_TIME(19,45,41.0,#29);
|
||||
#1039=DATE_TIME_ROLE('classification_date');
|
||||
#1040=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1041,#1043,(#1032));
|
||||
#1041=PERSON_AND_ORGANIZATION(#1042,#83);
|
||||
#1042=PERSON('CDI-3','Sauter','Mitch',$,$,$);
|
||||
#1043=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
|
||||
#1053=CC_DESIGN_APPROVAL(#1054,(#1032));
|
||||
#1054=APPROVAL(#1055,'Approved as unclassified part design');
|
||||
#1055=APPROVAL_STATUS('approved');
|
||||
#1056=APPROVAL_DATE_TIME(#1057,#1054);
|
||||
#1057=DATE_AND_TIME(#1058,#1059);
|
||||
#1058=CALENDAR_DATE(1993,19,7);
|
||||
#1059=LOCAL_TIME(19,47,58.0,#29);
|
||||
#1073=APPROVAL_PERSON_ORGANIZATION(#81,#1054,#1076);
|
||||
#1076=APPROVAL_ROLE('Authorize the security code');
|
||||
#1017=PRODUCT_DEFINITION('D2','Description of product for part 11113',#1010,#1018);
|
||||
#1018=DESIGN_CONTEXT('detailed design',#3,'design');
|
||||
#1019=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1023,(#1017));
|
||||
#1023=PERSON_AND_ORGANIZATION_ROLE('creator');
|
||||
#1024=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1025,#1030,(#1017));
|
||||
#1025=DATE_AND_TIME(#1027,#1028);
|
||||
#1027=CALENDAR_DATE(1993,18,7);
|
||||
#1028=LOCAL_TIME(10,51,59.0,#29);
|
||||
#1030=DATE_TIME_ROLE('creation_date');
|
||||
#1061=CC_DESIGN_APPROVAL(#1062,(#1017));
|
||||
#1062=APPROVAL(#1063,'Approved as detailed drawing');
|
||||
#1063=APPROVAL_STATUS('approved');
|
||||
#1064=APPROVAL_DATE_TIME(#1065,#1062);
|
||||
#1065=DATE_AND_TIME(#1066,#1067);
|
||||
#1066=CALENDAR_DATE(1993,19,7);
|
||||
#1067=LOCAL_TIME(19,51,59.0,#29);
|
||||
#1077=APPROVAL_PERSON_ORGANIZATION(#81,#1062,#1079);
|
||||
#1079=APPROVAL_ROLE('Authorize product definition');
|
||||
|
||||
#1080=SHAPE_DEFINITION_REPRESENTATION(#1081,#9240);
|
||||
#1081=PRODUCT_DEFINITION_SHAPE('ABR_Shape','Shape of Flat Ring Gasket',#17);
|
||||
#9040 =(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.));
|
||||
#9041 =(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.));
|
||||
#9042 =(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT());
|
||||
#9043 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000001),#9040);
|
||||
#9100 = CARTESIAN_POINT('CartPt1',(0.0,0.0,0.0));
|
||||
#9101 = DIRECTION('Dir1',(1.0,0.0,0.0));
|
||||
#9103 = DIRECTION('Dir3',(0.0,0.0,1.0));
|
||||
#9120 = AXIS2_PLACEMENT_3D('Ax2P3D1',#9100,#9103,#9101);
|
||||
#9121 = PLANE('Plane1',#9120);
|
||||
#9122 = CIRCLE('Circ1',#9120,30.0);
|
||||
#9123 = CARTESIAN_POINT('CartPt2',(30.0,0.0,0.0));
|
||||
#9124 = VERTEX_POINT('VertPt1',#9123);
|
||||
#9125 = EDGE_CURVE('EdgeCur1',#9124,#9124,#9122,.T.);
|
||||
#9126 = ORIENTED_EDGE('OriEdge1',*,*,#9125,.T.);
|
||||
#9127 = EDGE_LOOP('EdgeLoop1',(#9126));
|
||||
#9128 = FACE_BOUND('FaceBnd1',#9127,.F.);
|
||||
#9130 = CIRCLE('Circ2',#9120,25.0);
|
||||
#9131 = CARTESIAN_POINT('CartPt3',(25.0,0.0,0.0));
|
||||
#9132 = VERTEX_POINT('VertPt2',#9131);
|
||||
#9133 = EDGE_CURVE('EdgeCur2',#9132,#9132,#9130,.T.);
|
||||
#9134 = ORIENTED_EDGE('OriEdge2',*,*,#9133,.T.);
|
||||
#9135 = EDGE_LOOP('EdgeLoop2',(#9134));
|
||||
#9136 = FACE_BOUND('FaceBnd2',#9135,.T.);
|
||||
#9137 = ADVANCED_FACE('AdvFace1',(#9136,#9128),#9121,.F.);
|
||||
#9140 = CARTESIAN_POINT('CartPt4',(0.0,0.0,5.0));
|
||||
#9141 = AXIS2_PLACEMENT_3D('Ax2P3D2',#9140,#9103,#9101);
|
||||
#9142 = PLANE('Plane2',#9141);
|
||||
#9143 = CIRCLE('Circ3',#9141,30.0);
|
||||
#9144 = CARTESIAN_POINT('CartPt5',(30.0,0.0,5.0));
|
||||
#9145 = VERTEX_POINT('VertPt3',#9144);
|
||||
#9146 = EDGE_CURVE('EdgeCur3',#9145,#9145,#9143,.T.);
|
||||
#9147 = ORIENTED_EDGE('OriEdge3',*,*,#9146,.T.);
|
||||
#9148 = EDGE_LOOP('EdgeLoop3',(#9147));
|
||||
#9149 = FACE_BOUND('FaceBnd3',#9148,.T.);
|
||||
#9160 = CIRCLE('Circ4',#9141,25.0);
|
||||
#9161 = CARTESIAN_POINT('CartPt6',(25.0,0.0,5.0));
|
||||
#9162 = VERTEX_POINT('VertPt4',#9161);
|
||||
#9163 = EDGE_CURVE('EdgeCur4',#9162,#9162,#9160,.T.);
|
||||
#9164 = ORIENTED_EDGE('OriEdge4',*,*,#9163,.T.);
|
||||
#9165 = EDGE_LOOP('EdgeLoop4',(#9164));
|
||||
#9166 = FACE_BOUND('FaceBnd4',#9165,.F.);
|
||||
#9167 = ADVANCED_FACE('AdvFace2',(#9149,#9166),#9142,.T.);
|
||||
#9180 = CYLINDRICAL_SURFACE('CylSur1',#9120,30.0);
|
||||
#9190 = FACE_BOUND('FaceBnd5',#9127,.T.);
|
||||
#9191 = FACE_BOUND('FaceBnd6',#9148,.F.);
|
||||
#9192 = ADVANCED_FACE('AdvFace3',(#9190,#9191),#9180,.T.);
|
||||
#9200 = CYLINDRICAL_SURFACE('CylSur2',#9120,25.0);
|
||||
#9201 = FACE_BOUND('FaceBnd7',#9135,.F.);
|
||||
#9202 = FACE_BOUND('FaceBnd8',#9165,.T.);
|
||||
#9203 = ADVANCED_FACE('AdvFace4',(#9201,#9202),#9200,.F.);
|
||||
#9210 = CLOSED_SHELL('CloseSh1',(#9137,#9167,#9192,#9203));
|
||||
#9220 = MANIFOLD_SOLID_BREP('ManSolBrep1',#9210);
|
||||
#9230 = (GEOMETRIC_REPRESENTATION_CONTEXT(3)
|
||||
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#9043))
|
||||
GLOBAL_UNIT_ASSIGNED_CONTEXT((#9040,#9041,#9042))
|
||||
REPRESENTATION_CONTEXT('CONTEXT for advanced brep test case gasket','This is a 3d context using millimeters for linear dimension'));
|
||||
#9240 = ADVANCED_BREP_SHAPE_REPRESENTATION('ABShapeRep1',(#9220),#9230);
|
||||
ENDSEC;
|
||||
END-ISO-10303-21;
|
File diff suppressed because it is too large
Load Diff
13730
src/Mod/Import/App/config_control_design.py
Normal file
13730
src/Mod/Import/App/config_control_design.py
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user