B-Spline mit Kontrollpunkten und Polen

In diesem Forum Fragen und Diskussionen in Deutsch
Forum rules
Foren-Regeln und hilfreiche Informationen

WICHTIG: Bitte zuerst lesen, bevor Sie posten
User avatar
microelly2
Veteran
Posts: 4688
Joined: Tue Nov 12, 2013 4:06 pm
Contact:

Re: B-Spline mit Kontrollpunkten/Polen in FC.17

Post by microelly2 »

Ich hab hier mal vereinfacht deutsch beschrieben, wie Nurbs funktionieren.
https://freecadbuch.de/doku.php?id=blog:was_sind_nurbs

Die Draft Bspline Methode legt die Kurve so, dass die Interpolationspunkte mit den Knotenpunkten übereinstimmen.
Dadurch kann man diese Kurven schön ändern aber mitder Funktionalität vond Draft halt nur in 2D.

Sobald diese Kurven 3D sind, geht das nicht mehr so einfach.
Dafür hatte ich dann mal den Draft Bspline Editor geschrieben
Nurbs WB: Menu Nurbs -> "Edit DraftBSpline"

An nicht uniforme Knotenvektoren stößt man schneller als man denkt.
Wenn man aus mehreren Kurven (Wire) eine einzige BSpline machen will, muss man alle Register ziehen.
Ich hab das vor kurzem mal angefangen, da ist ziemlich viel Rechnerei drin und weit entfernt von einer GUI

Es gibt aber so eine einfache Regel,
Wenn man bei einer Kurve 3. Grades 3 Pole linear mit gleichen Abstand hintereinander hat, dann muss die Kurve durch den inneren Pol laufen.

hier mal ein Bild von unserem Schuhprofil, da sieht man diesen Trick.
bp_563.png
bp_563.png (115.27 KiB) Viewed 1957 times
Weil solche Sketch nicht mehr wirklich gepflegt werden können, benutze ich jetzt Hilfssketche, die schon mal die Vorarbeit machen.

https://youtu.be/cmmbOumfptA

Alles ziemlich komplex, ich hab schon viel gelesen, aber keine einfachere Lösung gefunden.
User avatar
hammax
Veteran
Posts: 1991
Joined: Thu Jan 19, 2017 5:03 pm
Location: Ammersee DE

Re: B-Spline mit Kontrollpunkten/Polen in FC.17

Post by hammax »

...angeregt durch die zahlreichen "blauen Maße" in mikroellys Bild habe ich nun mal versucht,
einen BSpline mit nur 4 Kontrollpunkten (also ohne Knotenpunkt) mittels Spreadsheet zu bändigen.
Zunächst im Sketcher eine Polylinie als Konstruktionslinie. Deren 4 Punkte bemaßt und in eine Spreadsheet eingegeben.
Die X und Y Maßconstraints mit (fx) an die Spreadsheet-Zellen geknüpft.
Dann einen Sketcher-Spline mit Fang der Kontrollpunkte auf die Polylinienpunkte gezeichnet.

Im ersten Anlauf lassen sich die Werte editieren.
Nur sobald man die Datei/(en) abgespeichert hat und das File schließt, kriegt die Spreadsheet beim nächsten Öffnen
den absoluten Alzheimer. FC.17.11586 . Liegt das am "neuen Sketcher-BSpline-Feature" oder an der "alten Spreadsheet".
Klar habe ich die die umfängliche Suche durchstöbert - und eher den Tenor gefunden, dass die Spreadsheet einer Aufmöbelung bedürfte.
SprS_Spline.PNG
SprS_Spline.PNG (65.62 KiB) Viewed 1936 times
User avatar
microelly2
Veteran
Posts: 4688
Joined: Tue Nov 12, 2013 4:06 pm
Contact:

Re: B-Spline mit Kontrollpunkten/Polen in FC.17

Post by microelly2 »

