Rysunek Roboczy: SVG

From FreeCAD Documentation
Revision as of 12:28, 30 December 2023 by Kaktus (talk | contribs) (Created page with "Podczas importowania przestrzegane są atrybuty szerokości, wysokości i viewBox. Wszystkie elementy są skalowane do ich rozmiaru w milimetrach, co jest wewnętrzną jednostką FreeCAD. Jeśli SVG nie zawiera informacji o jego fizycznym rozmiarze, przyjmuje się, że ma rozdzielczość 90 DPI. Należy unikać używania jednostek bezwzględnych w atrybutach wewnątrz SVG. Jednostki względne, takie jak em, ex i % nie są obecnie obsługiwane.")

Opis

Draft SVG jest modułem oprogramowania używanym przez polecenia Otwórz, Importuj i Eksportuj do obsługi plików w formacie SVG.

Rysunek Inkscape wyeksportowany do SVG, który jest następnie otwierany w FreeCAD.

Importowanie

Importowane mogą być następujące obiekty SVG:

  • obiekty ścieżki,
  • obiekty linii,
  • obiekty kwadratów,
  • Obiekty okręgów,
  • obiekty elips,
  • obiekty prostokątów,
  • obiekty polilinii.

Ograniczenia

FreeCAD nie zaimportuje obiektów ścieżek, które mają tylko jeden punkt (dyskusja na forum).

Eksportowanie

Eksportowane mogą być następujące obiekty FreeCAD:

  • Linie i polilinie,
  • łuki i okręgi,
  • ściany,
  • teksty,
  • wymiary.

Ograniczenia

SVG jest formatem 2D, więc wszystkie informacje o osi Z zostaną pominięte (wszystkie obiekty zostaną spłaszczone).

Obsługa jednostek

Podczas eksportowania jednostka użytkownika (px) jest równa jednemu milimetrowi.

Podczas importowania przestrzegane są atrybuty szerokości, wysokości i viewBox. Wszystkie elementy są skalowane do ich rozmiaru w milimetrach, co jest wewnętrzną jednostką FreeCAD. Jeśli SVG nie zawiera informacji o jego fizycznym rozmiarze, przyjmuje się, że ma rozdzielczość 90 DPI. Należy unikać używania jednostek bezwzględnych w atrybutach wewnątrz SVG. Jednostki względne, takie jak em, ex i % nie są obecnie obsługiwane.

The Inkscape SVG Editor currently works only with 90 DPI documents. No matter which unit is selected in Inkscape. All the output has to be considered converted to 90 DPI and rounded to 6 decimal places. As FreeCAD (and the SVG standard) is agnostic to the precision of rounding done in Inkscape these values will not be rounded on input. And odd values in millimeter will remain. If you need the SVG import not to be rounded, work on User Units (px) in Inkscape. Scaling can be done after the import in FreeCAD or by changing the width, height and viewbox attributes.

Preferences

See Import Export Preferences.

Scripting

See also: Autogenerated API documentation and FreeCAD Scripting Basics.

To export objects to SVG use the export method of the importSVG module.

importSVG.export(exportList, filename)
  • For the Windows OS: use a / (forward slash) as the path separator in filename.

Przykład:

import FreeCAD as App
import Draft
import importSVG

doc = App.newDocument()

polygon1 = Draft.make_polygon(3, radius=500)
polygon2 = Draft.make_polygon(5, radius=1500)

doc.recompute()

objects = [polygon1, polygon2]
importSVG.export(objects, "/home/user/Pictures/myfile.svg")