Hmm, seems odd. Here is what is written in the .DXF for the circles. The highlighted numbers are the X and Y coordinates of the circle centers.
Why the last one gets a negative X coordinate I have no idea. Its direction is flipped relative to the others maybe thatâs a problem for DXF R12 - which is a really old, primitive DXF version? But thatâs why it moves to the left I think. I guess Rhino has a way of interpreting the other data that allows it to import correctly, but the others donât.
Solutions - flip the last circle? Use a different DXF scheme for export?
Here is an R12 DXF export with the last circle flipped:
Edit: I did notice that your circles in draft.3dm are âNURBS circlesâ (old Rhino V2 style circles) and not pure circle entities. How did you make those? But that does not seem to be part of the flip problem.
2007 Natural has the same issue. 2007 Polylines works.
When I redraw the NURBS circles with _Circle, then even R12 Lines & Arcs works. Alternatively, and more conveniently, I found I can use _Convert with Output=Arcs and SimplifyInput=Yes.
Yes, that flips the direction of a curve or surface. However, it seems like that shouldnât matter - it obviously doesnât to Rhino, but other programs may not be so reasonable. Maybe the Rhino exporter needs to be looked at though.
Some are defined relative to a plane. Circles, arcs, some kinds of plines, annotations etc. Itâs roughly the same in Rhino and Acad as far as that goes, and the plane has an up and down.
If you mirror arcs, then the curve direction gets reversed. As far as I know, the âplaneâ is determined by the direction of the arc (counterclockwise is âupâ), so mirrored ccw arcs/circles end up as clockwise and thus end up with a âdownâ facing plane (correct me if Iâm wrong).
Thatâs the subjective effect, but itâs driven by the plane definition changing, not the arc definition changing.
Maybe think of it as drawing an arc on some clear film and flipping the film over.
The drawing doesnât change but the image goes in the other direction with respect to the table.
Thanks for the explanation. If not too much effort, can you give a code example, showing how the direction is encoded in the DXF?
As far as I understand it now, this is a bug in FreeCAD and KiCad, and I want to report it. It may be possible that they use the same DXF import library.
When you mirror something the axis perpendicular to the mirror plane is inverted (i.e. if the mirror plane is the world YZ plane, the X axis is inverted, +x becomes -x). Because a right handed coordinate system is enforced, this 'flips" the planeâs Z axis to the other side, which indeed results in the arc direction (start>end) being reversed from that of the original object when viewed from the same direction.
Which is totally correct, but I have a feeling some 2D CAD programs do not have any concept of 3D and thus the âbackwardsâ facing Z axis is not taken into account, only the arc direction viewed from +Z.
Iâm assuming that the âFlip arc normals to +Zâ setting was designed for exactly this situation - I just never really looked at it that closely, having never used a program that had a need for it.
@feklee I would just copy the DXF R12 export scheme and change the arc setting to âflipâ as above, then name the copy of the export scheme something like âFreecadâ. Since there are so many programs out there that take .dxf files and each one has different requirements/quirks, you may find yourself using a number of different export schemes. Whatâs cool about Rhino is that you can configure the exports to do just about anything other programs need.
As itâs possible to make Rhino export in a DXF format that KiCad can read, I didnât bother to report the issue. See earlier conversations in this thread.