DXF: Difference between revisions

From FreeCAD Documentation
m (<translate>)
No edit summary
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
<translate>
<translate>
== Background history ==
== Background history == <!--T:1-->


<!--T:2-->
DXF is a proprietary CAD data format for 2D drawings that originated with AutoCAD, but which is understood by most drawing and plotting packages, because there was no alternative open standard available during the years when AutoCAD was dominant.
DXF is a proprietary CAD data format for 2D drawings that originated with AutoCAD, but which is understood by most drawing and plotting packages, because there was no alternative open standard available during the years when AutoCAD was dominant.


<!--T:3-->
The story of DXF is almost exactly the same as the DOC file format from Microsoft Word: there were many incompatible versions produced during the evolution of the product, and all other word processing programs had to read and write these files to some extent to survive. Often these implementations are incomplete, out of date and buggy.
The story of DXF is almost exactly the same as the DOC file format from Microsoft Word: there were many incompatible versions produced during the evolution of the product, and all other word processing programs had to read and write these files to some extent to survive. Often these implementations are incomplete, out of date and buggy.


<!--T:4-->
The same is true for DXF. You will hear of certain key versions of DXF, such as R12 (from 1992) or R14 (from 1997 which had splines). Later versions of DXF had 3D elements, but these are rarely used or implemented. How you use DXF to share CAD data between two programs depends mainly on the limitations and bugs in the corresponding readers/importers and writers/exporters. Not surprisingly, there is rarely complete documentation of program limitations and bugs, which is a great source of frustration.
The same is true for DXF. You will hear of certain key versions of DXF, such as R12 (from 1992) or R14 (from 1997 which had splines). Later versions of DXF had 3D elements, but these are rarely used or implemented. How you use DXF to share CAD data between two programs depends mainly on the limitations and bugs in the corresponding readers/importers and writers/exporters. Not surprisingly, there is rarely complete documentation of program limitations and bugs, which is a great source of frustration.


