Marc Frank
User
BezierAirfoilDesigner
Eine Open-Source-App zum konvertieren von Profilkoordinaten in Bézier Kurven.
Welches Problem soll die App lösen?
Wer schon einmal probiert hat ein Flugmodell im CAD umzusetzen, kennt das Problem des Importierens der Profile.
Zuerst muss man eine Methode finden, um die Koordinaten in die Software einzulesen.
Hat man das gelöst, muss man die Punkte in eine Kurve umwandeln, meist wird eine Spline durch alle Punkte gelegt.
Will man die Ober- und Unterseite der Tragfläche einzeln modellieren, muss man die einzelnen Profile in Ober- und Unterseite trennen.
Meist erzeugt das eine kleine Unstetigkeit an der Nasenleiste, je mehr Koordinaten man hat, desto kleiner wird diese Spitze.
Man muss auch darüber nachdenken, wie viele Koordinaten das Profil haben sollte.
Zu wenig, und die Abweichung vom Original wird zu groß, zu viele und das Profil wird überdefiniert, was Probleme bei weiteren Designschritten erzeugt.
Selbst wenn man einen guten Prozess gefunden hat, ist die Spline-Kurve doch nie ganz glatt, es gibt immer kleine Wellen.
Diese werden dann auch auf die späteren Oberflächen übertragen.
Will man dann auch noch eine bestimmte Endleistendicke einstellen muss man alle Koordinaten verschieben oder um die Nasenleiste aufdrehen.
Insgesamt ist der Prozess nicht sehr leicht und die Ergebnisse sind meiner Meinung nach verbesserbar.
Was macht der BezierAirfoilDesigner?
Man kann normale .dat Profilkoordinaten in das Programm importieren.
Dann kann man entweder manuell, automatisch oder durch eine Kombination der beiden, zwei Bézier Kurven dem geladenen Profil anpassen.
Eine für die Ober- und eine für die Unterseite.
Dafür verschiebt man die Kontrollpunkte entweder per Maus oder gibt Koordinaten direkt in die dazugehörige Tabelle ein.
Unter "search" kann man einen rekursiven Algorithmus andere Positionen der Kontrollpunkte ausprobieren lassen, um den Error (Unterschied zum Referenzprofil) zu verringern. Search Top und Bottom suchen so lange nach neuen Punkten, bis die Verbesserung unter 5% liegt.
Dafür werden zuerst 3 andere Positionen pro Kontrollpunkt getestet.
Ist irgendwann nichts besseres dabei, wird die Anzahl der getesteten Punkte im gleichen "Suchradius" (nur vertikal) um 1 erhöht.
Mit auto search wird nach je einem Suchvorgang für Oben und Unten der Grad der Kurven um 1 erhöht
(ein Kontrollpunkt hinzugefügt), ohne dabei die Form der Kurve zu verändern.
Das wird so lange wiederholt, bis der Error unter 0,075 fällt.
Je nach Qualität und Komplexität des Referenzprofils dauert die automatische Anpassung zwischen 10min und 3h.
Bei qualitativ sehr schlechten Profilen kann die Abschlussgrenze nie erreicht werden, dafür gibt den stop Knopf.
Damit kann die aktuelle Suche abgebrochen werden.
Wenn die Suche abgeschlossen ist ...
... kann man die Kontrollpunkte als .bez.dat exportieren.
Diese Dateien sind genauso aufgebaut wie normale .dat Dateien und dank der gleichen Dateiendung kann man sie auch genauso wie normale .dat Dateien in die CAD Software importieren. Die Kurven lassen sich dann mittels "control point spline" (in Fusion 360, oder ähnlichen Kurventypen in anderer Software) zeichnen.
Momentan ist bei der Umsetzung von Bézierkurven mittels control point spline in Fusion 360 ein Limit bei 6 Kontrollpunkten.
Bei mehr Kontrollpunkten stimmen die Kurven nicht mehr überein. Ob es ein Fehler bei Fusion 360 ist, oder an dem Kurventyp liegt, den sie verwenden, weiß ich nicht.
Ich habe dieses Problem bereits angesprochen, vielleicht ändert sich da noch was.
Ergebnis im CAD
Die aus den Kontrollpunkten gezeichneten Profile sind sind schon "von Haus aus" in Ober- und Unterseite geteilt, das muss man nicht mehr Extra machen.
Die Krümmungsverteilung zeigt keine Wellen in der Oberfläche mehr.
Die Endleistendicke kann man einfach durch hinzufügen einer weiteren Bemaßung einstellen:
Sonstiges
Zusätzlich zum .bez.dat Format kann man die Kontrollpunkte auch als .bez Datei speichern.
Das erlaubt die Darstellung von Formen, bei denen Anfang und Ende der Kurven nicht identisch sind und nicht zwischen 0 und 1 liegen.
Anwendung liegt vielleicht bei der Erstellung von Flügelgrundrissen.
Außerdem kann man die Koordinaten der Bézier Kurven auch als .dat exportieren.
Dabei sollte man darauf achten, in welchem Programm man die Profile weiterverwenden möchte.
Der Profileditor von Frank Ranis akzeptiert maximal 450 Punkte und in xflr5 hört es schon bei 300 auf.
Wem wichtig ist, dass alle Punkte auf beiden Kurven die gleichen X-Koordinaten haben, sollte darauf achten,
dass auch alle Kontrollpunkte die gleichen X-Koordinaten haben.
Das Programm kann nicht nur für die Vereinfachung und Verbesserung der Prozesse im CAD verwendet werden.
Man kann es auch dazu benutzen, um vorhandene Profile zu glätten. Unter Umständen wird dadurch die Performance des Profils verbessert.
Installation
Für Windows einfach die passende .exe Datei von GitHub unter Releases herunterladen.
Vor der Version v0.9 hatte ich bei den Veröffentlichungseinstellungen "Frameworkabhängig" ausgewählt.
Wer frühere Versionen ausprobieren möchte muss dann auch noch .NET 7 herunterladen.
Die App ist in Visual Studio mit C# als Winforms Projekt erstellt.
Ob sie unter Linux mit Wine läuft weiß ich nicht.
Bei bisherigen Tests hat es nicht geklappt.
In einer VM unter MacOS läuft es.
Auch ich würde mich über Feedback und Anregungen zu weiterer Funktionalität sehr freuen.
Fehler im Programm und kleinere Erweiterungswünsche können unter Issues gemeldet werden.
Wer diese selber beheben möchte, kann auch einen Pull request erstellen.
Grüße,
Marc
GitHub - Marc-Frank/BezierAirfoilDesigner: A tool to manipulate control points of bezier curves. Main intended use is to generate .dat airfoil files which can be used to design subscale airplane wings.
A tool to manipulate control points of bezier curves. Main intended use is to generate .dat airfoil files which can be used to design subscale airplane wings. - GitHub - Marc-Frank/BezierAirfoilDes...
github.com
Welches Problem soll die App lösen?
Wer schon einmal probiert hat ein Flugmodell im CAD umzusetzen, kennt das Problem des Importierens der Profile.
Zuerst muss man eine Methode finden, um die Koordinaten in die Software einzulesen.
Hat man das gelöst, muss man die Punkte in eine Kurve umwandeln, meist wird eine Spline durch alle Punkte gelegt.
Will man die Ober- und Unterseite der Tragfläche einzeln modellieren, muss man die einzelnen Profile in Ober- und Unterseite trennen.
Meist erzeugt das eine kleine Unstetigkeit an der Nasenleiste, je mehr Koordinaten man hat, desto kleiner wird diese Spitze.
Man muss auch darüber nachdenken, wie viele Koordinaten das Profil haben sollte.
Zu wenig, und die Abweichung vom Original wird zu groß, zu viele und das Profil wird überdefiniert, was Probleme bei weiteren Designschritten erzeugt.
Selbst wenn man einen guten Prozess gefunden hat, ist die Spline-Kurve doch nie ganz glatt, es gibt immer kleine Wellen.
Diese werden dann auch auf die späteren Oberflächen übertragen.
Will man dann auch noch eine bestimmte Endleistendicke einstellen muss man alle Koordinaten verschieben oder um die Nasenleiste aufdrehen.
Insgesamt ist der Prozess nicht sehr leicht und die Ergebnisse sind meiner Meinung nach verbesserbar.
Was macht der BezierAirfoilDesigner?
Man kann normale .dat Profilkoordinaten in das Programm importieren.
Dann kann man entweder manuell, automatisch oder durch eine Kombination der beiden, zwei Bézier Kurven dem geladenen Profil anpassen.
Eine für die Ober- und eine für die Unterseite.
Dafür verschiebt man die Kontrollpunkte entweder per Maus oder gibt Koordinaten direkt in die dazugehörige Tabelle ein.
Unter "search" kann man einen rekursiven Algorithmus andere Positionen der Kontrollpunkte ausprobieren lassen, um den Error (Unterschied zum Referenzprofil) zu verringern. Search Top und Bottom suchen so lange nach neuen Punkten, bis die Verbesserung unter 5% liegt.
Dafür werden zuerst 3 andere Positionen pro Kontrollpunkt getestet.
Ist irgendwann nichts besseres dabei, wird die Anzahl der getesteten Punkte im gleichen "Suchradius" (nur vertikal) um 1 erhöht.
Mit auto search wird nach je einem Suchvorgang für Oben und Unten der Grad der Kurven um 1 erhöht
(ein Kontrollpunkt hinzugefügt), ohne dabei die Form der Kurve zu verändern.
Das wird so lange wiederholt, bis der Error unter 0,075 fällt.
Je nach Qualität und Komplexität des Referenzprofils dauert die automatische Anpassung zwischen 10min und 3h.
Bei qualitativ sehr schlechten Profilen kann die Abschlussgrenze nie erreicht werden, dafür gibt den stop Knopf.
Damit kann die aktuelle Suche abgebrochen werden.
Wenn die Suche abgeschlossen ist ...
... kann man die Kontrollpunkte als .bez.dat exportieren.
Diese Dateien sind genauso aufgebaut wie normale .dat Dateien und dank der gleichen Dateiendung kann man sie auch genauso wie normale .dat Dateien in die CAD Software importieren. Die Kurven lassen sich dann mittels "control point spline" (in Fusion 360, oder ähnlichen Kurventypen in anderer Software) zeichnen.
Momentan ist bei der Umsetzung von Bézierkurven mittels control point spline in Fusion 360 ein Limit bei 6 Kontrollpunkten.
Bei mehr Kontrollpunkten stimmen die Kurven nicht mehr überein. Ob es ein Fehler bei Fusion 360 ist, oder an dem Kurventyp liegt, den sie verwenden, weiß ich nicht.
Ich habe dieses Problem bereits angesprochen, vielleicht ändert sich da noch was.
Ergebnis im CAD
Die aus den Kontrollpunkten gezeichneten Profile sind sind schon "von Haus aus" in Ober- und Unterseite geteilt, das muss man nicht mehr Extra machen.
Die Krümmungsverteilung zeigt keine Wellen in der Oberfläche mehr.
Die Endleistendicke kann man einfach durch hinzufügen einer weiteren Bemaßung einstellen:
Sonstiges
Zusätzlich zum .bez.dat Format kann man die Kontrollpunkte auch als .bez Datei speichern.
Das erlaubt die Darstellung von Formen, bei denen Anfang und Ende der Kurven nicht identisch sind und nicht zwischen 0 und 1 liegen.
Anwendung liegt vielleicht bei der Erstellung von Flügelgrundrissen.
Außerdem kann man die Koordinaten der Bézier Kurven auch als .dat exportieren.
Dabei sollte man darauf achten, in welchem Programm man die Profile weiterverwenden möchte.
Der Profileditor von Frank Ranis akzeptiert maximal 450 Punkte und in xflr5 hört es schon bei 300 auf.
Wem wichtig ist, dass alle Punkte auf beiden Kurven die gleichen X-Koordinaten haben, sollte darauf achten,
dass auch alle Kontrollpunkte die gleichen X-Koordinaten haben.
Das Programm kann nicht nur für die Vereinfachung und Verbesserung der Prozesse im CAD verwendet werden.
Man kann es auch dazu benutzen, um vorhandene Profile zu glätten. Unter Umständen wird dadurch die Performance des Profils verbessert.
Installation
Für Windows einfach die passende .exe Datei von GitHub unter Releases herunterladen.
Vor der Version v0.9 hatte ich bei den Veröffentlichungseinstellungen "Frameworkabhängig" ausgewählt.
Wer frühere Versionen ausprobieren möchte muss dann auch noch .NET 7 herunterladen.
Die App ist in Visual Studio mit C# als Winforms Projekt erstellt.
Ob sie unter Linux mit Wine läuft weiß ich nicht.
Bei bisherigen Tests hat es nicht geklappt.
In einer VM unter MacOS läuft es.
Auch ich würde mich über Feedback und Anregungen zu weiterer Funktionalität sehr freuen.
Fehler im Programm und kleinere Erweiterungswünsche können unter Issues gemeldet werden.
Wer diese selber beheben möchte, kann auch einen Pull request erstellen.
Grüße,
Marc