[Gmsh] Problem importing STEP file from Rhino3d

Peter Wainwright prw at ceiriog.eclipse.co.uk
Tue Oct 7 20:54:03 CEST 2008


As a first exercise with Rhino, I created a primitive sphere and
exported it as STEP.  However, When I import this into gmsh 2.2.4
(linked with OpenCASCADE 6.2), I find that the bounding curves of the
surfaces are wrong, and the surfaces do not meet.  Can anyone tell me
what is the problem here?

I have attached the .stp file and a screenshot of the resulting model...

Peter Wainwright

-------------- next part --------------
ISO-10303-21;
HEADER;
/* Generated by software containing ST-Developer
 * from STEP Tools, Inc. (www.steptools.com) 
 */
/* OPTION: using custom schema-name function */

FILE_DESCRIPTION(
/* description */ (''),
/* implementation_level */ '2;1');

FILE_NAME(
/* name */ 'Sphere2',
/* time_stamp */ '2008-09-25T09:27:41+01:00',
/* author */ (''),
/* organization */ (''),
/* preprocessor_version */ 'ST-DEVELOPER v10',
/* originating_system */ '',
/* authorisation */ '');

FILE_SCHEMA (('CONFIG_CONTROL_DESIGN'));
ENDSEC;

DATA;
#10=SHAPE_REPRESENTATION_RELATIONSHIP($,$,#118,#12);
#11=MANIFOLD_SOLID_BREP('brep_1',#13);
#12=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#11,#119),#117);
#13=CLOSED_SHELL('',(#14,#15));
#14=ADVANCED_FACE('',(#16),#28,.T.);
#15=ADVANCED_FACE('',(#17),#29,.T.);
#16=FACE_OUTER_BOUND('',#18,.T.);
#17=FACE_OUTER_BOUND('',#19,.T.);
#18=EDGE_LOOP('',(#20,#21));
#19=EDGE_LOOP('',(#22,#23));
#20=ORIENTED_EDGE('',*,*,#25,.T.);
#21=ORIENTED_EDGE('',*,*,#24,.F.);
#22=ORIENTED_EDGE('',*,*,#24,.T.);
#23=ORIENTED_EDGE('',*,*,#25,.F.);
#24=EDGE_CURVE('',#26,#27,#30,.T.);
#25=EDGE_CURVE('',#26,#27,#31,.T.);
#26=VERTEX_POINT('',#183);
#27=VERTEX_POINT('',#184);
#28=(
BOUNDED_SURFACE()
B_SPLINE_SURFACE(2,2,((#133,#134,#135,#136,#137),(#138,#139,#140,#141,#142),
(#143,#144,#145,#146,#147),(#148,#149,#150,#151,#152),(#153,#154,#155,#156,
#157)),.UNSPECIFIED.,.F.,.F.,.F.)
B_SPLINE_SURFACE_WITH_KNOTS((3,2,3),(3,2,3),(0.,1.5707963267949,3.14159265358979),
(-1.5707963267949,0.,1.5707963267949),.UNSPECIFIED.)
GEOMETRIC_REPRESENTATION_ITEM()
RATIONAL_B_SPLINE_SURFACE(((1.,0.707106781186548,1.,0.707106781186548,1.),
(0.707106781186548,0.5,0.707106781186548,0.5,0.707106781186548),(1.,0.707106781186548,
1.,0.707106781186548,1.),(0.707106781186548,0.5,0.707106781186548,0.5,0.707106781186548),
(1.,0.707106781186548,1.,0.707106781186548,1.)))
REPRESENTATION_ITEM('')
SURFACE()
);
#29=(
BOUNDED_SURFACE()
B_SPLINE_SURFACE(2,2,((#158,#159,#160,#161,#162),(#163,#164,#165,#166,#167),
(#168,#169,#170,#171,#172),(#173,#174,#175,#176,#177),(#178,#179,#180,#181,
#182)),.UNSPECIFIED.,.F.,.F.,.F.)
B_SPLINE_SURFACE_WITH_KNOTS((3,2,3),(3,2,3),(3.14159265358979,4.71238898038469,
6.28318530717959),(-1.5707963267949,0.,1.5707963267949),.UNSPECIFIED.)
GEOMETRIC_REPRESENTATION_ITEM()
RATIONAL_B_SPLINE_SURFACE(((1.,0.707106781186548,1.,0.707106781186548,1.),
(0.707106781186548,0.5,0.707106781186548,0.5,0.707106781186548),(1.,0.707106781186548,
1.,0.707106781186548,1.),(0.707106781186548,0.5,0.707106781186548,0.5,0.707106781186548),
(1.,0.707106781186548,1.,0.707106781186548,1.)))
REPRESENTATION_ITEM('')
SURFACE()
);
#30=(
BOUNDED_CURVE()
B_SPLINE_CURVE(2,(#123,#124,#125,#126,#127),.UNSPECIFIED.,.F.,.F.)
B_SPLINE_CURVE_WITH_KNOTS((3,2,3),(-1.5707963267949,0.,1.5707963267949),
.UNSPECIFIED.)
CURVE()
GEOMETRIC_REPRESENTATION_ITEM()
RATIONAL_B_SPLINE_CURVE((1.,0.707106781186548,1.,0.707106781186548,1.))
REPRESENTATION_ITEM('')
);
#31=(
BOUNDED_CURVE()
B_SPLINE_CURVE(2,(#128,#129,#130,#131,#132),.UNSPECIFIED.,.F.,.F.)
B_SPLINE_CURVE_WITH_KNOTS((3,2,3),(-1.5707963267949,0.,1.5707963267949),
.UNSPECIFIED.)
CURVE()
GEOMETRIC_REPRESENTATION_ITEM()
RATIONAL_B_SPLINE_CURVE((1.,0.707106781186548,1.,0.707106781186548,1.))
REPRESENTATION_ITEM('')
);
#32=SHAPE_DEFINITION_REPRESENTATION(#33,#118);
#33=PRODUCT_DEFINITION_SHAPE($,$,#35);
#34=DESIGN_CONTEXT('3D Mechanical Parts',#107,'design');
#35=PRODUCT_DEFINITION('A','First version',#77,#34);
#36=DATE_TIME_ROLE('classification_date');
#37=DATE_TIME_ROLE('creation_date');
#38=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#62,#36,(#41));
#39=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#64,#37,(#35));
#40=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#41=SECURITY_CLASSIFICATION('A','Security for version',#40);
#42=CC_DESIGN_SECURITY_CLASSIFICATION(#41,(#77));
#43=APPROVAL_ROLE('Version approval');
#44=APPROVAL_ROLE('Version Security approval');
#45=APPROVAL_ROLE('Definition approval');
#46=APPROVAL_PERSON_ORGANIZATION(#95,#71,#43);
#47=APPROVAL_PERSON_ORGANIZATION(#96,#72,#44);
#48=APPROVAL_PERSON_ORGANIZATION(#99,#73,#45);
#49=COORDINATED_UNIVERSAL_TIME_OFFSET(5,0,.BEHIND.);
#50=LOCAL_TIME(0,0,0.,#49);
#51=LOCAL_TIME(0,0,0.,#49);
#52=LOCAL_TIME(0,0,0.,#49);
#53=LOCAL_TIME(0,0,0.,#49);
#54=LOCAL_TIME(0,0,0.,#49);
#55=CALENDAR_DATE(1999,1,1);
#56=CALENDAR_DATE(1999,1,1);
#57=CALENDAR_DATE(1999,1,1);
#58=CALENDAR_DATE(1999,1,1);
#59=CALENDAR_DATE(1999,1,1);
#60=DATE_AND_TIME(#55,#50);
#61=DATE_AND_TIME(#56,#51);
#62=DATE_AND_TIME(#57,#52);
#63=DATE_AND_TIME(#58,#53);
#64=DATE_AND_TIME(#59,#54);
#65=APPROVAL_DATE_TIME(#60,#71);
#66=APPROVAL_DATE_TIME(#61,#72);
#67=APPROVAL_DATE_TIME(#63,#73);
#68=APPROVAL_STATUS('not_yet_approved');
#69=APPROVAL_STATUS('not_yet_approved');
#70=APPROVAL_STATUS('approved');
#71=APPROVAL(#68,'Version approval');
#72=APPROVAL(#69,'Version Security approval');
#73=APPROVAL(#70,'Definition approval');
#74=CC_DESIGN_APPROVAL(#71,(#77));
#75=CC_DESIGN_APPROVAL(#72,(#41));
#76=CC_DESIGN_APPROVAL(#73,(#35));
#77=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('A',
'First version',#109,.MADE.);
#78=PERSON_AND_ORGANIZATION_ROLE('design_owner');
#79=PERSON_AND_ORGANIZATION_ROLE('creator');
#80=PERSON_AND_ORGANIZATION_ROLE('design_supplier');
#81=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#82=PERSON_AND_ORGANIZATION_ROLE('creator');
#83=ORGANIZATION('STI','lab','lab');
#84=ORGANIZATION('STI','unknown','unknown');
#85=ORGANIZATION('STI','unknown','unknown');
#86=ORGANIZATION('STI','unknown','unknown');
#87=ORGANIZATION('STI','unknown','unknown');
#88=ORGANIZATION('STI','unknown','unknown');
#89=ORGANIZATION('STI','unknown','unknown');
#90=PERSON('1','Box','vc60',$,$,$);
#91=PERSON('2','last','first',$,$,$);
#92=PERSON('3','President','Mr.',$,$,$);
#93=PERSON_AND_ORGANIZATION(#90,#83);
#94=PERSON_AND_ORGANIZATION(#91,#84);
#95=PERSON_AND_ORGANIZATION(#92,#85);
#96=PERSON_AND_ORGANIZATION(#92,#86);
#97=PERSON_AND_ORGANIZATION(#92,#87);
#98=PERSON_AND_ORGANIZATION(#91,#88);
#99=PERSON_AND_ORGANIZATION(#92,#89);
#100=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#93,#78,(#109));
#101=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#94,#79,(#77));
#102=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#94,#80,(#77));
#103=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#97,#81,(#41));
#104=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#98,#82,(#35));
#105=PRODUCT_RELATED_PRODUCT_CATEGORY('detail','detail',(#109));
#106=APPLICATION_PROTOCOL_DEFINITION('International Standard',
'config_control_design',1994,#107);
#107=APPLICATION_CONTEXT(
'configuration controlled 3d designs of mechanical parts and assemblies
');
#108=MECHANICAL_CONTEXT('3D Mechanical Parts',#107,'mechanical');
#109=PRODUCT('1','Document','Rhino converted to STEP',(#108));
#110=(
LENGTH_UNIT()
NAMED_UNIT(*)
SI_UNIT(.MILLI.,.METRE.)
);
#111=(
NAMED_UNIT(*)
PLANE_ANGLE_UNIT()
SI_UNIT($,.RADIAN.)
);
#112=DIMENSIONAL_EXPONENTS(0.,0.,0.,0.,0.,0.,0.);
#113=PLANE_ANGLE_MEASURE_WITH_UNIT(PLANE_ANGLE_MEASURE(0.01745329252),#111);
#114=(
CONVERSION_BASED_UNIT('DEGREES',#113)
NAMED_UNIT(#112)
PLANE_ANGLE_UNIT()
);
#115=(
NAMED_UNIT(*)
SI_UNIT($,.STERADIAN.)
SOLID_ANGLE_UNIT()
);
#116=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.001),#110,
'DISTANCE_ACCURACY_VALUE',
'Maximum model space distance between geometric entities at asserted co
nnectivities');
#117=(
GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#116))
GLOBAL_UNIT_ASSIGNED_CONTEXT((#115,#114,#110))
REPRESENTATION_CONTEXT('ID1','3D')
);
#118=SHAPE_REPRESENTATION('',(#119),#117);
#119=AXIS2_PLACEMENT_3D('',#122,#120,#121);
#120=DIRECTION('',(0.,0.,1.));
#121=DIRECTION('',(1.,0.,0.));
#122=CARTESIAN_POINT('',(0.,0.,0.));
#123=CARTESIAN_POINT('',(-0.12507487494395,-0.0438786937349769,-16.7114481718372));
#124=CARTESIAN_POINT('',(16.5863732968932,-0.0438786937349769,-16.7114481718372));
#125=CARTESIAN_POINT('',(16.5863732968932,-0.0438786937349769,-1.02328107563786E-15));
#126=CARTESIAN_POINT('',(16.5863732968932,-0.0438786937349769,16.7114481718372));
#127=CARTESIAN_POINT('',(-0.125074874943948,-0.0438786937349769,16.7114481718372));
#128=CARTESIAN_POINT('',(-0.12507487494395,-0.0438786937349769,-16.7114481718372));
#129=CARTESIAN_POINT('',(-16.8365230467811,-0.0438786937349769,-16.7114481718372));
#130=CARTESIAN_POINT('',(-16.8365230467811,-0.0438786937349769,-1.02328107563786E-15));
#131=CARTESIAN_POINT('',(-16.8365230467811,-0.0438786937349769,16.7114481718372));
#132=CARTESIAN_POINT('',(-0.125074874943952,-0.0438786937349769,16.7114481718372));
#133=CARTESIAN_POINT('',(-0.12507487494395,-0.0438786937349769,-16.7114481718372));
#134=CARTESIAN_POINT('',(16.5863732968932,-0.0438786937349769,-16.7114481718372));
#135=CARTESIAN_POINT('',(16.5863732968932,-0.0438786937349769,-1.02328107563786E-15));
#136=CARTESIAN_POINT('',(16.5863732968932,-0.0438786937349769,16.7114481718372));
#137=CARTESIAN_POINT('',(-0.12507487494395,-0.0438786937349769,16.7114481718372));
#138=CARTESIAN_POINT('',(-0.12507487494395,-0.0438786937349769,-16.7114481718372));
#139=CARTESIAN_POINT('',(16.5863732968932,16.6675694781022,-16.7114481718372));
#140=CARTESIAN_POINT('',(16.5863732968932,16.6675694781022,-1.02328107563786E-15));
#141=CARTESIAN_POINT('',(16.5863732968932,16.6675694781022,16.7114481718372));
#142=CARTESIAN_POINT('',(-0.12507487494395,-0.0438786937349769,16.7114481718372));
#143=CARTESIAN_POINT('',(-0.12507487494395,-0.0438786937349769,-16.7114481718372));
#144=CARTESIAN_POINT('',(-0.125074874943949,16.6675694781022,-16.7114481718372));
#145=CARTESIAN_POINT('',(-0.125074874943949,16.6675694781022,-1.02328107563786E-15));
#146=CARTESIAN_POINT('',(-0.125074874943949,16.6675694781022,16.7114481718372));
#147=CARTESIAN_POINT('',(-0.12507487494395,-0.0438786937349769,16.7114481718372));
#148=CARTESIAN_POINT('',(-0.12507487494395,-0.0438786937349769,-16.7114481718372));
#149=CARTESIAN_POINT('',(-16.8365230467811,16.6675694781022,-16.7114481718372));
#150=CARTESIAN_POINT('',(-16.8365230467811,16.6675694781022,-1.02328107563786E-15));
#151=CARTESIAN_POINT('',(-16.8365230467811,16.6675694781022,16.7114481718372));
#152=CARTESIAN_POINT('',(-0.12507487494395,-0.0438786937349769,16.7114481718372));
#153=CARTESIAN_POINT('',(-0.12507487494395,-0.0438786937349769,-16.7114481718372));
#154=CARTESIAN_POINT('',(-16.8365230467811,-0.0438786937349749,-16.7114481718372));
#155=CARTESIAN_POINT('',(-16.8365230467811,-0.0438786937349749,-1.02328107563786E-15));
#156=CARTESIAN_POINT('',(-16.8365230467811,-0.0438786937349749,16.7114481718372));
#157=CARTESIAN_POINT('',(-0.12507487494395,-0.0438786937349769,16.7114481718372));
#158=CARTESIAN_POINT('',(-0.12507487494395,-0.0438786937349769,-16.7114481718372));
#159=CARTESIAN_POINT('',(-16.8365230467811,-0.0438786937349769,-16.7114481718372));
#160=CARTESIAN_POINT('',(-16.8365230467811,-0.0438786937349769,-1.02328107563786E-15));
#161=CARTESIAN_POINT('',(-16.8365230467811,-0.0438786937349769,16.7114481718372));
#162=CARTESIAN_POINT('',(-0.12507487494395,-0.0438786937349769,16.7114481718372));
#163=CARTESIAN_POINT('',(-0.12507487494395,-0.0438786937349769,-16.7114481718372));
#164=CARTESIAN_POINT('',(-16.8365230467811,-16.7553268655721,-16.7114481718372));
#165=CARTESIAN_POINT('',(-16.8365230467811,-16.7553268655721,-1.02328107563786E-15));
#166=CARTESIAN_POINT('',(-16.8365230467811,-16.7553268655721,16.7114481718372));
#167=CARTESIAN_POINT('',(-0.12507487494395,-0.0438786937349769,16.7114481718372));
#168=CARTESIAN_POINT('',(-0.12507487494395,-0.0438786937349769,-16.7114481718372));
#169=CARTESIAN_POINT('',(-0.125074874943951,-16.7553268655721,-16.7114481718372));
#170=CARTESIAN_POINT('',(-0.125074874943951,-16.7553268655721,-1.02328107563786E-15));
#171=CARTESIAN_POINT('',(-0.125074874943951,-16.7553268655721,16.7114481718372));
#172=CARTESIAN_POINT('',(-0.12507487494395,-0.0438786937349769,16.7114481718372));
#173=CARTESIAN_POINT('',(-0.12507487494395,-0.0438786937349769,-16.7114481718372));
#174=CARTESIAN_POINT('',(16.5863732968932,-16.7553268655721,-16.7114481718372));
#175=CARTESIAN_POINT('',(16.5863732968932,-16.7553268655721,-1.02328107563786E-15));
#176=CARTESIAN_POINT('',(16.5863732968932,-16.7553268655721,16.7114481718372));
#177=CARTESIAN_POINT('',(-0.12507487494395,-0.0438786937349769,16.7114481718372));
#178=CARTESIAN_POINT('',(-0.12507487494395,-0.0438786937349769,-16.7114481718372));
#179=CARTESIAN_POINT('',(16.5863732968932,-0.043878693734979,-16.7114481718372));
#180=CARTESIAN_POINT('',(16.5863732968932,-0.043878693734979,-1.02328107563786E-15));
#181=CARTESIAN_POINT('',(16.5863732968932,-0.043878693734979,16.7114481718372));
#182=CARTESIAN_POINT('',(-0.12507487494395,-0.0438786937349769,16.7114481718372));
#183=CARTESIAN_POINT('',(-0.12507487494395,-0.0438786937349769,-16.7114481718372));
#184=CARTESIAN_POINT('',(-0.125074874943948,-0.0438786937349769,16.7114481718372));
ENDSEC;
END-ISO-10303-21;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: bad_sphere.jpg
Type: image/jpeg
Size: 60855 bytes
Desc: not available
URL: <http://www.geuz.org/pipermail/gmsh/attachments/20081007/a64c1906/attachment.jpg>