Entfernen von Transformationen in SVG-Dateien

155

Ich habe eine Weile damit zu kämpfen und kann anscheinend nirgendwo eine Antwort finden (die funktioniert). Ich habe eine SVG-Datei, die so aussieht:

<svg

   xmlns:dc="http://purl.org/dc/elements/1.1/"
   ...
   width="72.9375"
   height="58.21875"
   ...>
   ...
   <g
     ...
     transform="translate(10.75,-308.96875)"
     style="...">
     <path
       inkscape:connector-curvature="0"
       d="m -10.254587,345.43597 c 0,-1.41732 0.17692,-2.85384 0.5312502,-3.5625 0.70866,-1.41733 2.14518,-2.82259 3.5625,-3.53125 1.41733,-0.70866 2.11392,-0.70867 3.53125,0 1.41732,0.70866 ... z"
       ... />
  </g>
</svg>

Ich möchte die transform="..."Linie entfernen , aber mein Bild bleibt dort, wo ich es platziert habe (in InkScape). Wenn ich die Transformation manuell entferne, wird das Bild (wie erwartet) auf einen anderen Teil des Bildschirms verschoben, aber ich muss die Transformation vollständig entfernen und gleichzeitig das Bild genau dort belassen, wo ich es haben möchte. Gibt es eine Möglichkeit, die Transformationen in die Pfadkoordinaten selbst zu entfernen / zu reduzieren? (Die einzigen Transformationen, mit denen ich mich befassen muss, sind Übersetzen und Skalieren, keine Matrizen.)

Ephemera
quelle
1
Dies ist ähnlich zu stackoverflow.com/questions/10126498/…
Erik Dahlström
1
Vernetzung zu stackoverflow.com/q/14684846/2171120
mirabilos

Antworten:

149

So entfernen Sie Transformationen in Inkscape

  1. Öffnen Sie die SVG-Datei in Inkscape
  2. Gehen Sie zu Bearbeiten -> XML-Editor
  3. Suchen Sie nach "Transformations" -Attributen in Ebenen und löschen Sie sie

So verschieben Sie alle Objekte insgesamt, ohne weitere Transformationsattribute zu erstellen

  1. Gehen Sie zu Bearbeiten -> Alles in allen Ebenen auswählen
  2. Gehen Sie zu Objekt -> Transformieren

    Im Transformationsbedienfeld

  3. Deaktivieren Sie Relative Verschiebung und aktivieren Sie die Option Auf jedes Objekt separat anwenden

  4. Stellen Sie horizontale und vertikale Werte entsprechend Ihren Anforderungen ein und klicken Sie auf Übernehmen
Serge Seletskyy
quelle
16
Hat für mich gearbeitet. Objekte müssen vor der Transformation nicht gruppiert werden, damit die tatsächlichen Koordinaten der Pfade aktualisiert werden.
Rupert Angermeier
8
Hm, nachdem Sie es auf 0 gesetzt und auf Anwenden geklickt haben, wird die Transformation wieder im XML-Editor angezeigt.
entkommen Katze
7
Das Entgruppieren der Objekte ist notwendig, damit dies für mich funktioniert, danke!
Hai Zhang
1
Hat bei mir nicht funktioniert. Es wird das Transformationsattribut abflachen und in Blätter verschieben (tatsächlich wird alles nach dem Aufheben der Gruppierung zu einem Blatt), aber es wird das Transformationsattribut nicht ENTFERNEN und es auf die Punktgeometrie anwenden, ohne die ich wieder auf dem ersten Platz bin.
Szczepan Hołyszewski
2
WICHTIG: Wie in einem oben erläuterten Kommentar müssen Sie die Gruppierung der Objekte aufheben, damit dies ordnungsgemäß funktioniert. Andernfalls wird das Transformationsattribut automatisch wieder festgelegt
Shadow
52

