View Issue Details

IDProjectCategoryView StatusLast Update
0002908FreeCADBugpublic2018-09-14 16:18
Reportersherif Assigned Towmayer  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Product Version0.17 
Target Version0.18Fixed in Version0.18 
Summary0002908: stp file import name mismatch (due to some limitation into UTF-8 support & naming convention)
DescriptionThe import of stp files changes the part names stored in the stp file ie:
# 7 = PRODUCT('000-123_q234 23','000-123_q234 23','',(# 8));
is changed to
_00_123_q234_23

The first character is changed to _ if the name begins with a number
Spaces are changed to _
- is changed to _

I believe this happens only if the part has children

The attached stp file is artificial but the problem occurs on real stp files exported from other cad tools
 

git revision FreeCAD master 2780edd9

Can you please write the import code location to a comment thanks
Steps To ReproduceImport attached file
Tags#lowhangingfruit, STEP, unicode
FreeCAD Information

Relationships

related to 0001672 closedwmayer Raytracing Raytracing export to POV-Ray - respect ASCII convention for I/O filenames 

Activities

sherif

2017-02-20 12:16

reporter  

bugreport.stp (Attachment missing)

Kunda1

2017-02-20 22:19

administrator   ~0008390

@sherif please paste your Help > About FreeCAD > Copy to Clipboard

@vejmarie when you have a moment, do you mind weighing in on this ticket ?

sherif

2017-02-21 08:34

reporter   ~0008396

OS: Ubuntu 16.04.1 LTS
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.17.9927 (Git)
Build type: Unknown
Branch: master
Hash: 2780edd903e9819eb0d0940ca0e754f1124ac188
Python version: 2.7.12
Qt version: 4.8.7
Coin version: 4.0.0a
OCC version: 6.8.0.oce-0.17


also happens in

OS: Ubuntu 16.04.2 LTS
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.17.10101 (Git)
Build type: Unknown
Branch: master
Hash: 99fa203f323927b0dd027420d4421b577b7420c3
Python version: 2.7.12
Qt version: 4.8.7
Coin version: 4.0.0a
OCC version: 6.8.0.oce-0.17

Kunda1

2017-05-31 00:48

administrator   ~0009208

@sherif can you re-up the attached step file? (It was lost during a backup restore)

Kunda1

2017-07-03 12:18

administrator   ~0009654

@sherif please respond

Kunda1

2017-07-03 17:36

administrator   ~0009656

yes I can reproduce this issue, this is coming from some limitation into our UTF-8 support and naming convention. By the way I believe that a part or Assembly name starting with a number is prohibited in STEP file format (but I must recheck that). I soon had a discussion with wmayer about that in the past and we ended up with the current implementation

vejmarie

sherif

2017-09-27 15:32

reporter   ~0010201

@Kunda1 sorry for the late reply I dont have the file anymore. Do you still need it ? If so I will create newone.
We are working on a file conversion tool and I had the oportunity to test many step files form different cad systems (real production assemblies)
This is a reoccurring problem and we are solving it by renaming the parts directly in the stp file before conversion.

Kunda1

2017-09-27 17:05

administrator   ~0010203

@sherif yes, please create a new one.

Kunda1

2017-11-24 11:30

administrator   ~0010461

@sherif ping

Kunda1

2018-07-03 02:26

administrator   ~0011483

@sherif please create a new example stp file. thank you

Kunda1

2018-07-03 02:27

administrator   ~0011484

Forum thread: https://forum.freecadweb.org/viewtopic.php?f=8&t=29573

sherif

2018-07-03 15:34

reporter   ~0011488

Here it is.

Another bug / issue /general problem I have faced in the last month is that freecad does not allow to have same part numbers for several parts which can happen and happens often in content of stp files. Its impossible to script a conversion program based on product name as the suffix (00n) is not safely predictable. Im not opening an issue for this as I dont think that a change in label as id principle would be implemented.
error.stp (23,631 bytes)   
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('FreeCAD Model'),'2;1');
FILE_NAME('/home/tomas/Desktop/error.stp','2018-07-03T17:15:31',(
    'Author'),(''),'Open CASCADE STEP processor 6.8','FreeCAD','Unknown'
  );
FILE_SCHEMA(('AUTOMOTIVE_DESIGN_CC2 { 1 2 10303 214 -1 1 5 4 }'));
ENDSEC;
DATA;
#1 = APPLICATION_PROTOCOL_DEFINITION('committee draft',
  'automotive_design',1997,#2);
#2 = APPLICATION_CONTEXT(
  'core data for automotive mechanical design processes');
