Svg Namespace/de: Difference between revisions

From FreeCAD Documentation
No edit summary
(Created page with "Wie alle XML-Dokumente enthält auch ein SVG-Dokument zwei Abschnitte: * Kopf (Head): eine einzelne Zeile, die angibt, welche Version der Sprache XML für die Befehle im Körper dieses Dokuments verwendet wird. * Körper (Body): eine Liste von Befehlen. SVG-Dokumente schließen alle Befehle in <svg>-Tags (Markierungen) ein. : Der öffnende Tag enthält Informationen über die (Zeichenblatt-) Größe und den verwendeten SVG-Namensraum.")
Line 11: Line 11:
FreeCAD kann [http://en.wikipedia.org/wiki/Scalable_Vector_Graphics SVG]-Dokumente importieren und exportieren, die Code enthalten, der zu einem bestimmten '''Namensraum''' gehört, der eine Untermenge der XML-Befehle ist.
FreeCAD kann [http://en.wikipedia.org/wiki/Scalable_Vector_Graphics SVG]-Dokumente importieren und exportieren, die Code enthalten, der zu einem bestimmten '''Namensraum''' gehört, der eine Untermenge der XML-Befehle ist.


Wie alle XML-Dokumente enthält auch ein SVG-Dokument zwei Abschnitte:
Like any XML document an SVG document consist of two sections:
* Kopf (Head): eine einzelne Zeile, die angibt, welche Version der Sprache XML für die Befehle im Körper dieses Dokuments verwendet wird.
* Head: just one line to declare which version of the XML language is used for the instructions in the body of this document.
* Body: a list of instructions. SVG documents enclose all instructions in <svg>-tags.
* Körper (Body): eine Liste von Befehlen. SVG-Dokumente schließen alle Befehle in <svg>-Tags (Markierungen) ein.
: Der öffnende Tag enthält Informationen über die (Zeichenblatt-) Größe und den verwendeten SVG-Namensraum.
: The opening tag contains information about the size and the used SVG namespaces.


==Default namespace==
==Default namespace==

Revision as of 06:01, 31 August 2023

Entwicklung des Arbeitsbereichs Drawing wurde in FreeCAD v0.16 gestoppt und der neue in v0.17 eingeführte Arbeitsbereich TechDraw zielt darauf ab, ihn zu ersetzen. Beide Arbeitsbereiche wurden von v0.17 bis v0.20 bereitgestellt, aber ab FreeCAD v0.21 ist der Arbeitsbereich Drawing nicht mehr enthalten.
Zurzeit verwendet der Arbeitsbereich TechDraw noch das Attribut freecad:EditableText und die zugehörige Namensraum-Angabe in den aktuellen Vorlagen.


Einleitung

FreeCAD kann SVG-Dokumente importieren und exportieren, die Code enthalten, der zu einem bestimmten Namensraum gehört, der eine Untermenge der XML-Befehle ist.

Wie alle XML-Dokumente enthält auch ein SVG-Dokument zwei Abschnitte:

  • Kopf (Head): eine einzelne Zeile, die angibt, welche Version der Sprache XML für die Befehle im Körper dieses Dokuments verwendet wird.
  • Körper (Body): eine Liste von Befehlen. SVG-Dokumente schließen alle Befehle in <svg>-Tags (Markierungen) ein.
Der öffnende Tag enthält Informationen über die (Zeichenblatt-) Größe und den verwendeten SVG-Namensraum.

Default namespace

The default SVG namespace used by FreeCAD is declared with this line:

xmlns="http://www.w3.org/2000/svg" version="1.1"

The external link leads to a web site containing information about the namespace and its set of instructions. Attributes of this namespace are used without prefix.

Namespace extension

Attributes missing from the SVG namespace can be added by namespace extensions. FreeCAD uses such an extension for drawing templates. Templates for the Drawing workbench used four custom attributes which are marked with a "freecad:" prefix:

A namespace declaration is used to introduce the prefix and the link to the related web site, this page:

xmlns:freecad="http://www.freecadweb.org/wiki/index.php?title=Svg_Namespace"

The link is not used to retrieve information or values at runtime, but it is the key to activate the custom attributes.

Drawing templates

In the SVG documents exported by FreeCAD's Drawing Workbench and used as (Drawing) page templates, the custom attributes can be used, originally for FreeCAD's own internal use, but could also be used by other FreeCAD-aware applications in the future. These attributes all use the freecad: namespace prefix. The namespace URL defined in those SVG documents refers to this page.

The Drawing workbench is no longer included in FreeCAD version 0.21 and above and so these Drawing templates are obsolate now.

TechDraw templates

The TechDraw workbench also uses SVG templates but can not create and export templates. It relies on freecad:EditableText for entries in title blocks.

Migration to freecad.org

Since the FreeCAD wiki, including this page, was migrated from freecadweb.org to freecad.org in version 0.21 the link has to be updated accordingly to:

xmlns:freecad="http://www.freecad.org/wiki/index.php?title=Svg_Namespace"

Updated TechDraw templates now contain a key that can not activate the custom attributes when used with FreeCAD version 0.20 and below and as a result editable texts of recent templates are not recognised and so handled as plain text.

In such cases the "web" has to be manually re-inserted into the namespace declaration of the template.

It seems like version 0.21 and above can deal with either link address.

Anwendung

1 pixel = 1 mm

An irgendeiner Stelle im SVG-Code muss angegeben werden, wo sich die Inhalte der Zeichnung befinden sollen, z.B. am Ende der Datei, direkt vor dem letzten </svg> tag. Die folgende Zeile:

<!-- DrawingContent -->
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
    xmlns:freecad="http://www.freecadweb.org/wiki/index.php?title=Svg_Namespace"

Um das Bedrucken der Skalen zu ermöglichen, muss die tatsächliche Wortgröße in den Attributen 'Breite' und 'Höhe' des SVG-Tags angegeben werden. Die Größe des Dokumentes in Benutzereinheiten (px) muss im viewBox-Attribut angegeben werden.

Das Folgende muss wie im nachfolgenden Beispiel formattiert werden:

  • xxx = Pixel-Breite
  • yyy = Pixel-Höhe
width="xxxmm"
height="yyymm"
viewBox="0 0 xxx yyy"

Zusätzliche Informationen zum Arbeitsbereich (Working space) und dem Titelblock können eingefügt werden und werden auf der Seite Zeichnungsvorlagen vorgegeben.

Attribute

freecad:EditierbarerText

Um freecad: Attribute im SVG-Dokumenten zu nutzen, muss der FreeCAD Namensraum als Attribut des Eröffnungstags <svg> definiert werden.

Dies beschreibt einen Text, der in FreeCAD geändert werden kann.

Beispiel:

<text freecad:EditableText="MyTitleText">
    <tspan>This is a title</tspan>
</text>

freecad:basepoint1 (Basispunkt 1)

Definiert den ersten Basispunkt eines Entwurf Abmessung-Objektes, als Gruppe in einem SVG-Dokument dargestellt. Dieses Attribut wird verwendet, wenn das SVG-Teilstück (Fragment) in FreeCAD importiert wird, um das Objekt 'Dimension' neu zu erzeugen/zu ändern. Die Gruppe enthält Pfade und andere graphische Punkte, um das Objekt Dimensionen in anderen SVG-Anwendungen richtig wiederzugeben.

Beispiel:

<g freecad:basepoint1="0.5 4.34" freecad:basepoint2="2.4 5.8" dimpoint="3.2 7.76">
    <path d="...">
</g>

freecad:basepoint2 (Basispunkt 2)

Definiert den zweiten Basispunkt des Entwurf Abmessung Objektes, als Gruppe in einem SVG-Dokument dargestellt. Dieses Attribut wird verwendet, wenn das SVG-Teilstück (Fragment) in FreeCAD importiert wird, um das Objekt 'Dimension' neu zu erzeugen / zu ändern. Die Gruppe enthält Pfade und andere graphische Punkte, um das Objekt Dimensionen in anderen SVG-Anwendungen richtig wiederzugeben.

Beispiel: siehe freecad:basepoint1

freecad:dimpoint

Definiert den Punkt eines Entwurf Abmessung Objektes, durch den die Bemaßungslinie läuft. Dieses Attribut wird verwendet, wenn das SVG-Teilstück (Fragment) in FreeCAD importiert wird, um das Objekt 'Dimension' neu zu erzeugen/zu ändern. Die Gruppe enthält Pfade und andere graphische Punkte, um das Objekt Dimensionen in anderen SVG-Anwendungen richtig wiederzugeben.

Beispiel: siehe freecad:basepoint1

Beispiel eines freecad-Codes:EditierbarerText

Diese Beispiel wurde von einer Kartusche auf ein Blatt übertragen A3_Landscape

1 : Titel ohne Textbearbeitung (textedit)

  <g
     id="g3587">
    <text
       sodipodi:linespacing="119.00001%"
       id="text3482"
       y="229.10912"
       x="220.8476"
       style="font-size:1.97555566px;font-style:normal;font-weight:normal;line-height:119.00000572%;letter-spacing:0.01975556px;word-spacing:0.00846667px;writing-mode:lr-tb;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
       xml:space="preserve"><tspan
         y="229.10912"
         x="220.8476"
         id="tspan3484"
         sodipodi:role="line">AUTHOR NAME :</tspan></text>

1 : Titel mit Textbearbeitung (textedit)

  <g
     style="fill:none;stroke:#000000;stroke-width:0.13;stroke-linecap:butt;stroke-linejoin:miter"
     id="g578-7"
     transform="translate(0,4)">
    <text
       xml:space="preserve"
       style="font-size:4px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:sans;-inkscape-font-specification:sans"
       x="220.9935"
       y="228.95425"
       id="text3331"
       sodipodi:linespacing="125%"
       freecad:editable="AuthorName"><tspan
         sodipodi:role="line"
         id="tspan3333"
         x="220.9935"
         y="228.95425">AUTHOR NAME</tspan></text>
    <text
    ...
    ...
    ...
    ... </text>
  
  </g>

Erklärungen

  <g

Beginn der Rahmensumbebung (framework)

     style="fill:none;stroke:#000000;stroke-width:0.13;stroke-linecap:butt;stroke-linejoin:miter"
     id="g578-7"
     transform="translate(0,4)">

Datum (data) in der Rahmensumgebung (framework)

    <text

Beginn des Textblockes

       xml:space="preserve"
       style="font-size:4px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:sans;-inkscape-font-specification:sans"

Alle Informationen über den Text, der angezeigt wird

       x="220.9935"
       y="228.95425"
       id="text3331"
       sodipodi:linespacing="125%"

Koordiniert und identifiziert den Text, wo dieser angezeigt wird

       freecad:editable="AuthorName"><tspan

Hier ist AuthorName die Variable, die durch freecad:editable gemanaged wird und den zu ändernden Text (string) speichert, der angezeigt wird.

         sodipodi:role="line"
         id="tspan3333"
         x="220.9935"
         y="228.95425">AUTHOR NAME</tspan></text>

Koordiniert und identifiziert den vorgegebenen Text, der angezeigt wird. </text> ist das Ende des Blockes 'Text'.

    <text
    ...
    ...
    ...
    ... </text>
  </g>

Andere Textblöcke und das Ende </g> der Rahmensumgebung 'Gruppe Textblöcke'.

Es ist möglich, dass nach dem Bearbeiten der 'Inkscape SVG-Datei' die Datei nicht mehr funktioniert. Möglicherweise sind Informationen verloren gegangen.

Prüfen, ob der bearbeitete Text geändert wurde

Beispiel:

  • editable = "AuthorName"
  • replace by freecad:editable = "AuthorName"

Andere, verfügbare Attribute

Siehe Zeichnungsvorlagen