Ich habe herausgefunden, wo das Problem liegt. Ich hatte gehofft, nicht auf Roberts Antwort zurückgreifen zu müssen, obwohl ich mich über die Bestätigung freue, dass es funktionieren würde! Am Ende war Duopixels Antwort tatsächlich die nächste, obwohl sich herausstellte, dass noch etwas anderes vor sich ging.

Wenn Sie in Inkscape-Dokumenten mit unterschiedlichen Pfaden arbeiten, besteht das Standardverhalten meiner Meinung nach darin, sie unter einem <svg:g.../>Tag zusammenzufassen. Beim Ändern von Pfaden in einer Gruppe fügt Inkscape der Gruppe automatisch eine Transformation hinzu, um diese Änderungen darzustellen. Wenn Sie jedoch den XML-Editor öffnen und Ihren Pfad außerhalb des <svg:g.../>Tags ziehen und ihn zu einem eigenen <svg:path.../>Tag machen, kann Inkscape die einzelnen Punkte nach Belieben bearbeiten. Am Ende stellte sich heraus, dass es sich um ein Gruppierungsproblem handelte, obwohl ich nur mit einem Pfad arbeitete! Hoffe das hilft anderen in ähnlichen Situationen.

Ephemera
quelle
7
Genial! Danke dir! Genau das tat es. Ich habe gerade das Gruppen-Tag gelöscht, den inneren Inhalt verlassen, ihn gespeichert und in Inkscape erneut geöffnet. Natürlich befand sich das Bild außerhalb des Ansichtsfelds (oder wie auch immer es heißt), aber dann habe ich einfach das x, y eingestellt und es ist behoben. Was für ein Schmerz. Vielen Dank für das Teilen!
johntrepreneur
1
In meinem Fall habe ich Ansätze aus dieser Antwort mit einem anderen aus dieser Antwort kombiniert .
Quasiyoke
Dies sollte positiv bewertet und an die Spitze gebracht werden. Dies löst das Problem elegant und hat für mich funktioniert. Und selbst wenn die Grafiken außerhalb der Leinwand verlegt sind, können Sie die Größe jederzeit ändern (Bearbeiten> Größe der Seite auf Auswahl ändern)
Mandarin
48

Geben Sie hier die Bildbeschreibung ein

  1. Laden Sie Ihre SVG in Method Draw http://editor.method.ac (Datei> Bild öffnen)
  2. Gruppieren Sie die Gruppierung Ihrer Elemente (Objekt> Gruppierung der Elemente aufheben). Möglicherweise müssen Sie dies mehrmals tun.
  3. Wählen Sie Ihren Pfad
  4. Richten Sie den Pfad neu aus (Objekt> Pfade neu ausrichten).
  5. Speichern Sie Ihr Bild (Datei> Bild speichern) Wenn es in einem neuen Fenster angezeigt wird, können Sie mit der rechten Maustaste klicken und "Bild speichern unter ...".
Methode der Aktion
quelle
1
Es gibt kein Objekt> Pfade neu ausrichten. Auf welche Version beziehen Sie sich?
0__
1
@ 0__ Wenn dieser Menüpunkt deaktiviert ist, bedeutet dies, dass sich Ihr Pfad noch in einer Gruppe befindet. Gruppierung wieder aufheben.
Methodofaction
37

Es gibt eine inkscape-Erweiterung namens Transformationen anwenden , die Pfade mit ihren Transformationen neu berechnet. Genau das habe ich gesucht.

Nach der Installation finden Sie das Menü unter Erweiterungen> Pfad ändern> Transformieren anwenden .


Credits: Inkscape-Forum> Entfernen Sie alle Transformationen, während Sie an Ort und Stelle bleiben

piotr_cz
quelle
Diese Erweiterung wurde aktualisiert und funktioniert jetzt auch für Rechtecke, zumindest in meinen Tests.
Sil
Absolut. Die Leistung dieses kleinen Plugins ist unermesslich!
Brett
23

Für Gruppen kann die Umgruppierung die Arbeit schnell erledigen. Wählen Sie die Gruppe aus und drücken Sie Strg + Umschalt + G (Degroup) und dann Strg + G (Gruppe).

