Fläche aus 4 Berandungskurven funzt in Freecad

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

WICHTIG: Bitte zuerst lesen, bevor Sie posten
freecad-heini-1
Posts: 7181
Joined: Tue Jan 07, 2014 11:10 am
Contact:

Fläche aus 4 Berandungskurven funzt in Freecad

Postby freecad-heini-1 » Sat Jan 21, 2017 9:03 pm

Hallo zusammen,
ich vermisse Freiformflächen in Freecad. Nun habe ich herausgefunden, dass man zumindest in Part, Formteil, Form-Generator, Oberflächen aus Kanten, aus 4 Berandungskurven eine Fläche bilden kann, siehe:
flaeche-aus-4-kurven-v1.gif
flaeche-aus-4-kurven-v1.gif (443.2 KiB) Viewed 1851 times
Leider nicht parametrisch. D.h. wenn ich die Skizzen ändere, ändert sich die Fläche nicht mit.

Mit 3 Kurven geht es auch:
flaeche-aus-3-kurven.gif
flaeche-aus-3-kurven.gif (586.99 KiB) Viewed 1848 times
Viele Grüße
Wilfried
freecad-heini-1
Posts: 7181
Joined: Tue Jan 07, 2014 11:10 am
Contact:

Re: Fläche aus 4 Berandungskurven funzt in Freecad

Postby freecad-heini-1 » Sat Jan 21, 2017 9:26 pm

Man benötigt geschlossene Kurven, dann klappt es sogar mit 5 Kurven und wahrscheinlich noch mit mehr:
flaeche-aus-5-kurven.gif
flaeche-aus-5-kurven.gif (862.34 KiB) Viewed 1845 times
Die Regelfläche aus 2 Kurven ist vollparametrisch, Warum fehlt hier die Parametrik?
freecad-heini-1
Posts: 7181
Joined: Tue Jan 07, 2014 11:10 am
Contact:

Re: Fläche aus 4 Berandungskurven funzt in Freecad

Postby freecad-heini-1 » Sat Jan 21, 2017 9:47 pm

Mit drei Bsplines:
flaeche-aus-3-bsplines.gif
flaeche-aus-3-bsplines.gif (772.58 KiB) Viewed 1838 times
Wenn jetzt noch die Stützpunkte der Bsplines nachträglich änderbar wären und damit die Bsplines und die entstandene Fläche auch noch vollparametrisch mitwandert ...
Ob Freecad 0.18 das irgendwann kann?
User avatar
microelly2
Posts: 4690
Joined: Tue Nov 12, 2013 4:06 pm
Contact:

Re: Fläche aus 4 Berandungskurven funzt in Freecad

Postby microelly2 » Sat Jan 21, 2017 10:05 pm

Das wird bald gehen
ich hab das Datenmodell und überlege grade die GUI
https://youtu.be/wul_QMwTPZ8
holdi
Posts: 349
Joined: Mon Dec 05, 2016 3:00 pm

Re: Fläche aus 4 Berandungskurven funzt in Freecad

Postby holdi » Sat Jan 21, 2017 10:11 pm

freecad-heini-1 wrote:Hallo zusammen,
ich vermisse Freiformflächen in Freecad. Nun habe ich herausgefunden, dass man zumindest in Part, Formteil, Form-Generator, Oberflächen aus Kanten ... bilden kann
Welche Geometrie haben die erzeugten Freiformflächen, was meinst Du?

mfGn holdi
freecad-heini-1
Posts: 7181
Joined: Tue Jan 07, 2014 11:10 am
Contact:

Re: Fläche aus 4 Berandungskurven funzt in Freecad

Postby freecad-heini-1 » Sat Jan 21, 2017 10:18 pm

holdi wrote: Welche Geometrie haben die erzeugten Freiformflächen, was meinst Du?
Denkst Du "hübsch" ist passend? Dreieckig ballig hübsch, viereckig kurvig, fünfeckig bspline ...
Wie ist Deine Meinung?
freecad-heini-1
Posts: 7181
Joined: Tue Jan 07, 2014 11:10 am
Contact:

Re: Fläche aus 4 Berandungskurven funzt in Freecad

Postby freecad-heini-1 » Sun Jan 22, 2017 8:28 am

