Opened 9 years ago
Closed 8 years ago
#5705 closed defect (fixed)
[AutoCAD DXF] Incorrect processing of Ellipses with negative extrusion
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 )
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, as well as identical to the original input DXF file.
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 must also be 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).
Attachments (4)
Change History (8)
by , 9 years ago
Attachment: | sampleb_input.dxf added |
---|
comment:1 by , 9 years ago
Description: | modified (diff) |
---|
comment:2 by , 9 years ago
Description: | modified (diff) |
---|---|
Summary: | [AutoCAD DXF] Processing of Ellipses with negative extrusion → [AutoCAD DXF] Incorrect processing of Ellipses with negative extrusion |
comment:3 by , 9 years ago
Description: | modified (diff) |
---|
comment:4 by , 8 years ago
Component: | default → OGR_SF |
---|---|
Keywords: | dxf added |
Milestone: | → 2.1.0 |
Resolution: | → fixed |
Status: | new → closed |
sampleb_input