Fehlerhafte Knoten-Griffe automatisch finden
#21
hallo Asterix,

(13.06.2024, 22:59)asterix schrieb: ...PS: Die Richtung wäre dann in einem relative engen Winkel zu beschreiben, weil ja ein Knoten auch nicht immer ganz genau richtig aus der Kurve heraus/hineinschaut. Aber er sollte eben z.B. nicht zwischen 0° und 5° oder 10° zurückschauen...

Du bleibst sehr im Ungefähren!
Viel Text nichts konkretes.

Nehmen wir an, das Makro hat bei folgendem Knoten einen Kontrollpunkt-Winkel von 315° ermittelt:
[Bild: Zwischenablage01.jpg]

wie geht es dann weiter? mit welchem Winkel soll der Kontrollpunkt-Winkel verglichen werden?

Gruß

Koter
Zitieren
#22
Hallo - wie erwähnt versuche ich ja schon, mit begrenztem Fachwissen, so gut es geht das Problem zu beschreiben Smile.

Um so einen falschen Knoten nachzustellen, kann man Folgendes machen:
- neue CorelDraw-Datei
- mit Freihand-Tool eine Linie zeichnen
- fürs bessere Anschauen: diese Linie mit einer Umrissbreite versehen (wenige mm) und das Linienende als runde Kappe
- nun hat man eine Linie mit Start- und Endknoten. Der Startknoten hat einen Griff, der in die Linie zeigt, der Endknoten hat auch einen Griff, der in die Linie hinein zeigt. Die Dreiecke zeigen beide in die gleiche Richtung (=Kurven-Richtung)
- um das Problem zu erzeugen, nehme ich nun den Griff des Endknotens und ziehe ihn am Endknoten vorbei, damit der auf der anderen Seite des Endknotens ist, dann mache ich ihn ganz kurz, dass er kaum noch zu sehen ist, aber er ist weiterhin auf der falschen Seite
- der Endknoten (das Dreieck) hat sich nun natürlich auch gedreht, nämlich fälschlicherweise nach innen

Nun sind wir bei den beiden Bildern angekommen, die ich anfangs gezeigt hatte:
https://forum.juergens-workshops.de/show...#pid172655

Das erste Bild zeigt den falschen Endknoten, wie oben gerade reproduziert.

(Ich vermute nun einfach, dass es in CorelDraw immer eine bestimmte Kurvenrichtung gibt, dass es also so sein sollte, dass die beiden Dreiecke (Start/Endknoten) in die gleiche Richtung weisen sollten, dass also der Fall oben ein Fehler ist.)

Ich habe also einen Fehler im Endknoten, und zwar einmal, dass er in die falsche Richtung schaut, und dann ist auch noch der Griff sehr kurz. (Den kurzen Griff können wir aber mal so lassen, weil der nicht das eigentliche Problem ist, daran habe ich es aber erkannt.)

Jetzt kommen wir zum Winkel. Mit dem Winkel meinte ich, dass ja der Endknoten um 180° (plus minus) verdreht ist. Er muss also um 180° gedreht werden. Nun gibt es natürlich das Problem, dass, wenn man nah genuig ranzoomt, die Kurve immer "richtig herum" in den Endknoten hineingeht, im Notfall als ganz kleine enge Kehrtwende. Man müsste also die letzen paar Millimeter des Kurvenendes als Referenz heranziehen und dadurch sagen, was die Kurvenrichtung am Ende der Kurve ist. Auf diese Richtung bezogen muss der Endknoten dann den richtigen Winkel haben. Ich weiß nicht, wie CorelDraw das technisch intern berechnet, aber z.B. wäre ein korrekter Endknoten in Bezug auf die letzten Millimeter der Kurve zu 0° ausgerichtet, der falsche zu +/- 180°.

Nun war es wieder viel Text und wenig Sinn, aber ich hab es mal versucht Smile.
Falls ich einfach auf dem Holzweg bin, weil das mathematisch so nicht geht, dann ist es auch ok.

