B-Spline mit Kontrollpunkten und Polen
Re: B-Spline mit Kontrollpunkten/Polen in FC.17
Das sieht schon sehr geschmeidig aus mit so einem BSpline.
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
Re: B-Spline mit Kontrollpunkten und Polen
… ich hole diesen Thread wieder nach oben,
insbesondere weil looo gerade eine WB auflegt, die mit Aero-Profilen auf BSpline-Basis arbeitet.
https://forum.freecadweb.org/viewtopic. ... 05#p353264
Das regt wiederum mein CAD-Hirn an, dieser Sache aufmerksam zu folgen.
Aktuell versuche ich auch immer wieder vorgegebene Dat-Profile mit Sketcher-BSpline "nachzuzeichnen".
Bislang hat mich dabei gestört, dass bei mehr als 4 Kontrollpunkten im Profil diese "Knotenpunkte" auftauchen.
Inzwischen habe ich fast schon durch Zufall eine Methode gefunden, die mir knotenpunktfreie Profile liefert.
https://forum.freecadweb.org/viewtopic. ... 71#p352993
https://forum.freecadweb.org/viewtopic. ... 10#p353004
Warum das so funktioniert und mit welchem Algorithmen-Hintergrund das plötzlich geht, verschließt sich mir noch.
Jedenfalls lassen sich aus dem vorgestellten Profil allerlei andere Profilkonstruktionen recht einfach ableiten.
insbesondere weil looo gerade eine WB auflegt, die mit Aero-Profilen auf BSpline-Basis arbeitet.
https://forum.freecadweb.org/viewtopic. ... 05#p353264
Das regt wiederum mein CAD-Hirn an, dieser Sache aufmerksam zu folgen.
Aktuell versuche ich auch immer wieder vorgegebene Dat-Profile mit Sketcher-BSpline "nachzuzeichnen".
Bislang hat mich dabei gestört, dass bei mehr als 4 Kontrollpunkten im Profil diese "Knotenpunkte" auftauchen.
Inzwischen habe ich fast schon durch Zufall eine Methode gefunden, die mir knotenpunktfreie Profile liefert.
https://forum.freecadweb.org/viewtopic. ... 71#p352993
https://forum.freecadweb.org/viewtopic. ... 10#p353004
Warum das so funktioniert und mit welchem Algorithmen-Hintergrund das plötzlich geht, verschließt sich mir noch.
Jedenfalls lassen sich aus dem vorgestellten Profil allerlei andere Profilkonstruktionen recht einfach ableiten.
- Attachments
-
- BSpline_6_Norm.FCStd
- (16.31 KiB) Downloaded 31 times
- microelly2
- Veteran
- Posts: 4688
- Joined: Tue Nov 12, 2013 4:06 pm
- Contact:
Re: B-Spline mit Kontrollpunkten und Polen
Wenn du knickfreie Änderung der Krümmung brauchst, muss es ab 5 Poles eine BSpline Degree 4 sein.hammax wrote: ↑Wed Dec 11, 2019 4:43 pm
Bislang hat mich dabei gestört, dass bei mehr als 4 Kontrollpunkten im Profil diese "Knotenpunkte" auftauchen.
Warum das so funktioniert und mit welchem Algorithmen-Hintergrund das plötzlich geht, verschließt sich mir noch.
Jedenfalls lassen sich aus dem vorgestellten Profil allerlei andere Profilkonstruktionen recht einfach ableiten.
Re: B-Spline mit Kontrollpunkten und Polen
… ich nehme mal an, dass der obige BSpline mit dem Tool der CurvesWB gezeichnet ist.
Problem: Dieses Tool ist in Python3 und wird deshalb z.B. bei Win10_32 gar nicht zur Verfügung gestellt.
Hier die Daten des NormProf aus dem CurvesWB-InfoTool.
Problem: Dieses Tool ist in Python3 und wird deshalb z.B. bei Win10_32 gar nicht zur Verfügung gestellt.
Hier die Daten des NormProf aus dem CurvesWB-InfoTool.
- microelly2
- Veteran
- Posts: 4688
- Joined: Tue Nov 12, 2013 4:06 pm
- Contact:
Re: B-Spline mit Kontrollpunkten und Polen
Ich mach das so,
https://youtu.be/EQ6_5EFUiI4
aber das ist alles auch nur python3 und ubuntu,
ich kann den wichtigen teil heute nachtmittag als makro extrahieren damit es auch mit py2 geht:
aus einer Anzahl Kugeln eine Spline vom Grad 4 erzeugen
- microelly2
- Veteran
- Posts: 4688
- Joined: Tue Nov 12, 2013 4:06 pm
- Contact:
Re: B-Spline mit Kontrollpunkten und Polen
Ein paar Kugeln erzeugen, alle auswählen dann ..
Code: Select all
sel=Gui.Selection.getSelection()
degA=4
periodic=False
#periodic=True
poles=[s.Shape.CenterOfMass for s in sel]
countA = len(poles)
sf=Part.BSplineCurve()
if not periodic:
multA=[degA+1]+[1]*(countA-1-degA)+[degA+1]
knotA=range(len(multA))
else:
multA=[1]*(countA+1)
knotA=range(len(multA))
sf=Part.BSplineCurve()
sf.buildFromPolesMultsKnots(poles,multA,knotA,periodic,degA)
shape=sf.toShape()
Part.show(shape)
Re: B-Spline mit Kontrollpunkten und Polen
… funktioniert!!!
Dann dachte ich schon, man könne mit der Kugelgröße das Polgewicht beeinflussen.
Dann dachte ich schon, man könne mit der Kugelgröße das Polgewicht beeinflussen.
Re: B-Spline mit Kontrollpunkten und Polen
Interessant, ich verwende jetzt auch bsplines vom grad 4 für die Profile. Scheint wohl ein brauchbarer Ansatz zu sein.
Bezüglich 32 bit: Das ist wirklich ein schwieriges Thema. Theoretisch ist es schon möglich aktuelle Abhängigkeiten und das aktuelle FreeCAD für 32 bit zu kompilieren, aber Bibliotheken wie qt sind mittlerweile so umfangreich und schwierig zu kompilieren, dass das echt ein schwieriges Projekt ist. Wenn ich irgendwas durch das Paketmanagment mittels conda gelernt habe, dann ist es das, dass man immer schön mit dem Strom mitfließen sollte...
Man kann natürlich auch auf diverse Abhängigkeiten verzichten (scipy, pandas ...) aber meiner Meinung nach ist die Verwendung von solchen Abhängigkeiten genau das was opensource ausmacht...
Also am besten Umsteigen auf 64 bit, falls irgendwie möglich. Ich hätt noch einen älteren 64-bit laptop (akku ist tot aber den gibts noch zum nachkaufen, mit ubuntu 18.04) falls Interesse besteht.
Bezüglich 32 bit: Das ist wirklich ein schwieriges Thema. Theoretisch ist es schon möglich aktuelle Abhängigkeiten und das aktuelle FreeCAD für 32 bit zu kompilieren, aber Bibliotheken wie qt sind mittlerweile so umfangreich und schwierig zu kompilieren, dass das echt ein schwieriges Projekt ist. Wenn ich irgendwas durch das Paketmanagment mittels conda gelernt habe, dann ist es das, dass man immer schön mit dem Strom mitfließen sollte...
Man kann natürlich auch auf diverse Abhängigkeiten verzichten (scipy, pandas ...) aber meiner Meinung nach ist die Verwendung von solchen Abhängigkeiten genau das was opensource ausmacht...
Also am besten Umsteigen auf 64 bit, falls irgendwie möglich. Ich hätt noch einen älteren 64-bit laptop (akku ist tot aber den gibts noch zum nachkaufen, mit ubuntu 18.04) falls Interesse besteht.
Re: B-Spline mit Kontrollpunkten und Polen
… danke looo, ich werde mich was Win10_64 und einen weiteren PC anbelangt, in Geduld üben.
Hatte mir schon gedacht, dass es da Schwierigkeiten gibt, zumal FC.19-pre bezüglich Win nur noch auf der 64er Schiene fährt.
Aber ich schaue gerne zu...
Hatte mir schon gedacht, dass es da Schwierigkeiten gibt, zumal FC.19-pre bezüglich Win nur noch auf der 64er Schiene fährt.
Aber ich schaue gerne zu...
- microelly2
- Veteran
- Posts: 4688
- Joined: Tue Nov 12, 2013 4:06 pm
- Contact:
Re: B-Spline mit Kontrollpunkten und Polen
Ich habe gelernt, dass Grad >3 für das menschliche Auge nichts mehr bringt. Deshalb habe ich normalerweise auch das als Grenze.
Wenn Profile diese höhere Stetigkeit brauchen, ist das ja auch ein Grund die obere Grenze höher zu setzen.
Für optische System hab ich mal gehört, dass Grade über 5 keine Verbesserung bringen. Mit jedem Grad mehr steigt hat die Anzahl der Pole, welche die Lage eines Punktes beeinflussen und ein manuelles Editieren einer Kurve wird immer schwieriger.
Ich denke, man müsste einen Kurveneditor mit Grad 3 haben, wie es in 2D der Sketcher schon tut und dann noch einen algorithmischen Polierer, der die Krümmungsänderungen stetig macht und bestimmte Punkte, durch welche die Kurve unbedingt laufen muss, erhält.
Ich arbeite mit Bezier-Kurvern Grad 3, das ist eigentlich Inkscape. Wenn man da für ein Segment noch einen Punkt hinzunimmt, hat man dann Grad 4 und sollte auch manuell Glätte hinbekommen.
Werde ich demnächst ausprobieren.