#3 = SHAPE_DEFINITION_REPRESENTATION(#4,#10);
#4 = PRODUCT_DEFINITION_SHAPE('','',#5);
#5 = PRODUCT_DEFINITION('design','',#6,#9);
#6 = PRODUCT_DEFINITION_FORMATION('','',#7);
#7 = PRODUCT('000-123_q234 23','000-123_q234 23','',(#8));
#8 = MECHANICAL_CONTEXT('',#2,'mechanical');
#9 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
#10 = SHAPE_REPRESENTATION('',(#11,#15,#19),#23);
#11 = AXIS2_PLACEMENT_3D('',#12,#13,#14);
#12 = CARTESIAN_POINT('',(0.,0.,0.));
#13 = DIRECTION('',(0.,0.,1.));
#14 = DIRECTION('',(1.,0.,-0.));
#15 = AXIS2_PLACEMENT_3D('',#16,#17,#18);
#16 = CARTESIAN_POINT('',(0.,0.,0.));
#17 = DIRECTION('',(0.,0.,1.));
#18 = DIRECTION('',(1.,0.,0.));
#19 = AXIS2_PLACEMENT_3D('',#20,#21,#22);
#20 = CARTESIAN_POINT('',(0.,0.,0.));
#21 = DIRECTION('',(0.,0.,1.));
#22 = DIRECTION('',(1.,0.,0.));
#23 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) 
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#27)) GLOBAL_UNIT_ASSIGNED_CONTEXT(
(#24,#25,#26)) REPRESENTATION_CONTEXT('Context #1',
  '3D Context with UNIT and UNCERTAINTY') );
#24 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
#25 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
#26 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
#27 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#24,
  'distance_accuracy_value','confusion accuracy');
#28 = PRODUCT_TYPE('part',$,(#7));
#29 = ADVANCED_BREP_SHAPE_REPRESENTATION('',(#11,#30),#128);
#30 = MANIFOLD_SOLID_BREP('',#31);
#31 = CLOSED_SHELL('',(#32,#120,#124));
#32 = ADVANCED_FACE('',(#33),#46,.T.);
#33 = FACE_BOUND('',#34,.T.);
#34 = EDGE_LOOP('',(#35,#69,#92,#119));
#35 = ORIENTED_EDGE('',*,*,#36,.F.);
#36 = EDGE_CURVE('',#37,#37,#39,.T.);
#37 = VERTEX_POINT('',#38);
#38 = CARTESIAN_POINT('',(2.,-4.898587196589E-16,10.));
#39 = SURFACE_CURVE('',#40,(#45,#57),.PCURVE_S1.);
#40 = CIRCLE('',#41,2.);
#41 = AXIS2_PLACEMENT_3D('',#42,#43,#44);
#42 = CARTESIAN_POINT('',(0.,0.,10.));
#43 = DIRECTION('',(0.,0.,1.));
#44 = DIRECTION('',(1.,0.,-0.));
#45 = PCURVE('',#46,#51);
#46 = CYLINDRICAL_SURFACE('',#47,2.);
#47 = AXIS2_PLACEMENT_3D('',#48,#49,#50);
#48 = CARTESIAN_POINT('',(0.,0.,0.));
#49 = DIRECTION('',(0.,0.,1.));
#50 = DIRECTION('',(1.,0.,-0.));
#51 = DEFINITIONAL_REPRESENTATION('',(#52),#56);
#52 = LINE('',#53,#54);
#53 = CARTESIAN_POINT('',(0.,10.));
#54 = VECTOR('',#55,1.);
#55 = DIRECTION('',(1.,0.));
#56 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#57 = PCURVE('',#58,#63);
#58 = PLANE('',#59);
#59 = AXIS2_PLACEMENT_3D('',#60,#61,#62);
#60 = CARTESIAN_POINT('',(0.,0.,10.));
#61 = DIRECTION('',(0.,0.,1.));
#62 = DIRECTION('',(1.,0.,-0.));
#63 = DEFINITIONAL_REPRESENTATION('',(#64),#68);
#64 = CIRCLE('',#65,2.);
#65 = AXIS2_PLACEMENT_2D('',#66,#67);
#66 = CARTESIAN_POINT('',(0.,0.));
#67 = DIRECTION('',(1.,0.));
#68 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#69 = ORIENTED_EDGE('',*,*,#70,.F.);
#70 = EDGE_CURVE('',#71,#37,#73,.T.);
#71 = VERTEX_POINT('',#72);
#72 = CARTESIAN_POINT('',(2.,-4.898587196589E-16,0.));
#73 = SEAM_CURVE('',#74,(#78,#85),.PCURVE_S1.);
#74 = LINE('',#75,#76);
#75 = CARTESIAN_POINT('',(2.,-4.898587196589E-16,0.));
#76 = VECTOR('',#77,1.);
#77 = DIRECTION('',(0.,0.,1.));
#78 = PCURVE('',#46,#79);
#79 = DEFINITIONAL_REPRESENTATION('',(#80),#84);
#80 = LINE('',#81,#82);
#81 = CARTESIAN_POINT('',(6.28318530718,-0.));
#82 = VECTOR('',#83,1.);
#83 = DIRECTION('',(0.,1.));
#84 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#85 = PCURVE('',#46,#86);
#86 = DEFINITIONAL_REPRESENTATION('',(#87),#91);
#87 = LINE('',#88,#89);
#88 = CARTESIAN_POINT('',(0.,-0.));
#89 = VECTOR('',#90,1.);
#90 = DIRECTION('',(0.,1.));
#91 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#92 = ORIENTED_EDGE('',*,*,#93,.T.);
#93 = EDGE_CURVE('',#71,#71,#94,.T.);
#94 = SURFACE_CURVE('',#95,(#100,#107),.PCURVE_S1.);
#95 = CIRCLE('',#96,2.);
#96 = AXIS2_PLACEMENT_3D('',#97,#98,#99);
#97 = CARTESIAN_POINT('',(0.,0.,0.));
#98 = DIRECTION('',(0.,0.,1.));
#99 = DIRECTION('',(1.,0.,-0.));
#100 = PCURVE('',#46,#101);
#101 = DEFINITIONAL_REPRESENTATION('',(#102),#106);
#102 = LINE('',#103,#104);
#103 = CARTESIAN_POINT('',(0.,0.));
#104 = VECTOR('',#105,1.);
#105 = DIRECTION('',(1.,0.));
#106 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#107 = PCURVE('',#108,#113);
#108 = PLANE('',#109);
#109 = AXIS2_PLACEMENT_3D('',#110,#111,#112);
#110 = CARTESIAN_POINT('',(0.,0.,0.));
#111 = DIRECTION('',(0.,0.,1.));
#112 = DIRECTION('',(1.,0.,-0.));
#113 = DEFINITIONAL_REPRESENTATION('',(#114),#118);
#114 = CIRCLE('',#115,2.);
#115 = AXIS2_PLACEMENT_2D('',#116,#117);
#116 = CARTESIAN_POINT('',(0.,0.));
#117 = DIRECTION('',(1.,0.));
#118 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#119 = ORIENTED_EDGE('',*,*,#70,.T.);
#120 = ADVANCED_FACE('',(#121),#58,.T.);
#121 = FACE_BOUND('',#122,.T.);
#122 = EDGE_LOOP('',(#123));
#123 = ORIENTED_EDGE('',*,*,#36,.T.);
#124 = ADVANCED_FACE('',(#125),#108,.F.);
#125 = FACE_BOUND('',#126,.T.);
#126 = EDGE_LOOP('',(#127));
#127 = ORIENTED_EDGE('',*,*,#93,.F.);
#128 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) 
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#132)) GLOBAL_UNIT_ASSIGNED_CONTEXT
((#129,#130,#131)) REPRESENTATION_CONTEXT('Context #1',
  '3D Context with UNIT and UNCERTAINTY') );
