diff --git a/Geo/GModelIO_GEO.cpp b/Geo/GModelIO_GEO.cpp index 5f60882607a95fcdce15c4fbb9011ba94d848f17..99ec64ad165f616f889a6697caf32f4e909d1ffb 100644 --- a/Geo/GModelIO_GEO.cpp +++ b/Geo/GModelIO_GEO.cpp @@ -1228,16 +1228,21 @@ void GEO_Internals::synchronize(GModel *model) List_Read(curves, i, &c); if(c->Num >= 0) { GEdge *e = model->getEdgeByTag(c->Num); + + printf("syncing curve %d:", c->Num); if(!e && c->beg && c->end) { + printf("case 1\n"); e = new gmshEdge(model, c, model->getVertexByTag(c->beg->Num), model->getVertexByTag(c->end->Num)); model->add(e); } else if(!e) { + printf("case 2\n"); e = new gmshEdge(model, c, 0, 0); model->add(e); } else { + printf("case 3\n"); if(e->getNativeType() == GEntity::GmshModel) { if(c->beg && c->end) ((gmshEdge *)e) diff --git a/demos/api/step_boundary_colors.py b/demos/api/step_boundary_colors.py new file mode 100644 index 0000000000000000000000000000000000000000..cea6ac96fb81bf006cc2a551078fe5079c692d7e --- /dev/null +++ b/demos/api/step_boundary_colors.py @@ -0,0 +1,10 @@ +import gmsh +gmsh.initialize() + +gmsh.option.setNumber("General.Terminal", 1) + +gmsh.merge('step_boundary_colors.stp') + +for tag in gmsh.model.getEntities(): + col = gmsh.model.getColor(*tag) + if col != (0,0,255,0): print('entity', tag, 'color', col) diff --git a/demos/api/step_boundary_colors.stp b/demos/api/step_boundary_colors.stp new file mode 100644 index 0000000000000000000000000000000000000000..11954e391c3a331c1f4a1e0cbc1037cea74d8814 --- /dev/null +++ b/demos/api/step_boundary_colors.stp @@ -0,0 +1,229 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('CATIA V6 STEP','CAx-IF Rec.Pracs.--- Model Styling and Organization---1.4--- 2014-01-23'),'2;1'); + +FILE_NAME('D:\\Downloads\\Step Files\\cubez.stp','2017-05-22T11:55:54+00:00',('none'),('none'),'3DEXPERIENCE Platform3DEXPERIENCE R2016x HotFix 9','3DEXPERIENCE Platform STEP AP214','none'); + +FILE_SCHEMA(('AUTOMOTIVE_DESIGN { 1 0 10303 214 1 1 1 1 }')); + +ENDSEC; +DATA; +#16=PRODUCT('','','',(#2)) ; +#2=PRODUCT_CONTEXT(' ',#1,'mechanical') ; +#1=APPLICATION_CONTEXT('automotive design') ; +#18=PRODUCT_DEFINITION('',' ',#17,#3) ; +#3=PRODUCT_DEFINITION_CONTEXT('part definition',#1,' ') ; +#19=PRODUCT_DEFINITION_SHAPE(' ',' ',#18) ; +#216=MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION(' ',(#78,#170,#202,#29),#12) ; +#217=MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION(' ',(#213),#12) ; +#13=SHAPE_REPRESENTATION(' ',(#15),#12) ; +#15=AXIS2_PLACEMENT_3D('',#14,$,$) ; +#34=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#31,#32,#33) ; +#82=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#79,#80,#81) ; +#113=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#110,#111,#112) ; +#144=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#141,#142,#143) ; +#174=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#171,#172,#173) ; +#186=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#183,#184,#185) ; +#208=AXIS2_PLACEMENT_3D('Absolute Axis System',#205,#206,#207) ; +#14=CARTESIAN_POINT('',(0.,0.,0.)) ; +#31=CARTESIAN_POINT('Axis2P3D Location',(0.,-50.,50.)) ; +#36=CARTESIAN_POINT('Line Origine',(0.,50.,50.)) ; +#40=CARTESIAN_POINT('Vertex',(-50.,50.,50.)) ; +#42=CARTESIAN_POINT('Vertex',(50.,50.,50.)) ; +#45=CARTESIAN_POINT('Line Origine',(-50.,0.,50.)) ; +#49=CARTESIAN_POINT('Vertex',(-50.,-50.,50.)) ; +#52=CARTESIAN_POINT('Line Origine',(0.,-50.,50.)) ; +#56=CARTESIAN_POINT('Vertex',(50.,-50.,50.)) ; +#59=CARTESIAN_POINT('Line Origine',(50.,0.,50.)) ; +#79=CARTESIAN_POINT('Axis2P3D Location',(0.,-50.,-50.)) ; +#84=CARTESIAN_POINT('Line Origine',(-50.,-50.,7.1054273576E-015)) ; +#88=CARTESIAN_POINT('Vertex',(-50.,-50.,-50.)) ; +#91=CARTESIAN_POINT('Line Origine',(0.,-50.,-50.)) ; +#95=CARTESIAN_POINT('Vertex',(50.,-50.,-50.)) ; +#98=CARTESIAN_POINT('Line Origine',(50.,-50.,7.1054273576E-015)) ; +#110=CARTESIAN_POINT('Axis2P3D Location',(0.,50.,-50.)) ; +#115=CARTESIAN_POINT('Line Origine',(-50.,0.,-50.)) ; +#119=CARTESIAN_POINT('Vertex',(-50.,50.,-50.)) ; +#122=CARTESIAN_POINT('Line Origine',(0.,50.,-50.)) ; +#126=CARTESIAN_POINT('Vertex',(50.,50.,-50.)) ; +#129=CARTESIAN_POINT('Line Origine',(50.,0.,-50.)) ; +#141=CARTESIAN_POINT('Axis2P3D Location',(0.,50.,50.)) ; +#146=CARTESIAN_POINT('Line Origine',(-50.,50.,7.1054273576E-015)) ; +#151=CARTESIAN_POINT('Line Origine',(50.,50.,7.1054273576E-015)) ; +#171=CARTESIAN_POINT('Axis2P3D Location',(-50.,0.,0.)) ; +#183=CARTESIAN_POINT('Axis2P3D Location',(50.,0.,0.)) ; +#205=CARTESIAN_POINT('Axis2P3D Location',(0.,0.,0.)) ; +#32=DIRECTION('Axis2P3D Direction',(0.,0.,-1.)) ; +#33=DIRECTION('Axis2P3D XDirection',(0.,1.,0.)) ; +#37=DIRECTION('Vector Direction',(1.,0.,0.)) ; +#46=DIRECTION('Vector Direction',(0.,1.,0.)) ; +#53=DIRECTION('Vector Direction',(1.,0.,0.)) ; +#60=DIRECTION('Vector Direction',(0.,1.,0.)) ; +#80=DIRECTION('Axis2P3D Direction',(0.,1.,0.)) ; +#81=DIRECTION('Axis2P3D XDirection',(0.,0.,1.)) ; +#85=DIRECTION('Vector Direction',(0.,0.,1.)) ; +#92=DIRECTION('Vector Direction',(1.,0.,0.)) ; +#99=DIRECTION('Vector Direction',(0.,0.,1.)) ; +#111=DIRECTION('Axis2P3D Direction',(-0.,0.,1.)) ; +#112=DIRECTION('Axis2P3D XDirection',(0.,-1.,0.)) ; +#116=DIRECTION('Vector Direction',(0.,-1.,0.)) ; +#123=DIRECTION('Vector Direction',(1.,0.,0.)) ; +#130=DIRECTION('Vector Direction',(0.,-1.,0.)) ; +#142=DIRECTION('Axis2P3D Direction',(0.,-1.,0.)) ; +#143=DIRECTION('Axis2P3D XDirection',(0.,0.,-1.)) ; +#147=DIRECTION('Vector Direction',(0.,0.,-1.)) ; +#152=DIRECTION('Vector Direction',(0.,0.,-1.)) ; +#172=DIRECTION('Axis2P3D Direction',(1.,0.,0.)) ; +#173=DIRECTION('Axis2P3D XDirection',(0.,1.,0.)) ; +#184=DIRECTION('Axis2P3D Direction',(1.,0.,0.)) ; +#185=DIRECTION('Axis2P3D XDirection',(0.,1.,0.)) ; +#206=DIRECTION('Axis2P3D Direction',(0.,0.,1.)) ; +#207=DIRECTION('Axis2P3D XDirection',(1.,0.,0.)) ; +#6=PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#16)) ; +#5=PRODUCT_CATEGORY('part','specification') ; +#29=STYLED_ITEM(' ',(#28),#21) ; +#213=STYLED_ITEM(' ',(#212),#208) ; +#28=PRESENTATION_STYLE_ASSIGNMENT((#27)) ; +#77=PRESENTATION_STYLE_ASSIGNMENT((#76)) ; +#169=PRESENTATION_STYLE_ASSIGNMENT((#168)) ; +#201=PRESENTATION_STYLE_ASSIGNMENT((#200)) ; +#212=PRESENTATION_STYLE_ASSIGNMENT((#211)) ; +#211=CURVE_STYLE(' ',#209,POSITIVE_LENGTH_MEASURE(0.129999995232),#210) ; +#27=SURFACE_STYLE_USAGE(.BOTH.,#26) ; +#76=SURFACE_STYLE_USAGE(.BOTH.,#75) ; +#168=SURFACE_STYLE_USAGE(.BOTH.,#167) ; +#200=SURFACE_STYLE_USAGE(.BOTH.,#199) ; +#26=SURFACE_SIDE_STYLE(' ',(#25)) ; +#75=SURFACE_SIDE_STYLE(' ',(#74)) ; +#167=SURFACE_SIDE_STYLE(' ',(#166)) ; +#199=SURFACE_SIDE_STYLE(' ',(#198)) ; +#25=SURFACE_STYLE_FILL_AREA(#24) ; +#74=SURFACE_STYLE_FILL_AREA(#73) ; +#166=SURFACE_STYLE_FILL_AREA(#165) ; +#198=SURFACE_STYLE_FILL_AREA(#197) ; +#24=FILL_AREA_STYLE(' ',(#23)) ; +#73=FILL_AREA_STYLE(' ',(#72)) ; +#165=FILL_AREA_STYLE(' ',(#164)) ; +#197=FILL_AREA_STYLE(' ',(#196)) ; +#23=FILL_AREA_STYLE_COLOUR(' ',#22) ; +#72=FILL_AREA_STYLE_COLOUR(' ',#71) ; +#164=FILL_AREA_STYLE_COLOUR(' ',#163) ; +#196=FILL_AREA_STYLE_COLOUR(' ',#195) ; +#38=VECTOR('Line Direction',#37,1.) ; +#47=VECTOR('Line Direction',#46,1.) ; +#54=VECTOR('Line Direction',#53,1.) ; +#61=VECTOR('Line Direction',#60,1.) ; +#86=VECTOR('Line Direction',#85,1.) ; +#93=VECTOR('Line Direction',#92,1.) ; +#100=VECTOR('Line Direction',#99,1.) ; +#117=VECTOR('Line Direction',#116,1.) ; +#124=VECTOR('Line Direction',#123,1.) ; +#131=VECTOR('Line Direction',#130,1.) ; +#148=VECTOR('Line Direction',#147,1.) ; +#153=VECTOR('Line Direction',#152,1.) ; +#11=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.005),#8,'distance_accuracy_value','CONFUSED CURVE UNCERTAINTY') ; +#204=SHAPE_REPRESENTATION_RELATIONSHIP(' ',' ',#13,#203) ; +#65=ORIENTED_EDGE('',*,*,#44,.F.) ; +#66=ORIENTED_EDGE('',*,*,#51,.T.) ; +#67=ORIENTED_EDGE('',*,*,#58,.T.) ; +#68=ORIENTED_EDGE('',*,*,#63,.F.) ; +#104=ORIENTED_EDGE('',*,*,#58,.F.) ; +#105=ORIENTED_EDGE('',*,*,#90,.T.) ; +#106=ORIENTED_EDGE('',*,*,#97,.T.) ; +#107=ORIENTED_EDGE('',*,*,#102,.F.) ; +#135=ORIENTED_EDGE('',*,*,#97,.F.) ; +#136=ORIENTED_EDGE('',*,*,#121,.T.) ; +#137=ORIENTED_EDGE('',*,*,#128,.T.) ; +#138=ORIENTED_EDGE('',*,*,#133,.F.) ; +#157=ORIENTED_EDGE('',*,*,#128,.F.) ; +#158=ORIENTED_EDGE('',*,*,#150,.T.) ; +#159=ORIENTED_EDGE('',*,*,#44,.T.) ; +#160=ORIENTED_EDGE('',*,*,#155,.F.) ; +#177=ORIENTED_EDGE('',*,*,#150,.F.) ; +#178=ORIENTED_EDGE('',*,*,#121,.F.) ; +#179=ORIENTED_EDGE('',*,*,#90,.F.) ; +#180=ORIENTED_EDGE('',*,*,#51,.F.) ; +#189=ORIENTED_EDGE('',*,*,#63,.T.) ; +#190=ORIENTED_EDGE('',*,*,#102,.T.) ; +#191=ORIENTED_EDGE('',*,*,#133,.T.) ; +#192=ORIENTED_EDGE('',*,*,#155,.T.) ; +#30=CLOSED_SHELL('Closed Shell',(#70,#109,#140,#162,#182,#194)) ; +#203=ADVANCED_BREP_SHAPE_REPRESENTATION('NONE',(#21),#12) ; +#70=ADVANCED_FACE('PartBody',(#69),#35,.F.) ; +#109=ADVANCED_FACE('PartBody',(#108),#83,.F.) ; +#140=ADVANCED_FACE('PartBody',(#139),#114,.F.) ; +#162=ADVANCED_FACE('PartBody',(#161),#145,.F.) ; +#182=ADVANCED_FACE('PartBody',(#181),#175,.F.) ; +#194=ADVANCED_FACE('PartBody',(#193),#187,.T.) ; +#4=APPLICATION_PROTOCOL_DEFINITION('international standard','automotive_design',2001,#1) ; +#21=MANIFOLD_SOLID_BREP('PartBody',#30) ; +#22=COLOUR_RGB('Colour',0.882352941176,0.882352941176,0.882352941176) ; +#195=COLOUR_RGB('Colour',0.,0.501960784314,1.) ; +#214=CONSTRUCTIVE_GEOMETRY_REPRESENTATION('supplemental geometry',(#208),#12) ; +#215=CONSTRUCTIVE_GEOMETRY_REPRESENTATION_RELATIONSHIP('supplemental geometry','',#13,#214) ; +#78=OVER_RIDING_STYLED_ITEM(' ',(#77),#70,#29) ; +#170=OVER_RIDING_STYLED_ITEM(' ',(#169),#162,#29) ; +#202=OVER_RIDING_STYLED_ITEM(' ',(#201),#194,#29) ; +#71=DRAUGHTING_PRE_DEFINED_COLOUR('green') ; +#163=DRAUGHTING_PRE_DEFINED_COLOUR('red') ; +#210=DRAUGHTING_PRE_DEFINED_COLOUR('white') ; +#209=DRAUGHTING_PRE_DEFINED_CURVE_FONT('continuous') ; +#44=EDGE_CURVE('',#41,#43,#39,.T.) ; +#51=EDGE_CURVE('',#41,#50,#48,.F.) ; +#58=EDGE_CURVE('',#50,#57,#55,.T.) ; +#63=EDGE_CURVE('',#43,#57,#62,.F.) ; +#90=EDGE_CURVE('',#50,#89,#87,.F.) ; +#97=EDGE_CURVE('',#89,#96,#94,.T.) ; +#102=EDGE_CURVE('',#57,#96,#101,.F.) ; +#121=EDGE_CURVE('',#89,#120,#118,.F.) ; +#128=EDGE_CURVE('',#120,#127,#125,.T.) ; +#133=EDGE_CURVE('',#96,#127,#132,.F.) ; +#150=EDGE_CURVE('',#120,#41,#149,.F.) ; +#155=EDGE_CURVE('',#127,#43,#154,.F.) ; +#64=EDGE_LOOP('',(#65,#66,#67,#68)) ; +#103=EDGE_LOOP('',(#104,#105,#106,#107)) ; +#134=EDGE_LOOP('',(#135,#136,#137,#138)) ; +#156=EDGE_LOOP('',(#157,#158,#159,#160)) ; +#176=EDGE_LOOP('',(#177,#178,#179,#180)) ; +#188=EDGE_LOOP('',(#189,#190,#191,#192)) ; +#69=FACE_OUTER_BOUND('',#64,.T.) ; +#108=FACE_OUTER_BOUND('',#103,.T.) ; +#139=FACE_OUTER_BOUND('',#134,.T.) ; +#161=FACE_OUTER_BOUND('',#156,.T.) ; +#181=FACE_OUTER_BOUND('',#176,.T.) ; +#193=FACE_OUTER_BOUND('',#188,.T.) ; +#39=LINE('Line',#36,#38) ; +#48=LINE('Line',#45,#47) ; +#55=LINE('Line',#52,#54) ; +#62=LINE('Line',#59,#61) ; +#87=LINE('Line',#84,#86) ; +#94=LINE('Line',#91,#93) ; +#101=LINE('Line',#98,#100) ; +#118=LINE('Line',#115,#117) ; +#125=LINE('Line',#122,#124) ; +#132=LINE('Line',#129,#131) ; +#149=LINE('Line',#146,#148) ; +#154=LINE('Line',#151,#153) ; +#35=PLANE('',#34) ; +#83=PLANE('',#82) ; +#114=PLANE('',#113) ; +#145=PLANE('',#144) ; +#175=PLANE('',#174) ; +#187=PLANE('',#186) ; +#7=PRODUCT_CATEGORY_RELATIONSHIP(' ',' ',#5,#6) ; +#17=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('1.0',' ',#16,.NOT_KNOWN.) ; +#20=SHAPE_DEFINITION_REPRESENTATION(#19,#13) ; +#41=VERTEX_POINT('',#40) ; +#43=VERTEX_POINT('',#42) ; +#50=VERTEX_POINT('',#49) ; +#57=VERTEX_POINT('',#56) ; +#89=VERTEX_POINT('',#88) ; +#96=VERTEX_POINT('',#95) ; +#120=VERTEX_POINT('',#119) ; +#127=VERTEX_POINT('',#126) ; +#8=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.)) ; +#9=(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.)) ; +#10=(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT()) ; +#12=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#11))GLOBAL_UNIT_ASSIGNED_CONTEXT((#8,#9,#10))REPRESENTATION_CONTEXT(' ',' ')) ; +ENDSEC; +END-ISO-10303-21;