Bei einigen Objekten mit einem ähnlichen Problem, z. B. Spiralen und Sternen, können Sie schnell Strg + Alt + C (Strich zu Pfad) drücken. Dadurch wird das Objekt jedoch in einen reinen Pfad konvertiert und alle zusätzlichen Attribute werden entfernt. wie Sodipodi: cx, Sodipodi: Revolutionen und so weiter.

UTF_or_Death
quelle
23

Öffne dein SVG auf Inkscape :

  • Wählen Sie die Gruppe aus , die alle Transformationen enthält, die Sie entfernen möchten
  • Drücken Sie CTRL+ U(ungroup)
  • Drücken Sie CTRL+ G(erneut gruppieren)

Auf diese Weise werden Sie die auf die Gruppe angewendeten Transformationen entfernen und sie werden auf die Pfade übertragen, die in dieser Gruppe enthalten sind.

rmartrenado
quelle
1
Perfekt! Dies funktionierte in Inkscape 1.0
Wizard of Ogz
14

Wenn Sie Inkscape verwenden, reicht es meiner Erfahrung nach aus, das Pfadelement leicht zu verschieben (z. B. mit den Cursortasten), und Inkscape löscht das Transformationsattribut und passt die Pfaddaten entsprechend an. (Ärgerlich, wenn Sie das Transformationsattribut tatsächlich beibehalten möchten.)

Sie können also einfach den Pfad auswählen (stellen Sie sicher, dass es sich um den Pfad und nicht um die umgebende Gruppe handelt), die rechte und die linke Cursortaste drücken und fertig.

Thomas W.
quelle
1
Dies scheint für ein <g> -Element nicht zu funktionieren. Ich versuche, das Transformationsattribut loszuwerden.
Max Spring
5
Versuchen Sie vielleicht, zuerst die Gruppierung aufzuheben und danach die Gruppierung neu zu gruppieren.
Thomas W
1
Wow, hat wie ein Zauber funktioniert! Dies sollte die akzeptierte Antwort sein. Keine zusätzlichen Werkzeuge erforderlich, keine komplizierten Schritte. Andere Antworten funktionieren nicht, wenn der Pfad in einer Transformation verschachtelt ist <g>und ich die Transformation auf der beibehalten möchte <g>.
Tomékwi
Funktioniert auch nicht für einen Pfad, der mit dem
Kreiswerkzeug
1
Die beste Antwort. Möglicherweise ist eine Quelle der Verwirrung die Option Einstellungen> Transformationen> Transformationen speichern, die hier an anderer Stelle nicht erwähnt wird. Es sollte auf "optimiert" eingestellt sein. Dann werden nur die Gruppierung aufgehoben, verschoben, neu gruppiert und Blindgängertransformationen entfernt.
Mr5o1
13

Ich bevorzuge Inkscape, Affinity Designer hat mir (~ $ 40 / Mac) Stunden bei der Arbeit mit Android Vector Drawables erspart.

Öffnen Sie eine SVG, Datei -> Exportieren -> SVG -> Mehr -> Transformationen reduzieren hat hervorragend funktioniert.

Affinity Designer

Snodnipper
quelle
12

SVGO ist ein hervorragendes Open-Source-Befehlszeilentool für diese und eine Reihe anderer Optimierungen. Es gibt eine ebenso hervorragende Online-Web-Benutzeroberfläche namens SVGOMG

Die relevanten Optionen sind in diesem Fall moveGroupAttrsToElems(SVGOMG: Move group attrs to elements) zu bewegen transformAttribute von Gruppen Pfadelemente plus convertPathData(SVGOMG: Round/rewrite paths) abzuflachen transformin d.