#129 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
#130 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
#131 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
#132 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#129,
  'distance_accuracy_value','confusion accuracy');
#133 = SHAPE_DEFINITION_REPRESENTATION(#134,#29);
#134 = PRODUCT_DEFINITION_SHAPE('','',#135);
#135 = PRODUCT_DEFINITION('design','',#136,#139);
#136 = PRODUCT_DEFINITION_FORMATION('','',#137);
#137 = PRODUCT('Cylinder','Cylinder','',(#138));
#138 = MECHANICAL_CONTEXT('',#2,'mechanical');
#139 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
#140 = CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#141,#143);
#141 = ( REPRESENTATION_RELATIONSHIP('','',#29,#10) 
REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#142) 
SHAPE_REPRESENTATION_RELATIONSHIP() );
#142 = ITEM_DEFINED_TRANSFORMATION('','',#11,#15);
#143 = PRODUCT_DEFINITION_SHAPE('Placement','Placement of an item',#144
  );
#144 = NEXT_ASSEMBLY_USAGE_OCCURRENCE('1','=>[0:1:1:2]','',#5,#135,$);
#145 = PRODUCT_TYPE('part',$,(#137));
#146 = ADVANCED_BREP_SHAPE_REPRESENTATION('',(#11,#147),#477);
#147 = MANIFOLD_SOLID_BREP('',#148);
#148 = CLOSED_SHELL('',(#149,#269,#369,#416,#463,#470));
#149 = ADVANCED_FACE('',(#150),#164,.F.);
#150 = FACE_BOUND('',#151,.F.);
#151 = EDGE_LOOP('',(#152,#187,#215,#243));
#152 = ORIENTED_EDGE('',*,*,#153,.F.);
#153 = EDGE_CURVE('',#154,#156,#158,.T.);
#154 = VERTEX_POINT('',#155);
#155 = CARTESIAN_POINT('',(0.,0.,0.));
#156 = VERTEX_POINT('',#157);
#157 = CARTESIAN_POINT('',(0.,0.,10.));
#158 = SURFACE_CURVE('',#159,(#163,#175),.PCURVE_S1.);
#159 = LINE('',#160,#161);
#160 = CARTESIAN_POINT('',(0.,0.,0.));
#161 = VECTOR('',#162,1.);
#162 = DIRECTION('',(0.,0.,1.));
#163 = PCURVE('',#164,#169);
#164 = PLANE('',#165);
#165 = AXIS2_PLACEMENT_3D('',#166,#167,#168);
#166 = CARTESIAN_POINT('',(0.,0.,0.));
#167 = DIRECTION('',(1.,0.,-0.));
#168 = DIRECTION('',(0.,0.,1.));
#169 = DEFINITIONAL_REPRESENTATION('',(#170),#174);
#170 = LINE('',#171,#172);
#171 = CARTESIAN_POINT('',(0.,0.));
#172 = VECTOR('',#173,1.);
#173 = DIRECTION('',(1.,0.));
#174 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#175 = PCURVE('',#176,#181);
#176 = PLANE('',#177);
#177 = AXIS2_PLACEMENT_3D('',#178,#179,#180);
#178 = CARTESIAN_POINT('',(0.,0.,0.));
#179 = DIRECTION('',(-0.,1.,0.));
#180 = DIRECTION('',(0.,0.,1.));
#181 = DEFINITIONAL_REPRESENTATION('',(#182),#186);
#182 = LINE('',#183,#184);
#183 = CARTESIAN_POINT('',(0.,0.));
#184 = VECTOR('',#185,1.);
#185 = DIRECTION('',(1.,0.));
#186 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#187 = ORIENTED_EDGE('',*,*,#188,.T.);
#188 = EDGE_CURVE('',#154,#189,#191,.T.);
#189 = VERTEX_POINT('',#190);
#190 = CARTESIAN_POINT('',(0.,10.,0.));
#191 = SURFACE_CURVE('',#192,(#196,#203),.PCURVE_S1.);
#192 = LINE('',#193,#194);
#193 = CARTESIAN_POINT('',(0.,0.,0.));
#194 = VECTOR('',#195,1.);
#195 = DIRECTION('',(-0.,1.,0.));
#196 = PCURVE('',#164,#197);
#197 = DEFINITIONAL_REPRESENTATION('',(#198),#202);
#198 = LINE('',#199,#200);
#199 = CARTESIAN_POINT('',(0.,0.));
#200 = VECTOR('',#201,1.);
#201 = DIRECTION('',(0.,-1.));
#202 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#203 = PCURVE('',#204,#209);
#204 = PLANE('',#205);
#205 = AXIS2_PLACEMENT_3D('',#206,#207,#208);
#206 = CARTESIAN_POINT('',(0.,0.,0.));
#207 = DIRECTION('',(0.,0.,1.));
#208 = DIRECTION('',(1.,0.,-0.));
#209 = DEFINITIONAL_REPRESENTATION('',(#210),#214);
#210 = LINE('',#211,#212);
#211 = CARTESIAN_POINT('',(0.,0.));
#212 = VECTOR('',#213,1.);
#213 = DIRECTION('',(0.,1.));
#214 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#215 = ORIENTED_EDGE('',*,*,#216,.T.);
#216 = EDGE_CURVE('',#189,#217,#219,.T.);
#217 = VERTEX_POINT('',#218);
#218 = CARTESIAN_POINT('',(0.,10.,10.));
#219 = SURFACE_CURVE('',#220,(#224,#231),.PCURVE_S1.);
#220 = LINE('',#221,#222);
#221 = CARTESIAN_POINT('',(0.,10.,0.));
#222 = VECTOR('',#223,1.);
#223 = DIRECTION('',(0.,0.,1.));
#224 = PCURVE('',#164,#225);
#225 = DEFINITIONAL_REPRESENTATION('',(#226),#230);
#226 = LINE('',#227,#228);
#227 = CARTESIAN_POINT('',(0.,-10.));
#228 = VECTOR('',#229,1.);
#229 = DIRECTION('',(1.,0.));
#230 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#231 = PCURVE('',#232,#237);
#232 = PLANE('',#233);
#233 = AXIS2_PLACEMENT_3D('',#234,#235,#236);
#234 = CARTESIAN_POINT('',(0.,10.,0.));
#235 = DIRECTION('',(-0.,1.,0.));
#236 = DIRECTION('',(0.,0.,1.));
#237 = DEFINITIONAL_REPRESENTATION('',(#238),#242);
#238 = LINE('',#239,#240);
#239 = CARTESIAN_POINT('',(0.,0.));
#240 = VECTOR('',#241,1.);
#241 = DIRECTION('',(1.,0.));
#242 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#243 = ORIENTED_EDGE('',*,*,#244,.F.);
#244 = EDGE_CURVE('',#156,#217,#245,.T.);
#245 = SURFACE_CURVE('',#246,(#250,#257),.PCURVE_S1.);
#246 = LINE('',#247,#248);
#247 = CARTESIAN_POINT('',(0.,0.,10.));
#248 = VECTOR('',#249,1.);
#249 = DIRECTION('',(-0.,1.,0.));
#250 = PCURVE('',#164,#251);
#251 = DEFINITIONAL_REPRESENTATION('',(#252),#256);
#252 = LINE('',#253,#254);
#253 = CARTESIAN_POINT('',(10.,0.));
#254 = VECTOR('',#255,1.);
#255 = DIRECTION('',(0.,-1.));
#256 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#257 = PCURVE('',#258,#263);
#258 = PLANE('',#259);
#259 = AXIS2_PLACEMENT_3D('',#260,#261,#262);
#260 = CARTESIAN_POINT('',(0.,0.,10.));
#261 = DIRECTION('',(0.,0.,1.));
#262 = DIRECTION('',(1.,0.,-0.));
#263 = DEFINITIONAL_REPRESENTATION('',(#264),#268);
#264 = LINE('',#265,#266);
#265 = CARTESIAN_POINT('',(0.,0.));
#266 = VECTOR('',#267,1.);
#267 = DIRECTION('',(0.,1.));
#268 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#269 = ADVANCED_FACE('',(#270),#284,.T.);
#270 = FACE_BOUND('',#271,.T.);
#271 = EDGE_LOOP('',(#272,#302,#325,#348));
#272 = ORIENTED_EDGE('',*,*,#273,.F.);
#273 = EDGE_CURVE('',#274,#276,#278,.T.);
#274 = VERTEX_POINT('',#275);
#275 = CARTESIAN_POINT('',(10.,0.,0.));
#276 = VERTEX_POINT('',#277);
#277 = CARTESIAN_POINT('',(10.,0.,10.));
#278 = SURFACE_CURVE('',#279,(#283,#295),.PCURVE_S1.);
#279 = LINE('',#280,#281);
#280 = CARTESIAN_POINT('',(10.,0.,0.));
#281 = VECTOR('',#282,1.);
#282 = DIRECTION('',(0.,0.,1.));
#283 = PCURVE('',#284,#289);
#284 = PLANE('',#285);
#285 = AXIS2_PLACEMENT_3D('',#286,#287,#288);
#286 = CARTESIAN_POINT('',(10.,0.,0.));
#287 = DIRECTION('',(1.,0.,-0.));
#288 = DIRECTION('',(0.,0.,1.));
#289 = DEFINITIONAL_REPRESENTATION('',(#290),#294);
#290 = LINE('',#291,#292);
#291 = CARTESIAN_POINT('',(0.,0.));
#292 = VECTOR('',#293,1.);
#293 = DIRECTION('',(1.,0.));
#294 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#295 = PCURVE('',#176,#296);
#296 = DEFINITIONAL_REPRESENTATION('',(#297),#301);
#297 = LINE('',#298,#299);
#298 = CARTESIAN_POINT('',(0.,10.));
#299 = VECTOR('',#300,1.);
#300 = DIRECTION('',(1.,0.));
#301 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#302 = ORIENTED_EDGE('',*,*,#303,.T.);
#303 = EDGE_CURVE('',#274,#304,#306,.T.);
#304 = VERTEX_POINT('',#305);
#305 = CARTESIAN_POINT('',(10.,10.,0.));
#306 = SURFACE_CURVE('',#307,(#311,#318),.PCURVE_S1.);
#307 = LINE('',#308,#309);
#308 = CARTESIAN_POINT('',(10.,0.,0.));
#309 = VECTOR('',#310,1.);
#310 = DIRECTION('',(-0.,1.,0.));
#311 = PCURVE('',#284,#312);
#312 = DEFINITIONAL_REPRESENTATION('',(#313),#317);
#313 = LINE('',#314,#315);
#314 = CARTESIAN_POINT('',(0.,0.));
#315 = VECTOR('',#316,1.);
#316 = DIRECTION('',(0.,-1.));
#317 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#318 = PCURVE('',#204,#319);
#319 = DEFINITIONAL_REPRESENTATION('',(#320),#324);
#320 = LINE('',#321,#322);
#321 = CARTESIAN_POINT('',(10.,0.));
#322 = VECTOR('',#323,1.);
#323 = DIRECTION('',(0.,1.));
#324 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#325 = ORIENTED_EDGE('',*,*,#326,.T.);
#326 = EDGE_CURVE('',#304,#327,#329,.T.);
#327 = VERTEX_POINT('',#328);
#328 = CARTESIAN_POINT('',(10.,10.,10.));
#329 = SURFACE_CURVE('',#330,(#334,#341),.PCURVE_S1.);
#330 = LINE('',#331,#332);
#331 = CARTESIAN_POINT('',(10.,10.,0.));
#332 = VECTOR('',#333,1.);
#333 = DIRECTION('',(0.,0.,1.));
#334 = PCURVE('',#284,#335);
#335 = DEFINITIONAL_REPRESENTATION('',(#336),#340);
#336 = LINE('',#337,#338);
#337 = CARTESIAN_POINT('',(0.,-10.));
#338 = VECTOR('',#339,1.);
#339 = DIRECTION('',(1.,0.));
#340 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#341 = PCURVE('',#232,#342);
#342 = DEFINITIONAL_REPRESENTATION('',(#343),#347);
#343 = LINE('',#344,#345);
#344 = CARTESIAN_POINT('',(0.,10.));
#345 = VECTOR('',#346,1.);
#346 = DIRECTION('',(1.,0.));
#347 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#348 = ORIENTED_EDGE('',*,*,#349,.F.);
#349 = EDGE_CURVE('',#276,#327,#350,.T.);
#350 = SURFACE_CURVE('',#351,(#355,#362),.PCURVE_S1.);
#351 = LINE('',#352,#353);
#352 = CARTESIAN_POINT('',(10.,0.,10.));
#353 = VECTOR('',#354,1.);
#354 = DIRECTION('',(0.,1.,0.));
#355 = PCURVE('',#284,#356);
#356 = DEFINITIONAL_REPRESENTATION('',(#357),#361);
#357 = LINE('',#358,#359);
#358 = CARTESIAN_POINT('',(10.,0.));
#359 = VECTOR('',#360,1.);
#360 = DIRECTION('',(0.,-1.));
#361 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#362 = PCURVE('',#258,#363);
#363 = DEFINITIONAL_REPRESENTATION('',(#364),#368);
#364 = LINE('',#365,#366);
#365 = CARTESIAN_POINT('',(10.,0.));
#366 = VECTOR('',#367,1.);
#367 = DIRECTION('',(0.,1.));
#368 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#369 = ADVANCED_FACE('',(#370),#176,.F.);
#370 = FACE_BOUND('',#371,.F.);
#371 = EDGE_LOOP('',(#372,#393,#394,#415));
#372 = ORIENTED_EDGE('',*,*,#373,.F.);
#373 = EDGE_CURVE('',#154,#274,#374,.T.);
#374 = SURFACE_CURVE('',#375,(#379,#386),.PCURVE_S1.);
#375 = LINE('',#376,#377);
#376 = CARTESIAN_POINT('',(0.,0.,0.));
#377 = VECTOR('',#378,1.);
#378 = DIRECTION('',(1.,0.,-0.));
#379 = PCURVE('',#176,#380);
#380 = DEFINITIONAL_REPRESENTATION('',(#381),#385);
#381 = LINE('',#382,#383);
#382 = CARTESIAN_POINT('',(0.,0.));
#383 = VECTOR('',#384,1.);
#384 = DIRECTION('',(0.,1.));
#385 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#386 = PCURVE('',#204,#387);
#387 = DEFINITIONAL_REPRESENTATION('',(#388),#392);
#388 = LINE('',#389,#390);
#389 = CARTESIAN_POINT('',(0.,0.));
#390 = VECTOR('',#391,1.);
#391 = DIRECTION('',(1.,0.));
#392 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#393 = ORIENTED_EDGE('',*,*,#153,.T.);
#394 = ORIENTED_EDGE('',*,*,#395,.T.);
#395 = EDGE_CURVE('',#156,#276,#396,.T.);
#396 = SURFACE_CURVE('',#397,(#401,#408),.PCURVE_S1.);
#397 = LINE('',#398,#399);
#398 = CARTESIAN_POINT('',(0.,0.,10.));
#399 = VECTOR('',#400,1.);
#400 = DIRECTION('',(1.,0.,-0.));
#401 = PCURVE('',#176,#402);
#402 = DEFINITIONAL_REPRESENTATION('',(#403),#407);
#403 = LINE('',#404,#405);
#404 = CARTESIAN_POINT('',(10.,0.));
#405 = VECTOR('',#406,1.);
#406 = DIRECTION('',(0.,1.));
#407 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#408 = PCURVE('',#258,#409);
#409 = DEFINITIONAL_REPRESENTATION('',(#410),#414);
#410 = LINE('',#411,#412);
#411 = CARTESIAN_POINT('',(0.,0.));
#412 = VECTOR('',#413,1.);
#413 = DIRECTION('',(1.,0.));
#414 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#415 = ORIENTED_EDGE('',*,*,#273,.F.);
#416 = ADVANCED_FACE('',(#417),#232,.T.);
#417 = FACE_BOUND('',#418,.T.);
#418 = EDGE_LOOP('',(#419,#440,#441,#462));
#419 = ORIENTED_EDGE('',*,*,#420,.F.);
#420 = EDGE_CURVE('',#189,#304,#421,.T.);
#421 = SURFACE_CURVE('',#422,(#426,#433),.PCURVE_S1.);
#422 = LINE('',#423,#424);
#423 = CARTESIAN_POINT('',(0.,10.,0.));
#424 = VECTOR('',#425,1.);
#425 = DIRECTION('',(1.,0.,-0.));
#426 = PCURVE('',#232,#427);
#427 = DEFINITIONAL_REPRESENTATION('',(#428),#432);
#428 = LINE('',#429,#430);
#429 = CARTESIAN_POINT('',(0.,0.));
#430 = VECTOR('',#431,1.);
#431 = DIRECTION('',(0.,1.));
#432 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#433 = PCURVE('',#204,#434);
#434 = DEFINITIONAL_REPRESENTATION('',(#435),#439);
#435 = LINE('',#436,#437);
#436 = CARTESIAN_POINT('',(0.,10.));
#437 = VECTOR('',#438,1.);
#438 = DIRECTION('',(1.,0.));
#439 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#440 = ORIENTED_EDGE('',*,*,#216,.T.);
#441 = ORIENTED_EDGE('',*,*,#442,.T.);
#442 = EDGE_CURVE('',#217,#327,#443,.T.);
#443 = SURFACE_CURVE('',#444,(#448,#455),.PCURVE_S1.);
#444 = LINE('',#445,#446);
#445 = CARTESIAN_POINT('',(0.,10.,10.));
#446 = VECTOR('',#447,1.);
#447 = DIRECTION('',(1.,0.,-0.));
#448 = PCURVE('',#232,#449);
#449 = DEFINITIONAL_REPRESENTATION('',(#450),#454);
#450 = LINE('',#451,#452);
#451 = CARTESIAN_POINT('',(10.,0.));
#452 = VECTOR('',#453,1.);
#453 = DIRECTION('',(0.,1.));
#454 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#455 = PCURVE('',#258,#456);
#456 = DEFINITIONAL_REPRESENTATION('',(#457),#461);
#457 = LINE('',#458,#459);
#458 = CARTESIAN_POINT('',(0.,10.));
#459 = VECTOR('',#460,1.);
#460 = DIRECTION('',(1.,0.));
#461 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
  ) );