<!--T:5-->
If you are editing DXF files and expecting them to remain almost the same when you save them, we recommend you use
If you are editing DXF files and expecting them to remain almost the same when you save them, we recommend you use
[https://en.wikipedia.org/wiki/LibreCAD LibreCAD] or [https://en.wikipedia.org/wiki/QCad QCad] because these programs' internal data structures are compatible with the objects in the DXF file.
[https://en.wikipedia.org/wiki/LibreCAD LibreCAD] or [https://en.wikipedia.org/wiki/QCad QCad] because these programs' internal data structures are compatible with the objects in the DXF file.


<!--T:6-->
In FreeCAD the DXF readers must interpret the geometry (eg a spline shapes) from the DXF file into the specific internal forms of the Workbench.
In FreeCAD the DXF readers must interpret the geometry (eg a spline shapes) from the DXF file into the specific internal forms of the Workbench.


== Methods for importing DXF to FreeCAD ==
== Methods for importing DXF to FreeCAD == <!--T:7-->


<!--T:8-->
If you intend to review the settings frequently, we recommend you go to Edit -> Preferences -> Import-Export -> DXF and tick the box "[ ] Show this dialog when importing and exporting".
If you intend to review the settings frequently, we recommend you go to Edit Preferences Import-Export DXF and tick the box "[ ] Show this dialog when importing and exporting".


<!--T:9-->
More information is on the pages [[Draft DXF]] and [[FreeCAD and DXF Import]].
More information is on the pages [[Draft DXF]] and [[FreeCAD and DXF Import]].


<!--T:10-->
If you are using the imported geometry to build 3D shapes in the Part Design Workbench, try the [[Sketcher Validate]] after you have imported the DXF into a sketch.
If you are using the imported geometry to build 3D shapes in the Part Design Workbench, try the [[Sketcher_ValidateSketch|Sketcher Validate]] after you have imported the DXF into a sketch.


=== C++ DXF importer ===
=== C++ DXF importer === <!--T:11-->


<!--T:12-->
This implementation of fast, but skips features it doesn't recognize, such as DXF splines. It also can only import geometry into the Draft Workbench as individual entries in the Model tree. These can have the colors read from the file if you tick to enable this option. For further information, see [https://forum.freecadweb.org/viewtopic.php?f=3&t=32493 this forum post].
This implementation of fast, but skips features it doesn't recognize, such as DXF splines. It also can only import geometry into the Draft Workbench as individual entries in the Model tree. These can have the colors read from the file if you tick to enable this option. For further information, see [https://forum.freecadweb.org/viewtopic.php?f=3&t=32493 this forum post].


=== Python DXF importer ===
=== Python DXF importer === <!--T:13-->


<!--T:14-->
This importer has to be downloaded and installed before it can be used. See [[Dxf Importer Install]], or use the "[ ] Allow FreeCAD to automatically download and update the DXF libraries" option.
This importer has to be downloaded and installed before it can be used. See [[Dxf Importer Install]], or use the "[ ] Allow FreeCAD to automatically download and update the DXF libraries" option.


<!--T:15-->
This importer has more features (such as implementing splines), and has the option of loading the DXF shapes into the Sketcher. However, be warned that all the elements of the sketch will appear individually a second time in the model tree, which can be confusing. You can delete all these individual objects and retain the single sketch (which appears as the second entry in the list of new elements).
This importer has more features (such as implementing splines), and has the option of loading the DXF shapes into the Sketcher. However, be warned that all the elements of the sketch will appear individually a second time in the model tree, which can be confusing. You can delete all these individual objects and retain the single sketch (which appears as the second entry in the list of new elements).


<!--T:16-->
Unfortunately, the Sketch Workbench does not implement colors, so all the geometry will appear on the same level, which is a problem if the file contains many construction lines. One work-around is to open your drawing in LibreCAD, and delete all the geometry you don't want to appear before saving a file that contains exactly the geometry that you want to load.
Unfortunately, the Sketch Workbench does not implement colors, so all the geometry will appear on the same level, which is a problem if the file contains many construction lines. One work-around is to open your drawing in LibreCAD, and delete all the geometry you don't want to appear before saving a file that contains exactly the geometry that you want to load.


=== Macros ===
=== Macros === <!--T:17-->


<!--T:18-->
Keep an eye out on the FreeCAD forum or in the [[Macros_recipes]] for alternative implementations of DXF importing and cleaning up as they develop.
Keep an eye out on the FreeCAD forum or in the [[Macros_recipes]] for alternative implementations of DXF importing and cleaning up as they develop.




== Saving DXF ==
== Saving DXF == <!--T:19-->


<!--T:20-->
In addition to the options under the Edit -> Preferences, the [[TechDraw Workbench]] can also export drawing pages to DXF using the [[TechDraw SaveDXF]] function.
In addition to the options under the Edit Preferences, the [[TechDraw Workbench]] can also export drawing pages to DXF using the [[TechDraw SaveDXF]] function.


{{Userdocnavi}}
[[Category:User Documentation]]
[[Category:Draft]]
[[Category:TechDraw]]
</translate>
</translate>
{{Userdocnavi{{#translation:}}}}
[[Category:User Documentation{{#translation:}}]]
[[Category:Draft{{#translation:}}]]
[[Category:TechDraw{{#translation:}}]]

Revision as of 22:03, 20 February 2020

Background history

DXF is a proprietary CAD data format for 2D drawings that originated with AutoCAD, but which is understood by most drawing and plotting packages, because there was no alternative open standard available during the years when AutoCAD was dominant.

The story of DXF is almost exactly the same as the DOC file format from Microsoft Word: there were many incompatible versions produced during the evolution of the product, and all other word processing programs had to read and write these files to some extent to survive. Often these implementations are incomplete, out of date and buggy.

The same is true for DXF. You will hear of certain key versions of DXF, such as R12 (from 1992) or R14 (from 1997 which had splines). Later versions of DXF had 3D elements, but these are rarely used or implemented. How you use DXF to share CAD data between two programs depends mainly on the limitations and bugs in the corresponding readers/importers and writers/exporters. Not surprisingly, there is rarely complete documentation of program limitations and bugs, which is a great source of frustration.

If you are editing DXF files and expecting them to remain almost the same when you save them, we recommend you use LibreCAD or QCad because these programs' internal data structures are compatible with the objects in the DXF file.

In FreeCAD the DXF readers must interpret the geometry (eg a spline shapes) from the DXF file into the specific internal forms of the Workbench.

Methods for importing DXF to FreeCAD

If you intend to review the settings frequently, we recommend you go to Edit → Preferences → Import-Export → DXF and tick the box "[ ] Show this dialog when importing and exporting".

More information is on the pages Draft DXF and FreeCAD and DXF Import.

If you are using the imported geometry to build 3D shapes in the Part Design Workbench, try the Sketcher Validate after you have imported the DXF into a sketch.

C++ DXF importer

This implementation of fast, but skips features it doesn't recognize, such as DXF splines. It also can only import geometry into the Draft Workbench as individual entries in the Model tree. These can have the colors read from the file if you tick to enable this option. For further information, see this forum post.

Python DXF importer

This importer has to be downloaded and installed before it can be used. See Dxf Importer Install, or use the "[ ] Allow FreeCAD to automatically download and update the DXF libraries" option.

This importer has more features (such as implementing splines), and has the option of loading the DXF shapes into the Sketcher. However, be warned that all the elements of the sketch will appear individually a second time in the model tree, which can be confusing. You can delete all these individual objects and retain the single sketch (which appears as the second entry in the list of new elements).

Unfortunately, the Sketch Workbench does not implement colors, so all the geometry will appear on the same level, which is a problem if the file contains many construction lines. One work-around is to open your drawing in LibreCAD, and delete all the geometry you don't want to appear before saving a file that contains exactly the geometry that you want to load.

Macros

Keep an eye out on the FreeCAD forum or in the Macros_recipes for alternative implementations of DXF importing and cleaning up as they develop.


Saving DXF

In addition to the options under the Edit → Preferences, the TechDraw Workbench can also export drawing pages to DXF using the TechDraw SaveDXF function.