Rob Hogan
quelle
1
SVGO ist unglaublich. Dies sollte wirklich die akzeptierte Antwort sein, zumal der Stackoverflow aus Sicht des Programmierers ist und dies bei weitem die beste Lösung für einen Programmierer ist, der eine Site mit SVGs entwickelt. Dies in Ihre Bereitstellungspipeline aufzunehmen ist viel besser, als Ihren Künstlern beizubringen, die Transformationen von Hand zu entfernen (oder es selbst zu tun) und jedes Mal, wenn sie es vergessen, einen Fehlerbericht zu erhalten
UTF_or_Death
3
Nur dass das nicht mehr funktioniert. Ich erinnere mich, dass es einmal besser funktioniert hat, aber siehe dieses Problem über genau diese Funktion github.com/svg/svgo/issues/624 für SVGO
morewry
9

Es sollte erwähnt werden, dass es in den Einstellungen den "Optimierten" Modus gibt:

Inkscape-Einstellungen> Transformationen> Speichertransformation> Optimiert

Was das Auftreten von transformAttributen so weit wie möglich minimieren soll (aber nicht).

Dies scheint ohnehin standardmäßig aktiviert zu sein.

Laut einer Diskussion ist ein Fall, in dem diesem optimierten Modus der Eifer fehlt, die Größenänderung der Seite . Dadurch wird eine translateTransformation auf das Ebenenelement angewendet <g>. Es scheint, dass die Evakuierung der Kinder in eine andere Schicht derzeit die beste Lösung ist.

Evgeni Sergeev
quelle
2
Um die Größe der Seite zu ändern, ohne translateauf jeder Ebene störende Transformationen zu erstellen , öffnen Sie die .svgDatei in einem Texteditor und bearbeiten Sie die oben angezeigten Attribute für Höhe und Breite.
Februar
8

Inkscape hat die Option, die Transformationsdaten zu löschen, den Wert des Objekts jedoch unverändert zu lassen.

Wählen Sie in Inkscape das Objekt und das Menü "Pfad" "Vereinfachen". Jetzt werden die Transformationen entfernt.

Kumar
quelle
15
Dadurch wird jedoch der Umriss Ihrer Pfade geändert und die Anzahl der Scheitelpunkte in komplexen Formen verringert.
Charlie
1
Dies macht das Markup oft größer als vor den Transformationen.
Charlie
6

In diesem Fall addieren Sie einfach die Übersetzung zu den m-Werten für jedes Kind, also -10,254587 + 10,75 = -0,504587 und -308,96875 + 345,43597 = 36,46722.

Da alle Begriffe im Beispiel relativ sind (dh Kleinbuchstaben), ist das alles. Wenn irgendwelche absolut (Großbuchstaben) wären, z. B. M oder C, müssten sie ebenfalls angepasst werden.

Für die Skalierung würden Sie grundsätzlich alle untergeordneten Werte mit der Skalierung multiplizieren.

Robert Longson
quelle
Ich habe das getan, aber im Inkspace XML-Editor (oder einem anderen Editor) wird die Transformation noch hinzugefügt. Seltsam.
entkommen Katze
1
Auf welche Weise würden Sie C einstellen, wenn Sie die 2 Unterpfade hätten, z. B. M 8,0 12,0 C 11,3 13,1 14,9 13,55 16,0 13,0 C 2,4 9,8 2,8 10,2 8,0 12,0 C 7,6 7,8 7,6 8,1 5,0 9,0 und M 3,0 5,0 C 2,4 5,5 3,3 6,4 5,0 7,0 Welche Sie möchten sich in einen Pfad verwandeln?
Setup
@Anton Verwenden Sie die Schaltfläche Frage stellen , wenn Sie eine Frage haben, die von den vorhandenen Antworten nicht abgedeckt wird. Es ist schwierig, in Kommentaren zu fragen und zu antworten, da nur sehr begrenzte Formatierungen verfügbar sind.
Robert Longson
2
@ RobertLongson Nun, Sie haben es abgedeckt. Alles, was ich mir wünsche, ist, dass Sie näher erläutern: "Wenn irgendwelche absolut (Großbuchstaben) wären, z. B. M oder C, müssten sie ebenfalls angepasst werden."
Setup
5

