FreeCAD Logo FreeCAD 1.0
  • Angličtina Afrikánština Arabština Běloruština Katalánština Čeština Němčina Řečtina Španělština Španělština Baskičtina Finština Filipínština Francouzština Galicijština Chorvatština Maďarština Indonéština Italština Japonština Kabylština Korejština Litevština Holandština Norština Bokmål Polština Portugalština Portugalština Rumunština Ruština Slovenština Slovinština Srbština Švédština Turečtina Ukrajinština Valencijština Vietnamština Čínština Čínština
  • Funkce
  • Stáhnout
  • Blog
  • Dokumentace
    Hlavní strana dokumentace Začínáme Uživatelská dokumentace Příručka FreeCAD Dokumentace pracovních prostředí Dokumentace o skriptování v Pythonu Dokumentace o programování v C++ Tutoriály Často kladené otázky Zásady ochrany soukromí O FreeCADu
  • Zapojte se
    Jak pomoci Sponsor Nahlásit chybu Vytvořit žádost o změnu Pracovní místa a financování Pokyny pro příspěvky Příručka pro vývojáře Překlady
  • Komunita
    Etický kodex Fórum The FPA GitHub GitLab Codeberg Mastodon Matrix IRC IRC via Webchat Gitter Discord Reddit Twitter Facebook LinkedIn Kalendář
  • ♥ Donate

Donate

$
SEPA informace
Nastavte prosím Váš SEPA bankovní převod na:
Beneficiary: The FreeCAD project association
IBAN: BE04 0019 2896 4531
BIC/SWIFT: GEBABEBBXXX
Bankovní agentura: BNP Paribas Fortis
Adresa: Rue de la Station 64, 1360 Perwez, Belgium

While Stripe doesn't support monthly donations, you can still become a sponsor! Simply make a one-time donation equivalent to 12 months of support, and you'll gain access to the corresponding sponsoring tier. It's an easy and flexible way to contribute.

If you are not sure or not able to commit to a regular donation, but still want to help the project, you can do a one-time donation, of any amount.

Choose freely the amount you wish to donate one time only.

You can support FreeCAD by sponsoring it as an individual or organization through various platforms. Sponsorship provides a steady income for developers, allowing the FPA to plan ahead and enabling greater investment in FreeCAD. To encourage sponsorship, we offer different tiers, and unless you choose to remain anonymous, your name or company logo will be featured on our website accordingly.

from 1 USD / 1 EUR per month. You will not have your name displayed here, but you will have helped the project a lot anyway. Together, normal sponsors maintain the project on its feet as much as the bigger sponsors.

from 25 USD / 25 EUR per month. Your name or company name is displayed on this page.

from 100 USD / 100 EUR per month. Your name or company name is displayed on this page, with a link to your website, and a one-line description text.

from 200 USD / 200 EUR per month. Your name or company name and logo displayed on this page, with a link to your website and a custom description text. Companies that have helped FreeCAD early on also appear under Gold sponsors.

Instead of donating each month, you might find it more comfortable to make a one-time donation that, when divided by twelve, would give you right to enter a sponsoring tier. Don't hesitate to do so!

Choose freely the amount you wish to donate each month.

Please inform your forum name or twitter handle as a notein your transfer, or reach to us, so we can give you proper credits!

Background history

The Drawing Exchange Format (DXF) is a proprietary CAD data format developed by Autodesk to enable file exchange between their flagship AutoCAD product and other software. There are a number of good software libraries for reading/writing the DXF format.

There are many versions of the DXF format. You will hear of certain key versions, such as R12 (from 1992) or R14 (from 1997 which had splines). Later versions of DXF have 3D elements, but these are rarely used or implemented. How you use DXF to share CAD data between programs depends mainly on the limitations and bugs in the corresponding readers/importers and writers/exporters. These are rarely fully documented and can be a great source of frustration.

If you are editing DXF files and want 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 translate the geometry (e.g., spline shapes) from the DXF file into the specific internal representations 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. 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 Workbench. 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 Sketcher 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 ExportPageDXF function.


DXF terms and definitions

Anonymous blocks