kannst du deine datei mal hochladen?
mir sind die namen nicht klar, auf die da zugegriffen wird.
User avatar
hammax
Veteran
Posts: 1991
Joined: Thu Jan 19, 2017 5:03 pm
Location: Ammersee DE

Re: B-Spline mit Kontrollpunkten/Polen in FC.17

Post by hammax »

...ich habe meine Spreadsheet auf SB umgetauft und die Spantenzellen sind:
s0x; s0y;
s1x; s1y ..usw.
Die eigentliche Absicht ist, den Rumpf / die Spreadsheet skalierbar zu rechnen.
Was mich stutzig macht, ist der Umstand, dass die Spreadsheet auch ihre Formatierung verliert.
Ich habe u.a. versucht separat zu speichern, einmal unter SpreadsheetWB und einmal unter SketcherWB.

Edit: Inzwischen ist bei mir FC.17.11608 drauf. Eine erneute Zellnamensvergabe und ein Abspeichern
unter SpreadsheetWB sowie SketcherWB hat jetzt offensichtlich Erfolg. Die Zellnamen bleiben erhalten.
In Git_Comparing.17 sehe ich einen jungen Eintrag von wwmayer zu Spreadsheet - war es das?
Attachments
SprSheet_1.FCStd
(9.1 KiB) Downloaded 43 times
Last edited by hammax on Tue Jul 18, 2017 6:13 am, edited 2 times in total.
UR_
Veteran
Posts: 1355
Joined: Tue Jan 03, 2017 8:42 pm

Re: B-Spline mit Kontrollpunkten/Polen in FC.17

Post by UR_ »

microelly2 wrote: Sat Jul 15, 2017 4:32 pm Wenn man bei einer Kurve 3. Grades 3 Pole linear mit gleichen Abstand hintereinander hat, dann muss die Kurve durch den inneren Pol laufen.
Ich soweit ich das verstanden habe, war der Workflow anders gedacht.
Meiner Meinung nach sollten einfach mehrere BSplines im Sketcher erzeugt werden, ähnlich dem Befehl "Create Line".
(Das Analogon zum BSpline ist also die Linie und nicht die Polylinie)
Dann wird der Endpunkt von Spline 1 mit dem Anfangspunkt von Spline 2 mit dem Befehl "Constraint coincident" verbunden.
Falls zusätzlich ein tangentialer Übergang erforderlich ist, dann mit dem Befehl "Constraint tangent" die Skizze zusätzlich einschränken.

Somit sind die Übergangsbedingungen 0. Grades (Position der Endpunkte) und 1. Grades (Steigunggleichheit an den Endpunkten) realisiert.
Die Übergangsbedingung 2. Grades (gleicher Krümmungsradius am Stoßpunkt) ist meiner Meinung nach noch nicht implementiert.

2017-07-17 17_15_42-FreeCAD.png
2017-07-17 17_15_42-FreeCAD.png (46.01 KiB) Viewed 1895 times
B-spline.FCStd
(4.29 KiB) Downloaded 39 times

EDIT:
Die Tangente in der Steigung einschränken geht natürlich auch

2017-07-17 18_35_14-FreeCAD.png
2017-07-17 18_35_14-FreeCAD.png (58.13 KiB) Viewed 1888 times
User avatar
microelly2
Veteran
Posts: 4688
Joined: Tue Nov 12, 2013 4:06 pm
Contact:

Re: B-Spline mit Kontrollpunkten/Polen in FC.17

Post by microelly2 »

Der Ansatz mit den zwei Kurven löst das Problem der Krümmungsstetigkeit nicht,
das bekommt man besser hin mit den drei hintereinanderliegenden Polen in EINER Kurve.
wmayer
Founder
Posts: 20309
Joined: Thu Feb 19, 2009 10:32 am
Contact:

Re: B-Spline mit Kontrollpunkten/Polen in FC.17

Post by wmayer »