Um das Transformationsattribut aus einem gElement (einer Gruppe) in Inkscape zu entfernen , können Sie die Gruppe an ihren endgültigen Platz verschieben, die Gruppierung aufheben und dann alle Elemente neu gruppieren. Jetzt wurde eine neue Gruppe erstellt. Wenn Sie sie nicht erneut verschieben, wird ihr kein Transformationsattribut zugeordnet.

mcnesium
quelle
5
  1. Wählen Sie die betreffenden Elemente aus
  2. Objekt> Gruppierung aufheben (wiederholen, bis die Gruppierung aufgehoben ist; verschachtelte Knoten siehe XML-Editor)
  3. Pfad> Objekt zu Pfad (konvertiert Polygone in Pfade)
  4. Objekt> Transformieren> Relative Bewegung deaktivieren> Übernehmen
Charlie
quelle
Scheint in Inkscape 0.91 nicht zu funktionieren. Das <g>mit dem transformAttribut bleibt so wie es war. Auch mein Objekt (genau wie das in der Frage hier gezeigte) ist bereits ein Pfad.
ODER Mapper
Können Sie einen Link zu Ihrer SVG einfügen?
Charlie
4

Wenn hier jemand landet und in Sketch 3 nach einer Lösung sucht, wählen Sie die Ebene aus und klicken Sie dann auf Ebene-> Pfade-> Reduzieren.

Joel Worsham
quelle
3

Fand es:

  • Stellen Sie die gewünschte Seitengröße ein *
  • Wenn Ihre aktuelle Ebene eine Transformation aufweist (überprüfen Sie dies mit dem XML-Editor, es ist die oberste Gruppe unter dem SVG-Element), erstellen Sie eine neue Ebene und verschieben Sie alle Objekte dorthin
  • Gruppierung aufheben (dies wird möglicherweise nicht benötigt, YMMV)
  • Wählen Sie alle Objekte aus und wenden Sie eine Nulltransformation an (z. B. Skalierung um 100% 100% oder Pfeil rechts + Pfeil links), während Sie die Speichertransformation ausführen: Optimiert in Einstellungen / Transformationen
  • Wenn Sie Gruppen rückgängig machen mussten, können Sie sie jetzt neu gruppieren
  • Speichern Sie eine Kopie als optimiertes SVG und stellen Sie die gewünschte numerische Genauigkeit ein

*: Oder platzieren Sie die Objekte zumindest dort, wo Sie sie benötigen, relativ zur oberen linken Ecke der Seite. Es ist bedauerlich, dass SVG-Koordinaten auf die obere linke Ecke verweisen, während Inkscape die Größe der Seite relativ zur unteren linken Ecke ändert!

Tobia
quelle
Ich brauchte den Trick "Auf eine andere Ebene verschieben", da sich die Transformation, die ich nach unten drücken wollte, auf dem <g> einer Ebene befand. Das Koordinatensystem von Inkscape ist ziemlich nervig.
Mutant Bob
3

Ich konnte eine matrix(...)Transformation (aufgrund von Spiegelung) entfernen, indem ich den Pfad mit einem Rechteck kombinierte und dann die Knoten des Rechtecks ​​entfernte. Der translate(...)Teil blieb jedoch.

Emily L.
quelle
Dies ist die einzige Lösung, die ich auch gefunden habe. Kombinieren Sie mit einem neuen sauberen Pfad und entfernen Sie dann das unnötige Teil.
Márton Tamás
2

In meinem Fall hat das Speichern als optimiertes SVG das Problem gelöst. Verwenden Sie also in Inkscape:

Datei -> Speichern unter ... -> Optimierte SVG.

Michał Stochmal
quelle
Was war übrigens dein Problem? Ich kam hierher, nachdem ich alles versucht hatte. Das Problem besteht jedoch weiterhin.
Sahu V Kumar
@VishalKumarSahu Ich konnte mein Android App-Symbol (SVG) nicht als Asset importieren, da das transformAttribut von Android Studio nicht unterstützt wird.
Michał Stochmal
Ja, und das ist auch im Web so. Die Transformation verursacht Probleme bei der Ausgabe, ist jedoch bei der Anordnung von Objekten als Gruppe sehr hilfreich. Ich muss Berechnungen durchführen, um den Zweck zu lösen.
Sahu V Kumar
2