#462 = ORIENTED_EDGE('',*,*,#326,.F.);
#463 = ADVANCED_FACE('',(#464),#204,.F.);
#464 = FACE_BOUND('',#465,.F.);
#465 = EDGE_LOOP('',(#466,#467,#468,#469));
#466 = ORIENTED_EDGE('',*,*,#188,.F.);
#467 = ORIENTED_EDGE('',*,*,#373,.T.);
#468 = ORIENTED_EDGE('',*,*,#303,.T.);
#469 = ORIENTED_EDGE('',*,*,#420,.F.);
#470 = ADVANCED_FACE('',(#471),#258,.T.);
#471 = FACE_BOUND('',#472,.T.);
#472 = EDGE_LOOP('',(#473,#474,#475,#476));
#473 = ORIENTED_EDGE('',*,*,#244,.F.);
#474 = ORIENTED_EDGE('',*,*,#395,.T.);
#475 = ORIENTED_EDGE('',*,*,#349,.T.);
#476 = ORIENTED_EDGE('',*,*,#442,.F.);
#477 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) 
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#481)) GLOBAL_UNIT_ASSIGNED_CONTEXT
((#478,#479,#480)) REPRESENTATION_CONTEXT('Context #1',
  '3D Context with UNIT and UNCERTAINTY') );
