Changes between Version 1 and Version 2 of Ticket #5705


Ignore:
Timestamp:
Oct 22, 2014, 3:14:25 AM (7 years ago)
Author:
ju420xt5z
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #5705

    • Property Summary changed from [AutoCAD DXF] Processing of Ellipses with negative extrusion to [AutoCAD DXF] Incorrect processing of Ellipses with negative extrusion
  • Ticket #5705 – Description

    v1 v2  
    1 I have a file with 2 partial ellipses inside a DXF (attached file "sampleb_input.dxf"). The ellipses come from a much bigger DXF but the issue can be seen from just this sample.
     1I have 2 partial ellipses (i.e. ellipses with start and end angles) inside a DXF (attached file "sampleb_input.dxf"). The ellipses come from a much bigger DXF but the issue can be seen from just this sample. The ellipses are at the correct position when looked at with AutoCAD.
    22
    33I am running the following command:
    44ogr2ogr -f "DXF" sampleb_output.dxf sampleb_input.dxf
    55
    6 The result I obtain is wrong (attached file "sampleb_output.dxf"). Basically, one of the ellipses in the output has a wrong angle and its X coordinates are wrong.
     6The result I obtain is wrong (attached file "sampleb_output.dxf"), as can be verified in AutoCAD. Basically, one of the ellipses in the output has a wrong angle and its X coordinates are wrong. I would expect the same visual result as the input. The issue can also be seen when converting to a format other than DXF (for example SHP).
    77
    8 Doing some investigation inside the input DXF, I saw that the ellipse that converts correctly has a Z extrusion axis value (group code 230) of 1.0, whereas the ellipse that was not converted correctly has a Z extrusion axis value of -1.0. I have done a test when I reversed its Z extrusion axis (from -1.0 to 1.0) and switched+reversed the start and end angles (group codes 41 and 42) in attached file "sampleb_input-mod.dxf". Then the conversion of the previously incorrect ellipse is done correctly (attached file "sampleb_output-mod.dxf").
     8Doing some investigation inside the input DXF using a text editor, I saw that the ellipse that converts correctly has a Z extrusion axis value (group code 230) of 1.0, whereas the ellipse that was not converted correctly has a Z extrusion axis value of -1.0. I have then done a test when I reversed its Z extrusion axis (from -1.0 to 1.0) and switched+reversed the start and end angles (group codes 41 and 42) in attached file "sampleb_input-mod.dxf". Then the conversion of the previously incorrect ellipse is done correctly (attached file "sampleb_output-mod.dxf"). Visually, the input and ouput are the same.
     9
     10So it seems that, when the Z direction is -1, on top of having to rotate the points of the ellipse to align with the direction of major axis, the Y axis is also reversed. Maybe a transformation to the new coordinate system :
     11
     12Direction of new X axis = endpoint of major axis
     13Direction of new Z axis = extrusion direction
     14Direction of new Y axis = [new Z axis] cross product [new X axis]
     15
     16(if Z is 1, then no reversion of the Y axis)
     17
     18And there seems to be no OCS transformation to apply (the default 0,0,1 extrusion axis results in the identity OCS transformation).