Svg Namespace/de: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
No edit summary
Line 1: Line 1:
<languages/>
<languages/>


{{VeryImportantMessage|Entwicklung des Arbeitsbereichs [[Drawing_Workbench/de|Drawing]] wurde in FreeCAD v0.16 gestoppt und der neue in v0.17 eingeführte Arbeitsbereich [[TechDraw_Workbench/de|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.}}
<div class="mw-translate-fuzzy">
{{Message|Zurzeit verwendet der Arbeitsbereich TechDraw noch das Attribut '''freecad:EditableText''' und die zugehörige Namensraum-Angabe in den aktuellen Vorlagen.}}
{{VeryImportantMessage|Entwicklung des [[Drawing Workbench/de|Zeichnung Arbeitsbereich]] wurde in FreeCAD v0.16 gestoppt und der neue in v0.17 eingeführte [[TechDraw Workbench/de|TechDraw Arbeitsbereich]] zielt darauf, ihn zu ersetzen. Beide Arbeitsbereiche werden in v0.17 bereitgestellt, aber der Zeichnung Arbeitsbereich könnte in zukünftigen Ausgaben entfernt werden.}}
</div>


{{TOCright}}
{{TOCright}}

Revision as of 05:43, 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.


Introduction

In den SVG-Dokumenten, die aus FreeCAD's Zeichnungsmodul exportiert wurden und als Seite Vorlagen (templates) verwendet werden, können verschiedene anwenderspezifische Attribute verwendet werden. Ursprünglich für den internen Gebrauch in FreeCAD, können sie auch durch andere FreeCAD-Applikationen in der Zukunft verwendet werden. All diese Attribute nutzen das freecad: Namensraum-Präfix. Die URL des Namensraumes, die in diesen SVG-Dokumenten vorgegeben ist, bezieht sich auf diese Seite.

Like any XML document an SVG document consist of two sections:

  • 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.
The opening tag contains information about the size and the used SVG namespaces.

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