Betriebssystem / Grafik-Software: Windows 10, CorelDraw Suite 2023
Zitieren
#23
hallo Asterix,

kannst Du mir eine CDR-Datei anhängen, die solche Kurven enthält (aus Deinem SVG-Import).
Wichtig ist, dass du Sie als X7 Datei speicherst (Version 17), sonst kann ich sie nicht öffnen.

Gruß

Koter
Zitieren
#24
Hallo, ich kann die Dateien aufgrund der Nutzungsrechte nicht weitergeben, aber ich habe wirklich zuletzt einfach wie oben beschrieben einen einzigen einsamen Strich angelegt und dann eben den Endknoten rumgedreht. Das zeigt genau, wo das Problem zu finden ist. Siehe eben mein Bild und die Beschreibung.

Allerdings habe ich auch noch viele weitere Problemchen entdeckt (z.B. doppelt erzeugte Knoten eng beieinander, beim Reduzieren der Knotenzahl), und ich muss generell sehr viel nacharbeiten. Das sieht nach Arbeit aus Smile.

Das heißt eigentlich für mich, dass wie so oft im Leben eine einfache automatisierte Lösung dann nicht geht. Denn selbst wenn ich z.B. die Endknoten entdecke, muss ich ja trotzdem je Endknoten dann einzeln per Maus entscheiden, ob er nach ggf. automatischer Korrektur auch so aussieht, wie ich möchte.

Langer Rede kurzer Sinn, und wie auch schon ein paar Mal angedeutet, ich denke, ich muss einfach schauen, dass ich bessere Daten importiere Smile.

Betriebssystem / Grafik-Software: Windows 10, CorelDraw Suite 2023
Zitieren
#25
hallo Asterix,

OK, dann wünsche ich viel Erfolg und wenig „kaputte Endknoten“
Schönes Wochenende!

Gruß

Koter
Zitieren
#26
Hallo und danke. Vor allem aber: nochmals herzlichen Dank für das Makro, das du weiter oben hier im Thema eingefügt hattest. Ich kenne mich mit Makros bisher nicht aus und habe es im ersten Anlauf gar nicht starten können. Nun habe ich es aber nochmal versucht und konnte es sogar als Symbol-Schaltfläche anlegen Smile.

Ich finde das schon sehr praktisch, danke. Aber genau dadurch habe ich jetzt doch nochmal gedacht, wie hilfreich es wäre, genau so ein Makro wie das von dir erstellte eben für die "Richtung der Endknoten" zu haben. 

Hier hatte ich es ja beschrieben:
https://forum.juergens-workshops.de/show...#pid172675

Im Grunde geht es nur darum, wenn man nicht nah ranzoomt und sich die Pfeile anschaut (Start/Endknoten), dann sieht man ja in der Regel, dass die in die gleiche Richtung schauen bzw. einmal rein in die Kurve und einmal raus aus der Kurve. Rein optisch sieht man es also. Und rein manuell kann man den Endknoten dann im Zweifel einfach rumdrehen, klar.

Geht das ähnlich wie mit dem von dir erstellen Makro vielleicht doch auch in der Form, dass man mathematisch irgendwie analysieren kann, ob der Endknoten richtig herausschaut aus der Kurve, in Bezug auf den letzten z.B. 1/10 mm oder 1/5 mm ? Das und die Korrektur = 180° Drehung wäre wirklich eine sinnvolle Funktion in CorelDraw.

Betriebssystem / Grafik-Software: Windows 10, CorelDraw Suite 2023
Zitieren
#27
hallo Asterix,

ich habe jetzt leider wenig Zeit zum programmieren,
es kann also dauern.

(16.06.2024, 15:23)asterix schrieb: ...in Bezug auf den letzten z.B. 1/10 mm oder 1/5 mm ? Das und die Korrektur = 180° Drehung...

Ich kann leider wieder nur raten was Du meinst. (1/10 mm von was?)

Ein Makro kann einen Steuerpunkt um 180° drehen:

[Bild: Steuerpunkt1.gif]

