Archived issue #0023018
Open CASCADE incorrectly writes/reads IGES Tabulated Cylinders (Type 122)
Description
Per the IGES specification 5.3, Tabulated Cylinder has u,v range [0,1]x[0,1].
OCC only transforms V-direction when writing and reading, while leaving U unchanged taking OCC basis curve definition when writing or IGES diretrix when reading.
With this bug, OCC is able to read its own written IGES files but produces wrong files which other systems may not read or may read correct IGES files with mistakes
(e.g. if using 2D curve representation is enforced via Interface_Static parameter read.surfacecurve.mode set to -2).
Root-cause analysis:
p-curves are not scaled in U-directions when reading or writing.
Currently infrastructure only assumes scaling in one direction (e.g. IGESToBRep_TopoSurface::myULength, IGESToBRep_TopoCurve::TransferCurveOnFace(), BRepToIGES_BRWire).
So the fix would employ redesign of that architecture to assume 2 direction scaling.
Reproducer:
- restore Attachment 1 (BREP) f
- brepiges f f-ext.igs
- entity 6 #which is a line in 2D space - end points (1.57,1,0) (1.57,1,0) - beyond [0,1]x[0,1] range
OCC only transforms V-direction when writing and reading, while leaving U unchanged taking OCC basis curve definition when writing or IGES diretrix when reading.
With this bug, OCC is able to read its own written IGES files but produces wrong files which other systems may not read or may read correct IGES files with mistakes
(e.g. if using 2D curve representation is enforced via Interface_Static parameter read.surfacecurve.mode set to -2).
Root-cause analysis:
p-curves are not scaled in U-directions when reading or writing.
Currently infrastructure only assumes scaling in one direction (e.g. IGESToBRep_TopoSurface::myULength, IGESToBRep_TopoCurve::TransferCurveOnFace(), BRepToIGES_BRWire).
So the fix would employ redesign of that architecture to assume 2 direction scaling.
Reproducer:
- restore Attachment 1 (BREP) f
- brepiges f f-ext.igs
- entity 6 #which is a line in 2D space - end points (1.57,1,0) (1.57,1,0) - beyond [0,1]x[0,1] range
Steps to reproduce
See description
Public activity
4 archived notes
Participants are labeled by their role within this record.
This issue likely has common reason with #0022715
Dear MKV,
this problem was fixed with issue #0022715, which testing was OK.
Please test case from this issue in branch CR22715.
this problem was fixed with issue #0022715, which testing was OK.
Please test case from this issue in branch CR22715.
Dear Commenter 2,
this problem was fixed.
Testing cases:
bugs iges(003) bug23018 - OK
this problem was fixed.
Testing cases:
bugs iges(003) bug23018 - OK
Problem was fixed with issue 0022715
Related records