Opened 9 years ago

Last modified 8 years ago

#5705 closed defect

[AutoCAD DXF] Incorrect processing of Ellipses with negative extrusion — at Version 2

Reported by: ju420xt5z Owned by: warmerdam
Priority: normal Milestone: 2.1.0
Component: OGR_SF Version: 1.11.0
Severity: normal Keywords: dxf
Cc:

Description (last modified by ju420xt5z)

I 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.

I am running the following command: ogr2ogr -f "DXF" sampleb_output.dxf sampleb_input.dxf

The 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).

Doing 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.

So 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 :

Direction of new X axis = endpoint of major axis Direction of new Z axis = extrusion direction Direction of new Y axis = [new Z axis] cross product [new X axis]

(if Z is 1, then no reversion of the Y axis)

And there seems to be no OCS transformation to apply (the default 0,0,1 extrusion axis results in the identity OCS transformation).

Change History (6)

by ju420xt5z, 9 years ago

Attachment: sampleb_input.dxf added

sampleb_input

by ju420xt5z, 9 years ago

Attachment: sampleb_output.dxf added

sampleb_output

by ju420xt5z, 9 years ago

Attachment: sampleb_input-mod.dxf added

sampleb_input-mod

by ju420xt5z, 9 years ago

Attachment: sampleb_output-mod.dxf added

sampleb_output-mod

comment:1 by ju420xt5z, 9 years ago

Description: modified (diff)

comment:2 by ju420xt5z, 9 years ago

Description: modified (diff)
Summary: [AutoCAD DXF] Processing of Ellipses with negative extrusion[AutoCAD DXF] Incorrect processing of Ellipses with negative extrusion
Note: See TracTickets for help on using tickets.