Jump to content

DXF

From FreeCAD Documentation
This page is a translated version of the page DXF and the translation is 100% complete.

Tło historyczne

Drawing Exchange Format (DXF) to zastrzeżony format danych CAD opracowany przez Autodesk w celu umożliwienia wymiany plików między ich flagowym produktem AutoCAD a innym oprogramowaniem. Istnieje wiele dobrych bibliotek oprogramowania do odczytu/zapisu formatu DXF.

Istnieje wiele wersji formatu DXF. Można usłyszeć o niektórych kluczowych wersjach, takich jak R12 (z 1992 r.) lub R14 (z 1997 r., która miała splajny). Późniejsze wersje DXF mają elementy 3D, ale są one rzadko używane lub wdrażane. Sposób wykorzystania DXF do udostępniania danych CAD między programami zależy głównie od ograniczeń i błędów w odpowiednich czytnikach / importerach i programach zapisujących / eksporterach. Rzadko są one w pełni udokumentowane i mogą być źródłem frustracji.

Jeśli edytujesz pliki DXF i chcesz, aby pozostały prawie takie same po ich zapisaniu, zalecamy użycie LibreCAD lub QCad, ponieważ wewnętrzne struktury danych tych programów są kompatybilne z obiektami w pliku DXF.

W programie FreeCAD czytniki DXF muszą przetłumaczyć geometrię (np. kształty splajnu) z pliku DXF na określone wewnętrzne reprezentacje środowiska pracy.

Metody importowania DXF

Jeśli zamierzasz często sprawdzać ustawienia, zalecamy przejście do menu Edycja → Preferencje ...→ Import-Eksport → DXF i zaznaczenie pola Pokaż okno dialogowe podczas importowania i eksportowania.

Więcej informacji znajduje się na stronach Rysunek Roboczy: DXF i FreeCAD i import DXF.

Jeśli zaimportowana geometria jest używana do tworzenia kształtów 3D w środowisku pracy Projekt Części, po zaimportowaniu pliku DXF do szkicu należy użyć opcji Sprawdź poprawność szkicu.

Importer C++ DXF

Ta implementacja jest szybka, ale pomija funkcje, których nie rozpoznaje, takie jak krzywe złożone DXF. Może również importować geometrię do środowiska pracy Rysunek Roboczy tylko jako pojedyncze wpisy w drzewie modelu. Kolory mogą być odczytywane z pliku po zaznaczeniu tej opcji. Aby uzyskać więcej informacji, zobacz ten post na forum.

Importer DXF w Pythonie

Ten importer musi zostać pobrany i zainstalowany, zanim będzie można z niego korzystać. Użyj opcji Pozwól programowi FreeCAD na automatyczne pobieranie i aktualizację bibliotek DXF.

Ten importer ma więcej funkcji (takich jak implementacja splajnów) i ma opcję ładowania kształtów DXF do środowiska pracy Szkicownik. Należy jednak pamiętać, że wszystkie elementy szkicu pojawią się pojedynczo po raz drugi w drzewie modelu, co może być mylące. Możesz usunąć wszystkie te pojedyncze obiekty i zachować pojedynczy szkic (który pojawi się jako drugi wpis na liście nowych elementów).

Niestety, Szkicownik nie implementuje kolorów, więc cała geometria pojawi się na tym samym poziomie, co stanowi problem, jeśli plik zawiera wiele linii konstrukcyjnych. Jednym z obejść jest otwarcie rysunku w LibreCAD i usunięcie całej geometrii, której nie chcesz wyświetlać, przed zapisaniem pliku zawierającego dokładnie tę geometrię, którą chcesz załadować.

Makrodefinicje

Miej oko na forum FreeCAD lub Przepisy na makropolecenia na alternatywne implementacje importowania i czyszczenia DXF w miarę ich rozwoju.

Zapis DXF

Oprócz opcji w menu Edycja → Preferencje ..., środowisko pracy Rysunek Techniczny może również eksportować strony rysunku do DXF za pomocą funkcji Eksport strony do DXF.


DXF - pojęcia i definicje

Anonimowe bloki

Przy omawianiu plików DXF, używanych jest kilka określeń do opisu bloków, które są generowane automatycznie przez oprogramowanie CAD a nie przez użytkownika.

  • Anonimowy blok (lub Blok "Asterisk"): To techniczne określenie zdefiniowane przez standard DXF. Odnosi się do każdego bloku, którego nazwa zaczyna się od gwiazdki (*). To nadrzędne określenie.
  • Blok systemowy: To określenie opisuje cel większości anonimowych bloków. Zwykle nie są tworzone bezpośrednio przez użytkownika. Zamiast tego, oprogramowanie CAD (np. AutoCAD) generuje je automatycznie do reprezentacji złożonych obiektów składających się z prostszych obiektów geometrycznych, takich jak kreskowania i wymiary.
  • Ukryty blok: To określenie opisuje typowe zachowanie anonimowych bloków w obrębie interfejsu użytkownika programu CAD. Ponieważ są one generowane systemowo i nie są przeznaczone do bezpośredniej manipulacji przez użytkownika, zwykle pozostają ukryte na liście bloków, które użytkownik może wstawić.