When discussing DXF files, several terms are used to describe blocks that are generated automatically by the CAD software rather than by the user.

  • Anonymous block (or "Asterisk" block): This is the technical term defined by the DXF standard. It refers to any block whose name begins with an asterisk (*). It is the overarching term.
  • System block: This term describes the purpose of most anonymous blocks. They are not typically created by a user directly. Instead, the CAD application (e.g., AutoCAD) generates them automatically to represent complex objects that are composed of simpler geometric entities, such as hatches and dimensions.
  • Hidden block: This term describes the typical behavior of anonymous blocks within a CAD program's user interface. Because they are system-generated and not meant for direct user manipulation, they are usually hidden from the list of blocks that a user can insert.

Essentially, "anonymous block" is the technical name, "system block" describes its function, and "hidden block" describes its typical user interface behavior. For practical purposes in the context of the FreeCAD DXF importer, they all refer to the same category of blocks.

Classes of anonymous blocks

Anonymous blocks are further categorized based on the character that follows the initial asterisk. This prefix indicates the block's specific purpose. The most common classes are:

  • *D... (Dimensions): A block representing the graphical components of a dimension entity (lines, arrowheads, etc.).
  • *X... (Hatches): A block representing the geometry that makes up a hatch pattern.
  • *P... (Paper Space Layouts): A block that contains all the entities that exist on a specific paper space layout. The main model is typically in a block named *Model_Space, and individual layouts are named *Paper_Space, *Paper_Space0, *Paper_Space1, and so on.
  • *U... (Dynamic Blocks): These are complex blocks used for AutoCAD's dynamic block functionality.
  • *E..., *T..., etc.: Other prefixes exist for specialized objects like associative arrowheads and tables.

BLOCKs and INSERTs

The BLOCK entity

A BLOCK is a named collection of geometric entities (lines, arcs, polylines, etc.) that are grouped together to form a single object definition. It can be thought of as a template.

A BLOCK:

  • Has a name: every user-created block has a unique name (e.g., "CHAIR-01", "BOLT-M8"). This name is used to reference the block.
  • Has a base point: this is the origin point (0,0,0) within the block's own internal coordinate system. When the block is inserted, this base point is aligned with the specified insertion coordinates.
  • Is not visible by itself: the BLOCK definition is stored in a library-like section of the DXF file (the BLOCKS section). The geometry within the block does not appear in the final drawing until an instance of it is created.

The INSERT entity

An INSERT entity is what places a copy, or instance, of a BLOCK's geometry into the drawing's model space or paper space. It is a very lightweight entity because it does not contain the geometry itself; it only contains a reference to a BLOCK definition and instructions on how to place and transform it.

An INSERT:

  • References a block by name: it specifies which BLOCK definition to use (e.g., "I am an instance of block 'CHAIR-01'").
  • Has an insertion point: this is the (X, Y, Z) coordinate in the drawing where the block's base point should be placed.
  • Has transformations: each instance can be transformed independently without affecting the original block definition. These transformations include:
    • Scale: the instance can be scaled differently in the X, Y, and Z directions.
    • Rotation: the instance can be rotated around its insertion point.

BLOCK placement strategies

A DXF file separates the definition of a component from its placement.

  • A BLOCK is the template or blueprint. It contains the geometry that makes up a component, like a chair or a window. These definitions are stored in the BLOCKS section of the file and are not directly visible in the final drawing.
  • An INSERT is the instruction to place a BLOCK into the drawing at a specific position, orientation, and scale. These are the visible instances of the block and are found in the ENTITIES section.

There are two primary workflows for using blocks and inserts:

  1. Template and instance workflow: A single BLOCK definition is created, and multiple INSERT entities are used to place instances of it throughout the drawing. This is an efficient method for handling repetitive elements. For instance, the geometry for a chair is defined once in a BLOCK and then referenced many times by INSERT entities.
  2. Compound object workflow: A BLOCK is created from existing geometry simply to group those objects together as a single, selectable unit. In this case, the BLOCK definition is used by a single INSERT entity only.

The DXF importer must be able to distinguish between these two use cases to correctly represent the original drawing's intent, either by creating many linked instances to a single base object (template model) or by creating a single, visible object (grouped object model).


Tato stránka je načtena z https://wiki.freecad.org/DXF

Buďte v kontaktu!
Forum GitHub Mastodon Matrix IRC Gitter.im Discord Reddit Twitter Facebook LinkedIn

© Tým FreeCAD. Autorství obrázků úvodní stránky (od zhora dolů): ppemawm, r-frank, epileftric, regis, rider_mortagnais, bejant.

Tento projekt podporují: , KiCad Services Corp. a ostatní sponzoři

GitHubVylepšete tuto stránku na GitHubu