Dies funktioniert, wenn Sie Inkscape verwenden:

  1. Alles auswählen und Gruppierung aufheben
  2. Speichern unter "Optimiertes Svg (* .svg)"

In allen Fällen, die ich versucht habe, wurden dadurch alle Transformationsattribute entfernt. Ich bin mir nicht sicher, ob es für komplexere SVG funktioniert.

Max888
quelle
1

Ich habe die hier veröffentlichte Lösung ausprobiert, nämlich die Gruppen-Tags in der SVG-Datei zu entfernen und in Inkscape (in meinem Fall 0.48.3.1) erneut zu öffnen. Leider wurden die Gruppen-Tags wieder angezeigt, nachdem ich die Pfade erneut im Auswahl- und Transformationsmodus (F1) übersetzt und gespeichert hatte! Inkscape speichert alle auf den Pfad angewendeten Transformationen in einem umgebenden Gruppenelement. Wenn Sie nicht das Pfadknoten-Auswahlwerkzeug (F2) verwenden, drücken Sie Strg + a und verschieben Sie die Knoten des Pfads an die richtige Stelle. Nachdem ich dies stattdessen getan und danach gespeichert hatte, fügte Inkscape die Gruppen-Tags nicht hinzu, da diese Übersetzung direkt auf das Pfadmodell angewendet wurde. Hoffe das hilft.

Skadi2k3
quelle
1

In meinem Fall werden die Gruppen tatsächlich durch Ebenen verursacht. Durch das Löschen aller Ebenen im Dokument wurden die Gruppe und die Transformation entfernt (möglicherweise kombiniert mit dem Aufheben der Gruppierung von Objekten und dem Umgruppieren von Objekten usw. wie unter Entfernen von Transformationen in SVG-Dateien (Antwort-35490189 von @Charlie oben)).

Jamie Pate
quelle
0

Mein spezifisches Problem waren Symbole, die außerhalb der Seite definiert wurden, sodass eine Transformation auf der Seite angezeigt werden musste.

Um die Symbole auf die Seite zu verschieben, ohne dass eine Transformation erforderlich ist, musste ich in Inkscape die folgenden Schritte ausführen:

  1. Öffnen Sie das Symbolfenster (Umschalt + Strg + Y).
  2. Entfernen Sie das Symbol aus der Dokumentbibliothek. (Dafür gibt es einen Knopf im Fenster.)
  3. Jetzt wird die Grafik im Dokument außerhalb der Seitengrenze angezeigt.
  4. Gruppieren Sie die Grafik auf. (Dies ist ein wichtiger Schritt!)
  5. Verschieben Sie die Grafik innerhalb der Seitengrenze.
  6. Fügen Sie die Grafik wieder zur Symbolbibliothek hinzu.
Peter
quelle
0

Dies scheint zufällig zu sein, aber nichts anderes, was ich versucht habe, hat funktioniert, also gehst du zufällig zu einer anderen Person. Einige meiner Pfade hatten eine Art Rand, der nur bei der Auswahl sichtbar war ( Beispiel). Ich denke, dies wurde erstellt, als ich eine Ebene aus einer anderen Inkscape-Datei eingefügt und um 90 Grad gedreht habe. Dies führte dazu, dass eine Musterfüllung auf den Formen eine andere Transformation aufwies (Linien, die weiter voneinander entfernt waren). Außerdem wurden Ausrichtungsobjekte nicht wie erwartet ausgeführt. Die Verwendung der von @Piotr_cz erwähnten Apply Transform hat das Transformationsproblem behoben, aber der seltsame Rand blieb bestehen. Ich habe es versehentlich beseitigt, indem ich die Unschärfe beim Strich auf einen beliebigen Wert geändert und wieder auf Null gesetzt habe.