Wenn man richtig gute Flächen erzeugen möchte empfiehlt es sich die Tesselierung schon vor dem Zeichnen der Bsplines hochzusetzen. Im nächsten Beispiel habe ich die Tessellierung auf 0,001% eingestellt. Das Berechnen der Fläche dauert dementsprechend lang, aber es lohnt, siehe:
flaechenqualitaet.gif
flaechenqualitaet.gif (782.99 KiB) Viewed 1805 times
Freecad-Modell:
flaeche-dreieck-mittelkurve.fcstd
(13.1 KiB) Downloaded 35 times
Das ist allererste Sahne! :D
User avatar
microelly2
Posts: 4690
Joined: Tue Nov 12, 2013 4:06 pm
Contact:

Re: Fläche aus 4 Berandungskurven funzt in Freecad

Postby microelly2 » Sun Jan 22, 2017 9:57 am

Nach meinen Erfahrungen sind die erzeugten Flächen immer BSpline Surfaces und die sind mit ihren Parametern immer genau, es ist nur die Darstellung im 3D Fenster, die manchmal wacklig aussieht.
Wenn man STEP exportiert, stehen da genau die Nurbs Daten drin, die dann jederzeit wieder beliebig genau durch Meshes angenähert werden können.
Ein BSpline ist immer genau - das ist das gleiche wie bei einer Vektorgrafik. Erst das Rendern und die Fertigung bringen die Unschönheiten.
Was die Hüglichkeit ausmacht, gilt die Regel, dass unser Auge nur bis zum Grad 3 wahrnehmen kann. Für schöne Flächen reicht also Grad 3 aus, wer optische Geräte baut, die über das menschliche Auge hinaus gehen (CIA, KGB, BND ...) , braucht mehr und wird wahrscheinlich nicht mit FreeCAD arbeiten. :lol:

Übrigens gibt es das Zebra Tool, da kann man sich die Krümmung auch schön anzeigen lassen
bp_331.png
bp_331.png (103.96 KiB) Viewed 1798 times
freecad-heini-1
Posts: 7181
Joined: Tue Jan 07, 2014 11:10 am
Contact:

Re: Fläche aus 4 Berandungskurven funzt in Freecad

Postby freecad-heini-1 » Sun Jan 22, 2017 10:06 am

microelly2 wrote:Übrigens gibt es das Zebra Tool, da kann man sich die Krümmung auch schön anzeigen lassen.
Wo finde ich das Zebra Tool?
User avatar
microelly2
Posts: 4690
Joined: Tue Nov 12, 2013 4:06 pm
Contact:

Re: Fläche aus 4 Berandungskurven funzt in Freecad

Postby microelly2 » Sun Jan 22, 2017 10:51 am

Das Zebra Tool hab ich in die Nurbs WB integriert Im Bild Symbol zwischen Open Spreadsheet und Draft Bspline Editor,
Ich habe hier auch mal die Poles von deinem Beispiel sichtbar gemacht.
bp_333.png
bp_333.png (47.67 KiB) Viewed 1783 times
Da sieht man sehr schön, wie der Loft aus den drei BSplines die Fläche zusammensetzt.
Die Fläche hat Grad 3 x 2
Die Draft-Bsplines haben immer Grad 3
und der GRad 2 ergibt sich, weil, ja nur drei Bspline Kurven da sind, da kommt man mit Grad 2 aus.
Bei zwei Bsplines hat man Grad 1 - Regelfläche.
Das kann man bei deinem Loft auch erzwingen Ruled auf True setzen, dann ist die Fläche nicht mehr tangentialstetig an der inneren Kurve.
und die Fläche besteht aus zwei Nurbs:
bp_334.png
bp_334.png (11.89 KiB) Viewed 1783 times

Code: Select all

l=App.ActiveDocument.Loft.Shape.Face1
bs=l.Surface

sh=bs.toShape()
sp=App.ActiveDocument.addObject("Part::Spline","loft-nurbs")
sp.Shape=sh
sp.ViewObject.ControlPoints=True
bs.UDegree
bs.VDegree

for b in [App.ActiveDocument.BSpline.Shape.Edge1,
	App.ActiveDocument.BSpline001.Shape.Edge1,App.ActiveDocument.BSpline002.Shape.Edge1]:
	bc=b.Curve
	sh=bc.toShape()
	sp=App.ActiveDocument.addObject("Part::Spline","bspline-nurbs")
	sp.Shape=sh
	sp.ViewObject.ControlPoints=True
	bc.Degree