Ein Steuerpunkt (oder Kontrollpunkt) hat Koordinaten, einen Winkel und eine Länge.
Wie Du siehst, ändert jede Bewegung eines Steuerpunktes den Kurvenverlauf.
Auch eine 180° - Drehung bewirkt das. Willst Du das wirklich automatisiert machen?

Wenn ja, beschreibe bitte genau unter welcher Bedingung.
(„In die Kurve schauen“ oder ähnliche Formulierungen verstehe ich leider nicht, dazu bin ich zu doof.)

Ich würde gerne wissen mit welcher Software Deine SVGs erzeugt werden.
Vielleicht gibt es einen besseren Weg als es per Makro zu flicken.

Ich will Dich nicht abwimmeln, Du musst aber Geduld haben.

Gruß

Koter
Zitieren
#28
Hallo und danke für deine Mühen schon bisher. Ich hänge mal ein Beispielbild und eine Datei an, hoffe, sie ist richtig in deinem Format gespeichert. Darin einige falsche Endknoten. Das Tool, das vorher benutzt wurde, ist Clip Studio Paint, aber ich habe von dort schon erfahren, dass das einfach so ist. Da werde ich natürlich wie erwähnt auch noch Verbesserungen vor dem Import anstreben, aber ich denke, man muss immer nacharbeiten in CorelDraw. Und wie erwähnt läuft es sicher am Ende darauf hinaus, dass man trotzdem jede Kurve anschaut. Aber ich entdecke einfach gerade den Vorteil von Makros in CorelDraw und wollte hier nochmal nachfragen.

Also, im Beispielbild sieht man eine Kurve, die einen falschen Endknoten (oder ggf. Startknoten je nach Kurve und Perspektive?) hat. Jeder, der die Kurve so sieht, würde sagen, der Endknoten ist halt falsch herum. Aber klar, wenn man ganz nah ranzoomt, dann geht natürlich die Kurve trotzdem nicht in die Spitze des Dreiecks des Endknotens, sondern richtig in den Endknoten. Aber auf die Kurve gesehen ist der falsch herum.

Man müsste also (Bild unten rechts) einige Zehntel Millimeter (=mein 1/10mm oben) vom Endknoten zurückgehen in die Kurve und dann schauen, ob er richtig liegt (z.B. 0°) oder falsch (z.B. 180°).

Das Drehen um 180° in deinem Makro sieht ja schon vielversprechend aus, das funktioniert also schon. Jetzt müsste man nur noch eine Kurve vorher analysieren, indem man eben ganz wenig Strecke zurück missst - aber nicht zu wenig (Bild unten links), denn wenn man immer weiter zoomt und misst, dann ist wie gesagt der Endknoten ja gar nicht verdreht. Man müsste also die erwähnten Millimeter der Kurve zurückgehen, damit die Kehrtwende (Bild unten links) keine Rolle mehr spielt, sondern nur das Rechteck (Bild unten rechts). Dann wüsste das Makro, ob der Endknoten falsch herum ist.

In der Tat: Nun gibt es ja nicht nur 180° genau verdrehte Endknoten. Daher könnte man einen Spielraum lassen, ich denke z.B. zwischen 165° und 195° oder enger. Wenn der Endknoten in diesem Winkelbereich falsch in Bezug auf die letzten 1/10mm der Kurve liegt, dann müsste man ihn markieren, oder aber direkt korrigieren und diese Korrekturen markieren.

Zum Programmieren: Es eilt nicht, und es würde auch ohne Makro mit manueller Änderung gehen. Ich habe also keine Datei, die ich gerade dringend erledigen muss, sondern will das für die Zukunft (Jahre) wissen, weil es immer mal wieder auftauchen wird.


Angehängte Dateien Thumbnail(s)
   

.cdr   knoten.cdr (Größe: 24,42 KB / Downloads: 5)

Betriebssystem / Grafik-Software: Windows 10, CorelDraw Suite 2023
Zitieren
#29
Und doch nochmal ich... also je länger ich mit diesen importierten Dateien (SVG) arbeite, umso weniger glaube ich, dass ich da irgendetwas automatisiert lösen kann Smile.