Jim
quelle
0

Irgendwie hatte ich mit keinem der Ansätze Glück. Wenn es <defs>in Ihrem SVG einen Abschnitt gibt und solche Verwendungen:

<g transform="matrix( *** ) "><use xlink:href="#***"/></g>

Möglicherweise müssen Sie alle Verwendungen löschen und alles aus dem Abschnitt defs entfernen. Dann können Sie inkscape verwenden, um alles richtig zu platzieren und dann Transformationen mit dem genannten Plugin anzuwenden. Hoffe es hilft jemandem.

k102
quelle
0

Ich habe dieses Problem seit Jahren. Die Lösung besteht eindeutig darin, dynamisch mit Transformationen im Browser spielen zu können, wenn dies in inkscape nicht "behoben" wird.

Ein Benutzer Mc in den Inkscape-Foren gab mir diese Lösung .

Die Lösung erstellt die aktuelle Transformation zwischen einem SVG-Element und seinem SVG-Stammelement und gibt dann einen vollständigen Satz von BBox-Informationen basierend auf der Summe der Transformationen zurück.

Es wäre auch möglich, leicht zu ändern, auf welches Element sich die Berechnungen beziehen, wenn Sie im Browser zwischen zwei Teilen derselben SVG-Datei arbeiten möchten.

Endlich kann ich tatsächlich ein schwenkbares SVG-Ansichtsfenster haben.

Jay Day Zee
quelle
0

Inkscape 1.0 auf Kubuntu 20.04

Obwohl dieser Thread ziemlich alt ist, möchte ich meine Erfahrungen / Lösungen veröffentlichen. Ich bin auf dieses Problem gestoßen, als ich versucht habe, eine Vorlage für die TechDrawing-Workbench von FreeCAD zu erstellen. Diese Vorlagen dürfen keine Transformationen enthalten.

In meinem Fall musste ich ein Firmenlogo aus einer externen .svg-Datei hinzufügen (vollständig mit Inkscape erstellt). Dieses Logo enthält sowohl Grafik- als auch Textelemente. Beim Kopieren dieses Logos in die Vorlage wurden Transformationen erstellt, die dazu führten, dass die Vorlage in FreeCAD nicht richtig funktionierte.

  • Erstens funktioniert diese auf www.freecadweb.org / ... vorgeschlagene Lösung bei mir nicht. Deshalb habe ich im Internet gesucht und diese Diskussion gefunden.

  • Zweitens hat keine der oben vorgeschlagenen Lösungen für mich funktioniert, aber sie haben mich auf den richtigen Weg gebracht. Charlies Antwort kam nahe, aber Objekt> Transformieren> Relative Bewegung deaktivieren> Anwenden zeigte keinen Unterschied.

Was für mich funktioniert hat war:

  1. Wie von anderen erwähnt, gruppieren Sie alles auf.
  2. Konvertieren Sie Textobjekte in Pfade - das schien in meinem Fall unerlässlich zu sein!
  3. Löschen Sie alle vorhandenen Transformationen im XML-Editor und beobachten Sie, was mit den zugehörigen Objekten passiert. In meinem Fall haben die entsprechenden Elemente ihre Position geändert.
  4. Korrigieren Sie diese Änderungen manuell, gruppieren Sie jedoch nichts.
  5. Als normales SVG speichern (normal = keine Optimierung oder andere spezielle Einstellungen wurden verwendet)

Funktioniert gut, wenn ich diese Vorlage in FreeCAD verwende.


Ein seltsames Detail: Obwohl meine Lösung besagt, dass Textelemente in meinem Fall das Problem waren, kann es nicht so einfach sein. Tatsächlich enthält das Basisdokument (das, in das ich das Logo kopiert habe) viele Textelemente, und ich habe keines davon konvertiert. Es könnte sich also um die Kombination von "externer Quelle" und Textelementen handeln. Ich poste dieses Detail lediglich als Hinweis für andere, die möglicherweise damit verbundene Probleme haben.

Mr.Bum
quelle