Somit sind die Übergangsbedingungen 0. Grades (Position der Endpunkte) und 1. Grades (Steigunggleichheit an den Endpunkten) realisiert.
Die Übergangsbedingung 2. Grades (gleicher Krümmungsradius am Stoßpunkt) ist meiner Meinung nach noch nicht implementiert.
Siehe dazu: https://forum.freecadweb.org/viewtopic. ... 95#p162395
User avatar
microelly2
Veteran
Posts: 4688
Joined: Tue Nov 12, 2013 4:06 pm
Contact:

Re: B-Spline mit Kontrollpunkten/Polen in FC.17

Post by microelly2 »

c2.png
c2.png (48.63 KiB) Viewed 1822 times
Wenn man die Randpole zweier BSplines symmetrisch anordnet, bekommt man einen krümmungsstetigen Übergang.
Mit ewas Fummelei sogar eine stetige Krümmungsänderung (wobei das wirklich nicht exakt ist)
User avatar
hammax
Veteran
Posts: 1991
Joined: Thu Jan 19, 2017 5:03 pm
Location: Ammersee DE

Re: B-Spline mit Kontrollpunkten/Polen in FC.17

Post by hammax »

...ich spiele mich auch schon mehrere Tage mit dem Stetigkeitsproblem (C0, C1, C2 ...) bei verknüpften Splines.
Vermittelt ein gutes Gefühl für Splines.
Thomas' Konstruktion benötigt eigentlich nur die beiden Tangenten-Hilfslinien am Verknüpfungspunkt - tangential und gleich lang(?).
Und parallel dazu die Verbindungslinie zwischen den nächsten Punkten (3 und vorvorletzter).
Mir ist aufgefallen, wenn die Längen der Hilfslinien in einem definierbaren Verhältnis stehen (bei mir 2,5),
dann zeigt der Krümmungskamm eine Krümmungsstetigkeit an (also kein Knick mehr vorhanden).
Daraus könnte man schließen, dass nur noch eine weitere (evtl. geometrisch konstruierbare) Bedingung erforderlich ist.
KruemStet.PNG
KruemStet.PNG (90.14 KiB) Viewed 1792 times
Attachments
KruemStet.FCStd
FC.17.11608
(20.2 KiB) Downloaded 52 times
User avatar
microelly2
Veteran
Posts: 4688
Joined: Tue Nov 12, 2013 4:06 pm
Contact:

Re: B-Spline mit Kontrollpunkten/Polen in FC.17

Post by microelly2 »

hammax wrote: Wed Jul 19, 2017 6:37 am ...ich spiele mich auch schon mehrere Tage mit dem Stetigkeitsproblem (C0, C1, C2 ...) bei verknüpften Splines.
Vermittelt ein gutes Gefühl für Splines.
Thomas' Konstruktion benötigt eigentlich nur die beiden Tangenten-Hilfslinien am Verknüpfungspunkt - tangential und gleich lang(?).
Und parallel dazu die Verbindungslinie zwischen den nächsten Punkten (3 und vorvorletzter).
Mir ist aufgefallen, wenn die Längen der Hilfslinien in einem definierbaren Verhältnis stehen (bei mir 2,5),
dann zeigt der Krümmungskamm eine Krümmungsstetigkeit an (also kein Knick mehr vorhanden).
Daraus könnte man schließen, dass nur noch eine weitere (evtl. geometrisch konstruierbare) Bedingung erforderlich ist.

KruemStet.PNG
Es muss einen Zusammenhang geben, ob das 2,5 ist wird sich zeigen, ich muss da aber auch erstmal wieder Bücher lesen.
Entscheident ist, dass der Trick (symmetrisches Trapez als Hilfskonstruktion) auf für Flächen anwendbar ist.
Die tangentialen Übergänge hatte ich für die Schuhe schon gemacht, eine Erweiterung für die Krümmungsstetigkeit wird auch kommen.
Post Reply