#478 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
#479 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
#480 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
#481 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#478,
  'distance_accuracy_value','confusion accuracy');
#482 = SHAPE_DEFINITION_REPRESENTATION(#483,#146);
#483 = PRODUCT_DEFINITION_SHAPE('','',#484);
#484 = PRODUCT_DEFINITION('design','',#485,#488);
#485 = PRODUCT_DEFINITION_FORMATION('','',#486);
#486 = PRODUCT('00-123_q234 23','00-123_q234 23','',(#487));
#487 = MECHANICAL_CONTEXT('',#2,'mechanical');
#488 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
#489 = CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#490,#492);
#490 = ( REPRESENTATION_RELATIONSHIP('','',#146,#10) 
REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#491) 
SHAPE_REPRESENTATION_RELATIONSHIP() );
#491 = ITEM_DEFINED_TRANSFORMATION('','',#11,#19);
#492 = PRODUCT_DEFINITION_SHAPE('Placement','Placement of an item',#493
  );
#493 = NEXT_ASSEMBLY_USAGE_OCCURRENCE('2','=>[0:1:1:3]','',#5,#484,$);
#494 = PRODUCT_TYPE('part',$,(#486));
#495 = MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION('',(#496)
  ,#477);
#496 = STYLED_ITEM('color',(#497),#147);
#497 = PRESENTATION_STYLE_ASSIGNMENT((#498,#504));
#498 = SURFACE_STYLE_USAGE(.BOTH.,#499);
#499 = SURFACE_SIDE_STYLE('',(#500));
#500 = SURFACE_STYLE_FILL_AREA(#501);
#501 = FILL_AREA_STYLE('',(#502));
#502 = FILL_AREA_STYLE_COLOUR('',#503);
#503 = COLOUR_RGB('',0.800000011921,0.800000011921,0.800000011921);
#504 = CURVE_STYLE('',#505,POSITIVE_LENGTH_MEASURE(0.1),#503);
#505 = DRAUGHTING_PRE_DEFINED_CURVE_FONT('continuous');
#506 = MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION('',(#507)
  ,#128);
