Linie definierter Länge zeichnen
  • LinieOleum Februar 2016
    Hallo miteinand',

    erst einmal den Inkscape- Machern ein dickes Kompliment! Und Danke!

    Meine Frage: Wie zeichne ich eine exakt waagerechte Linie mit definierter Länge (etwa wie es in CAD- Programmen üblich ist: Orthomodus, Länge per Zahlenwert eingeben)?

    Das Einrasten mit Steuerungstaste hilft ja schon, aber das exakte Maß?

    Ich habe als Umweg versucht, über "Höhe" und "Breite" wenigstens nachträglich das Maß exakt einzustellen. Aber spätestens bei der 3. Linie funktioniert das auch nicht mehr, da Inkscape dann alle Linien als Pfad interpretiert und die Gesamtbreite und -höhe angezeigt wird...

    Ich hoffe, es kann mir jemand helfen.

    Mit freundlichen Grüßen

    LinieOleum
  • Moini Februar 2016
    Hallo LinieOleum,

    Du könntest ein Gitter verwenden und daran einrasten, wenn Du nur Werte hast, die sich mittels eines Gitters darstellen lassen. Oder Du kannst Führungslinien an bestimmten Punkten platzieren und an denen einrasten.

    Das Bézier-Werkzeug hat auch einen Nur-Senkrecht-oder-Waagerecht-Modus (siehe Werkzeugleiste).

    Wenn Du alle Linien in einen einzigen Pfad zeichnest, funktioniert es leider auch nicht mit dem ganz exakten 'Transformieren'-Dialog - der wäre für einzelne Linien gut geeignet. Du könntest die Linien auch erst nach dem Zeichnen miteinander verbinden, dann ginge es auch so.

    (wenn Du zu einer der o.g. Möglichkeiten mehr Anleitung haben möchtest, sag Bescheid - ich habe erstmal eine Brainstorming-Liste gemacht ;) )

    (die Inkscape-Macher lesen Dein Lob hier leider nicht, dieses Forum ist unabhängig vom Projekt)
  • LinieOleum März 2016
    Hallo Moini,

    Danke für Deine Tips.

    Habe ich das richtig verstanden, meinen eigentlichen Wunsch, die Linienlänge numerisch einzugeben, kann ich vergessen?

    Deine Ideen kann ich umsetzen, Danke für das Angebot, mich "an die Hand" zu nehmen.

    Lediglich das Zeichner "einzelner Linien" schaffe ich nicht.

    Entweder verbindet Inkscape die Linien zu einem Pfad (wenn ich gleich weiter zeichne), oder aber die Snap- Funktion funktioniert nicht (wenn ich zwischendurch bewußt ein anderes Werkzeug anwähle), was mach ich da verkehrt?

    Mit freundlichen Grüßen

    LinieOleum

  • Linienlänge numerisch? Äh tja - Inkscape ist kein CAD-Zeichenprogramm.
    Eine Linie beendest Du mit Rechtsklick oder der Eingabetaste. Warum das Einfluss auf die Einrastfunktion haben soll ist mir neu.
    Ein Beispiel was Du gerne zeichnen möchtest wäre hilfreich.

    Gruß
    Frank

    PS: Wo kommt dieser riesige Leerraum unter Deinem Kommentar her?
  • Moini März 2016
    Habe ich das richtig verstanden, meinen eigentlichen Wunsch, die Linienlänge numerisch einzugeben, kann ich vergessen?

    Du kannst einen echt horizontalen oder vertikalen Pfad auch durch Zahleneingabe im Transformieren-Dialog (oder einfach oben mit den Eingabefeldern des Auswahlwerkzeugs) verlängern oder verkürzen.

    Der Transformieren-Dialog ist aber glaube ich exakter. (Objekt -> Transformieren oder Shift+Strg+M)
  • ibu März 2016
    Eine horizontale Linie kann durch manuelles Eingeben von Werten im XML-Editor erzielt werden.

    Zeichne Dir einfach eine Dummylinie mit dem Werkzeug "Draw Bezier Curves and straight lines".
    Also Startpunkt mit Klick, Endpunkt mit Doppelklick.

    Dann öffnest Du den XML-Editor "Edit > XML Editor".

    Dort siehst Du die numerischen Angaben zum Element Path.

    Es handelt sich um Nummernpaare.

    Beispiel:
    m 10,10 100,0
    (Default Preferences: Edit > Preferences > Input/Output > SVG Output > Path Data > Optimized > [ ]Force repeat commands)

    Mir leuchtet noch nicht ein, wie bei Inkscape die Angaben im XML-Editor mit jenen Angaben zu horizontalen und vertikalen Koordinaten in der Toolbar korrespondieren.
    Bei "y" wird z.B. "89,500" angezeigt.
    Da können vielleicht die hier mitlesenden Experten was zu sagen, ich stehe selber mit Inkscape ganz am Anfang.

    Klarerer Quelltext für eine gerade waagerechte Linie mit dem Element path:

    <?xml version="1.0"?>
    <svg xmlns="http://www.w3.org/2000/svg">
    <defs><style type="text/css"> [d*="h"] { stroke: red; stroke-width: 3; } </style></defs>
    <path d="M 10,10 h 100" />
    </svg>

    URL zu meinem Testdokument: http://borumat.de/+svg/horizontal-line.orig.svg

    Übersetzt in Aktionen heißt das:
    Setze einen Startpunkt an der absoluten Position x1=10 y1=10.
    Zeichne eine gerade Linie bis x2=x1+100 y2=y1, behalte y also bei.
    In der Stilregel habe ich den Attributselektor verwendet. So kann eine zusätzliches Attribut "Class" in Path entfallen. Es werden alle Pfade getroffen, die das "Lineto Command" "h" enthalten.
    Analog dazu könnten vertikale Linien z.B. in einer anderen Farbe gestaltet werden.

    https://www.w3.org/TR/SVG/paths.html#PathDataLinetoCommands

    Aber Inkscape schreibt das "Horizontal Lineto Command" "h" um in eine äquivalente Pfadangabe.

    Sehr schön herumspielen mit allen SVG "Vokabeln" und der gesamten Syntax kann man z.B. in einem Online-Tool:
    http://oreillymedia.github.io/svg-essentials-examples/ch04/basic-lines.html

    Das Buch "SVG Essentials" kann ich übrigens sehr empfehlen.

    Zusammengefasst, @LinieOleum:
    Der Orthomodus, den Du aus CAD-Programm kennst, kann perfekt mit den horizontalen und vertikalen Lineto-Anweisungen in SVG umgesetzt werden.

    Diese Lineto-Anweisungen kannst Du im Editor verwenden.
    Inkscape schreibt sie in äquivalente Pfadangaben um.

    Beispiel:
    m 10,10 h 100
    wird bei "Edit > Preferences > Input/Output > SVG Output > Path Data > Optimized > [ ]Force repeat commands" zu
    m 10,10 100,0

    m 10,10 h 100
    wird bei "Edit > Preferences > Input/Output >
    SVG Output > Path Data > Optimized > [x]Force repeat commands"
    zu
    m 10,10 l 100,0


  • LinieOleum März 2016

    Hallo ibu,

    das ist genau, was ich machen möchte - im Prinzip. Ich hätte mir auch nicht vorstellen können, da - wenn ich es richtig verstanden habe - Vektorgrafiken aus nichts anderem als Gleichungen aufgebaut sind, daß Linien sich nicht mit Zahlenwerten beschreiben ließen.

    ABER, wenn für eine einfache Linie so viel Quelltext nötig ist, wird das ja völlig unpraktikabel. Ich hatte mir vorgestellt, z.B. den Anfangspunkt an einer vorhandenen Zeichnung per Maus einrasten, Richtung bestimmen, die meinetwegen 100 eingeben, fertig. Oder auch noch die 10,10 h 100 in eine Maske schreiben -> OK.

    Wäre es denn vielleicht denkbar, über ein Makro oder PlugIn den Rest erledigen zu lassen?

    Und wo muß ich denn den von Dir aufgeführten "Quelltext" eingeben? Im XML- Editor kann ich ja scheinbar nur vorhandene Elemente abändern, oder?

    Fragen über Fragen... Gruß

    @ Moini: Der Transformieren-Dialog verlängert die Linie nach beiden Seiten, das nützt mir leider nichts.
    @  Frank Beckmann: Wie schon gesagt, Vektorgrafiken sind doch nichts anderes als Formeln und Zahlen, warum sollte so ein sinnvolles Feature nicht vorhanden sein/ implementiert werden?

    LinieOleum
  • Ich habe überhaupt keine Einwände gegen irgendwelche Features (Sketchup funktioniert so - hat aber auch einen CAD-Kernel). Nur wie Du und Ibu an die Sache - also das eigentliche Zeichnen herangeht  - ist soweit weg von meiner Arbeitsweise wie ein Postscriptdrucker von einer Palette mit frisch aufgesetzten Ölfarben. Ratet was ich benutze.  :P

    Gruß
    Frank
  • ibu März 2016
    @LinieOleum
    Ich kann Dir leider zu geschickter Bedienweise von Inkscape nicht helfen, da ich selber völlig am Anfang stehe und es von der Lernreihenfolge vorziehe, erstmal die SVG-Spezifikation zu verstehen. Eine Ideologie ist da in keiner Weise dahinter. Es gibt soviele Arten, in ein Gebiet einzusteigen.
    Und frisch aufgesetzte Ölfarben mag ich auch :)

    Übrigens fand ich meinen Quelltext für die Linie sehr prägnant :)
    Ich würde sogar wagen zu behaupten, dass kein prägnanterer möglich ist.

    Viel Erfolg!
  • ibu März 2016
    @Tobias

    In der SVG-Spezifikation wird das Element style in diversen Beispielen als Kind des Elementes defs gesetzt.

    Leuchtet Dir ein, warum?

    Kann man das Element style nicht als direktes Kind von svg setzen?
  • tobiastobias März 2016
    > Leuchtet Dir ein, warum?

    Dazu kann ich nichts sagen. Da bisst du bereits tiefer im Thema als ich.

    Der Mann, der sich sicherlich am besten mit dem Standard und Inkscape auskennt ist Tavmjong Bah:
    http://tavmjong.free.fr/blog/

    Er ist in der SVG Working Group und Inkscape Entwickler. Wenn du also keine Antwort findest, einfach mal nachfragen.
  • ibu März 2016
    Danke für den Hinweis auf Tavmjongs Blog, Tobias. Das gibt interessante Einblicke.

    Erstmal muss ich noch die Spezifikation besser verstehen, aber später werde ich bestimmt mal schreiben.

    Fast hätte ich Deine Antwort übersehen, weil die Software dieses Forums keine Mail-Benachrichtigungen versendet.
    Gibt es besondere Gründe, dass hier keine Standard-Foren-Software eingesetzt wird?

  • tobiastobias März 2016
    Weil unser Admin sie damals besser fand.
  • Ich wüsste immer noch zu gerne was ihr so zu zeichnen gedenkt. Irgendein Beispiel verfügbar?

    Gruß
    Frank

Hey Fremder!

Sieht so aus als wenn du neu hier bist. Wenn du mitmachen willst, drücke einen dieser Buttons!

In dieser Diskussion