B-Spline mit Kontrollpunkten und Polen
- microelly2
- Veteran
- Posts: 4688
- Joined: Tue Nov 12, 2013 4:06 pm
- Contact:
Re: B-Spline mit Kontrollpunkten/Polen in FC.17
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. 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.
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. 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.
Re: B-Spline mit Kontrollpunkten/Polen in FC.17
...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.
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.
- microelly2
- Veteran
- Posts: 4688
- Joined: Tue Nov 12, 2013 4:06 pm
- Contact:
Re: B-Spline mit Kontrollpunkten/Polen in FC.17
kannst du deine datei mal hochladen?
mir sind die namen nicht klar, auf die da zugegriffen wird.
mir sind die namen nicht klar, auf die da zugegriffen wird.
Re: B-Spline mit Kontrollpunkten/Polen in FC.17
...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?
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.
Re: B-Spline mit Kontrollpunkten/Polen in FC.17
Ich soweit ich das verstanden habe, war der Workflow anders gedacht.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.
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.
EDIT:
Die Tangente in der Steigung einschränken geht natürlich auch
- microelly2
- Veteran
- Posts: 4688
- Joined: Tue Nov 12, 2013 4:06 pm
- Contact:
Re: B-Spline mit Kontrollpunkten/Polen in FC.17
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.
das bekommt man besser hin mit den drei hintereinanderliegenden Polen in EINER Kurve.
Re: B-Spline mit Kontrollpunkten/Polen in FC.17
Siehe dazu: https://forum.freecadweb.org/viewtopic. ... 95#p162395Somit 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.
- microelly2
- Veteran
- Posts: 4688
- Joined: Tue Nov 12, 2013 4:06 pm
- Contact:
Re: B-Spline mit Kontrollpunkten/Polen in FC.17
Mit ewas Fummelei sogar eine stetige Krümmungsänderung (wobei das wirklich nicht exakt ist)
Re: B-Spline mit Kontrollpunkten/Polen in FC.17
...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.
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.
- Attachments
-
- KruemStet.FCStd
- FC.17.11608
- (20.2 KiB) Downloaded 52 times
- microelly2
- Veteran
- Posts: 4688
- Joined: Tue Nov 12, 2013 4:06 pm
- Contact:
Re: B-Spline mit Kontrollpunkten/Polen in FC.17
Es muss einen Zusammenhang geben, ob das 2,5 ist wird sich zeigen, ich muss da aber auch erstmal wieder Bücher lesen.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
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.