Natürlich sind alle in diesem Thema angedachten Makro-Ideen irgendwie sinnvoll. Aber wenn ich mir doch nun die Kurven nach und nach einzeln anschaue, dann ist bei jeder Kurve eben was anderes zu korrigieren.

Eine Kurve hat einen Mini-Griff am Endknoten, eine andere einen Endknoten, der ungefähr 180° verkehrt herum ist, aber wieder andere Endknoten haben "nur" einen Endknoten, der in den letzten Millimetern einfach eine komische Biegung macht, und dann entweder falsch oder richtig rum endet.

Also ich hätte es eben einfach gerne, dass ich ein Makro nutzen kann Smile. Aber ich fürchte nun doch immer mehr, dass mir das auch nicht viel bringt.

Letzten Endes müsste das ein Makro sein, was von einer Kurve sowohl die letzten Millimeter extrem vereinfacht, also Knoten sogar wegnimmt und dann den Endknoten richtig dreht und dann auch noch eine eventuelle Kehrwende der Kurve mit Mini-Doppelkurve am Ende korrigiert und schlicht und einfach jede Kurve gegen Ende hin so bezüglich der Knoten gestaltet, wie man es eben beim Anschauen bei normalem Zoom vermuten würde.

Alles etwas schwierig und nicht umsetzbar.

Wie gesagt, das Makro mit den kurzen Griffen funktioniert ja schon ganz gut. Aber bei der 180°-Drehung brauchen wir ggf. doch nicht mehr weiterforschen, es sei denn es ist nun schon fertig Smile.

Betriebssystem / Grafik-Software: Windows 10, CorelDraw Suite 2023
Zitieren
#30
Und wenn ich noch länger darüber nachdenke Smile, dann wäre so ein Makro, das du ja oben schon gezeigt und erstellt hast, zum 180°-Drehen eines Knotens, eigentlich im Rahmen dieser manuellen Arbeiten durchaus eine große Hilfe. Dann hätte man in so einem Fall ein Makro, um kurze Griffe aufzuspüen und noch ein Makro, um die relevanten Knoten zu drehen. Also wenn du das schon erstellt hast, wäre das schon interessant mal auszuprobieren, falls es als Code in meiner Version funktioniert. Dein anderes Makro hat ja aber auch geklappt in meiner 2023 SE.

Betriebssystem / Grafik-Software: Windows 10, CorelDraw Suite 2023
Zitieren



Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Dokumentschriftarten finden und (einfach) ersetzen in CDR X6? Sascha B. 33 13.504 13.09.2024, 12:48
Letzter Beitrag: koter
Question QR-Codes automatisch generieren Lisa1992 1 265 31.05.2024, 07:02
Letzter Beitrag: Litschi
  Beim speichern Version automatisch auf alte Version stellen awitechnik 4 1.126 12.01.2024, 11:04
Letzter Beitrag: awitechnik
  Seriendrucktexte automatisch skalieren ben512 7 2.412 26.04.2023, 20:45
Letzter Beitrag: koter
  Textwerkzeug automatisch gedreht Nils 3 1.610 28.09.2022, 12:22
Letzter Beitrag: cutti
  Objekt aus Knoten mit Farbe füllen Spaceliner 7 1.836 02.08.2022, 10:11
Letzter Beitrag: Spaceliner
  2018: Knoten verbinden mtemp 6 2.646 26.04.2021, 07:28
Letzter Beitrag: norre
Star nicht verbundene Knoten Finden Karthagos 2 1.728 24.03.2020, 13:40
Letzter Beitrag: Karthagos
  Knoten mit Bedienfeld verschieben. chrisberlin 11 3.604 22.01.2020, 23:53
Letzter Beitrag: norre
  Landscape vs portrait druckformat nicht mehr automatisch siegbrunn 2 1.424 10.09.2019, 17:36
Letzter Beitrag: siegbrunn