Svg Namespace/de: Difference between revisions
(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 [[ |
||
</div> |
|||
{{TOCright}} |
{{TOCright}} |
Revision as of 05:43, 31 August 2023
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:
- freecad:EditableText, this is still used with templates for the TechDraw workbench.
- freecad:basepoint1
- freecad:basepoint2
- freecad:dimpoint
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