Zasadniczo, "blok anonimowy" to określenie techniczne, "blok systemowy" opisuje jego funkcję a "blok ukryty" jego typowe zachowanie w interfejsie użytkownika. Do celów praktycznych w kontekście importera DXF we FreeCAD, wszystkie te określenia odnoszą się do tej samej kategorii bloków.

Klasy bloków anonimowych

Bloki anonimowe są dalej kategoryzowane w oparciu o znak po początkowej gwiazdce. Ten przedrostek wskazuje specyficzny cel bloku. Najpopularniejsze klasy to:

  • *D... (Wymiary): Blok reprezentujący graficzne komponenty obiektu wymiaru (linie, groty strzałek itd.).
  • *X... (Kreskowania): Blok reprezentujący geometrię, która tworzy wzór kreskowania.
  • *P... (Układy przestrzeni kartki papieru): Blok, który zawiera wszystkie obiekty istniejące w określonym układzie kartki papieru. Główny model znajduje się zwykle w bloku o nazwie *Model_Space a pojedyncze układy są nazwane *Paper_Space, *Paper_Space0, *Paper_Space1 itd.
  • *U... (Bloki dynamiczne): Są to złożone bloki używane przez funkcję dynamicznych bloków w AutoCAD.
  • *E..., *T... itd.: Inne przedrostki istnieją dla specjalizowanych obiektów, takich jak asocjacyjne groty strzałek i tabele.

Obiekty BLOCK oraz INSERT

Obiekt BLOCK

BLOCK to nazwany zbiór obiektów geometrycznych (linii, łuków, polilinii itd.), które są pogrupowane razem aby utworzyć pojedynczą definicję obiektu. Można to traktować jak szablon.

BLOCK:

  • Ma nazwę: każdy blok stworzony przez użytkownika ma unikalną nazwę (np. "CHAIR-01", "BOLT-M8"). Ta nazwa jest używana do odnoszenia się do bloku.
  • Ma punkt bazowy: jest to punkt początkowy (0,0,0) w obrębie własnego wewnętrznego układu współrzędnych bloku. Gdy blok jest wstawiany, ten punkt bazowy jest wyrównywany z podanymi współrzędnymi wstawiania.
  • Nie jest widoczny sam z siebie: definicja obiektu BLOCK jest przechowywana w części pliku DXF przypominającej bibliotekę (sekcja BLOCKS). Geometria w obrębie bloku nie pojawia się w finalnym rysunku dopóki nie zostanie utworzona jego instancja.

Obiekt INSERT

Obiekt INSERT umieszcza kopię (instancję) geometrii obiektu BLOCK w przestrzeni modelu lub kartki rysunku. Jest to bardzo lekki obiekt, ponieważ sam nie zawiera geometrii a jedynie odniesienie do definicji obiektu BLOCK i instrukcje jak go umieścić i przekształcić.

Obiekt INSERT:

  • Odnosi się do bloku poprzez nazwę: określa której definicji obiektu BLOCK użyć (np. "Jestem instancją bloku 'CHAIR-01'").
  • Ma punkt wstawienia: są to współrzędne (X, Y, Z) rysunku, gdzie punkt bazowy bloku ma być umieszczony.
  • Ma transformacje: każda instancja może być przekształcona niezależnie bez wpływu na oryginalną definicję bloku. Te przekształcenia to:
    • Skala: instancja może być skalowana inaczej w kierunkach X, Y i Z.
    • Obrót: instancja może być obrócona wokół swojego punktu wstawienia.

Strategie umiejscawiania obiektów BLOCK

Plik DXF oddziela definicję komponentu od jego umiejscowienia.

  • BLOCK to szablon/plan. Zawiera geometrię, która tworzy komponent, jak krzesło czy okno. Te definicje są przechowywane w sekcji BLOCKS pliku i nie są bezpośrednio widoczne w finalnym rysunku.
  • INSERT to instrukcja umiejscowienia obiektu BLOCK na rysunku w określonym położeniu, orientacji i skali. Są to widoczne instancje bloku i można je znaleźć w sekcji ENTITIES.

Istnieją dwa główne podejście do używania bloków i wstawień:

  1. Podejście z użyciem szabloni i instancji: Tworzona jest pojedyncza definicja obiektu BLOCK i wiele obiektów INSERT używanych do umiejscowienia jego instancji na całym rysunku. To wydajny sposób w przypadku powtarzalnych elementów. Przykładowo, geometria krzesła jest definiowana raz w obiekcie BLOCK a następnie jest wiele odniesień do niej przez obiekty INSERT.
  2. Podejście z użyciem złożonego obiektu: Tworzony jest obiekt BLOCK z istniejącej geometrii aby pogrupować te obiekty razem jako jedną wybieralną jednostkę. W tym wypadku, definicja obiektu BLOCK jest używana przez tylko jeden obiekt INSERT.

Importer DXF musi umieć rozróżnić te dwa przypadki aby prawidłowo przedstawiać założenie oryginalnego rysunku, poprzez tworzenie wielu instancji powiązanych z jednym obiektem bazowym (model szablonu) lub poprzez tworzenie jednego widocznego obiektu (model z pogrupowanymi obiektami).