#507 = STYLED_ITEM('color',(#508),#30);
#508 = PRESENTATION_STYLE_ASSIGNMENT((#509,#514));
#509 = SURFACE_STYLE_USAGE(.BOTH.,#510);
#510 = SURFACE_SIDE_STYLE('',(#511));
#511 = SURFACE_STYLE_FILL_AREA(#512);
#512 = FILL_AREA_STYLE('',(#513));
#513 = FILL_AREA_STYLE_COLOUR('',#503);
#514 = CURVE_STYLE('',#515,POSITIVE_LENGTH_MEASURE(0.1),#503);
#515 = DRAUGHTING_PRE_DEFINED_CURVE_FONT('continuous');
ENDSEC;
END-ISO-10303-21;
error.stp (23,631 bytes)   

Kunda1

2018-07-05 00:24

administrator   ~0011492

@sherif thank you for re-posting the example file.

Another bug / issue /general problem I have faced in the last month is that freecad does not allow to have same part numbers for several parts which can happen and happens often in content of stp files. Its impossible to script a conversion program based on product name as the suffix (00n) is not safely predictable. Im not opening an issue for this as I dont think that a change in label as id principle would be implemented.

sherif
Please open a forum thread to discuss this. It may inspire a dev to implement, you never know.

wmayer

2018-09-14 16:18

administrator   ~0011741

https://github.com/FreeCAD/FreeCAD/commit/dce4086d64e1680aafe421987e7a973b5957b097

Issue History

Date Modified Username Field Change
2017-02-20 12:16 sherif New Issue
2017-02-20 12:16 sherif File Added: bugreport.stp
2017-02-20 12:16 sherif Tag Attached: STEP
2017-02-20 22:18 Kunda1 Description Updated
2017-02-20 22:19 Kunda1 Note Added: 0008390
2017-02-20 22:20 Kunda1 Status new => feedback
2017-02-21 08:34 sherif Note Added: 0008396
2017-02-21 08:34 sherif Status feedback => new
2017-03-10 02:13 Kunda1 Tag Attached: #lowhangingfruit
2017-03-10 02:14 Kunda1 Target Version => 0.17
2017-05-31 00:44 Kunda1 Description Updated
2017-05-31 00:47 Kunda1 Description Updated
2017-05-31 00:48 Kunda1 Note Added: 0009208
2017-05-31 00:48 Kunda1 Status new => feedback
2017-07-03 12:18 Kunda1 Note Added: 0009654
2017-07-03 17:36 Kunda1 Note Added: 0009656
2017-07-03 17:36 Kunda1 Status feedback => confirmed
2017-07-03 17:38 Kunda1 Summary stp file import name mismatch => stp file import name mismatch (due to some limitation into UTF-8 support & naming convention)
2017-09-27 15:32 sherif Note Added: 0010201
2017-09-27 17:05 Kunda1 Note Added: 0010203
2017-11-24 11:30 Kunda1 Note Added: 0010461
2017-11-24 11:31 Kunda1 Relationship added related to 0002973
2017-11-26 15:06 wmayer Target Version 0.17 => 0.18
2017-12-02 17:11 wmayer Relationship deleted related to 0002973
2017-12-12 17:42 Kunda1 Tag Attached: unicode
2018-07-03 02:26 Kunda1 Description Updated
2018-07-03 02:26 Kunda1 Note Added: 0011483
2018-07-03 02:27 Kunda1 Note Added: 0011484
2018-07-03 02:28 Kunda1 Relationship added related to 0001672
2018-07-03 15:34 sherif File Added: error.stp
2018-07-03 15:34 sherif Note Added: 0011488
2018-07-05 00:24 Kunda1 Note Added: 0011492
2018-09-14 12:56 Kunda1 Relationship added related to 0002973
2018-09-14 16:04 wmayer Relationship deleted related to 0002973
2018-09-14 16:18 wmayer Assigned To => wmayer
2018-09-14 16:18 wmayer Status confirmed => closed
2018-09-14 16:18 wmayer Resolution open => fixed
2018-09-14 16:18 wmayer Fixed in Version => 0.18
2018-09-14 16:18 wmayer Note Added: 0011741