b-Spline

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

WICHTIG: Bitte zuerst lesen, bevor Sie posten
klaugee
Posts: 8
Joined: Sat Oct 19, 2019 8:14 pm

b-Spline

Postby klaugee » Sat Oct 19, 2019 8:29 pm

Hallo zusammen.
Ich habe die Version .18 und bin blutiger Anfänger. Was mich aber nicht daran hindert schon forgeschrittene Fragen zu haben die da wäre:
wie kann ich in FreeCAD eine B-Spline generieren, wenn ich nur Punkte kenne die auch auf dieser Spline liegen sollen.
Ich schaffe es immer nur soweit, dass ich Punkte festlege und FreeCAD diese Punkte dann als Kontrollpunkte benutzt und die Spline dann ganz anderswo liegt.
Vor langer langer Zeit, lange noch vor 3D hab ich mal mit AutoCAD gearbeitet, da war das problemfrei möglich: man konnte Punkte festlegen, sie einfangen und die Spline generierte sich da entlang. Beim FreeCAD hab ich mehr das Gefühl, dass sie sich drumherum generiert.
Wäre super, wenn mir da einer weiterhelfen könnte.
Danke im voraus schonmal.
chrisb
Posts: 19054
Joined: Tue Mar 17, 2015 9:14 am

Re: b-Spline

Postby chrisb » Sat Oct 19, 2019 9:16 pm

Die PartDesign-B-Splines können das nicht. Probier mal den Spline aus der Draft Workbench.
wmayer
Site Admin
Posts: 14899
Joined: Thu Feb 19, 2009 10:32 am

Re: b-Spline

Postby wmayer » Sun Oct 20, 2019 9:09 am

chrisb wrote:
Sat Oct 19, 2019 9:16 pm
Die PartDesign-B-Splines können das nicht. Probier mal den Spline aus der Draft Workbench.
In der Draft-Wb ist das eingeschränkt möglich. Wenn man die B-Spline-Funktion aufruft, dann folgt die Kurve alle ausgewählten Punkten. Allerdings geht das nur solange wie diese in einer Ebene liegen. Räumliche Kurven sind somit nicht möglich.

Die einzige Möglichkeit wäre denn derzeit das über Python zu lösen:

Code: Select all

pts=[App.Vector(1,2,3), ...] # Liste von Punkten
bs=Part.BSplineCurve()
bs.interpolate(Points=pts)
Part.show(bs.toShape(),"Spline")
User avatar
hammax
Posts: 878
Joined: Thu Jan 19, 2017 5:03 pm
Location: Ammersee

Re: b-Spline

Postby hammax » Sun Oct 20, 2019 9:33 am

… mit der Schwäche des BSplines im Sketcher,
- nur Start- und Endpunkt sind per Bemaßung kontrollierbar,
- Tangentialbedingungen können nur über den zweiten und vorletzten Kontrollpunkt erzeugt werden.
- der "innere" Verlauf des Splines kann nur über die Bemaßung der meist "abseits" liegenden Kontrollpunkte bemaßt werden,
- die ebenfalls erscheinenden "Knotenpunkte" auf dem Spline sind nicht mittels Constraint bemaßbar,
- (letztere lösche ich meistens, wenn ich Zeit und Lust dazu habe, da zu nichts nützlich???).
Damit muss man wohl bis auf weiteres leben, wenn man für sowas unbedingt den Sketcher verwenden will.
Ich jedenfalls würde mich tierisch freuen, wenn man Sketcher-BSplines auch DURCH Knoten-Punkte legen könnte.
Man sehe sich auch gelegentlich den CurvatureComb eines BSplines mit mehr als 4 (Kontroll)-Punkten an!
chrisb
Posts: 19054
Joined: Tue Mar 17, 2015 9:14 am

Re: b-Spline

Postby chrisb » Sun Oct 20, 2019 9:41 am

hammax wrote:
Sun Oct 20, 2019 9:33 am
Ich jedenfalls würde mich tierisch freuen, wenn man Sketcher-BSplines auch DURCH Knoten-Punkte legen könnte.
Das wäre schon sehr nützlich, z.B. wenn es um Spanten im Innern einer durch B-Spline begrenzten Kurve geht. Momentan geht das nur über den mühseligen Umweg, den Spline in kleine Teile aufzuteilen, die dann tangential zusammengefrickelt werden.

Die Draft splines lassen mich hoffen, weil sie zeigen, dass in FreeCAD die Punkte auch zur Verfügung stehen.
klaugee
Posts: 8
Joined: Sat Oct 19, 2019 8:14 pm

Re: b-Spline

Postby klaugee » Sun Oct 20, 2019 2:48 pm

Hallo
Danke schon mal für die schnellen Antworten!

In Draft hab ich die B-Spline erstellen können
Geschlossen habe ich den Körper, der ja noch zweidimensional ist mit einer Linie.
Dann gehe ich zur Part Design WB und versuche dort aufzupolstern (Abmessung 20 mm), denn es handelt sich schon um ein dreidimensionales Objekt und ich erhalte immer die Meldung: Linked shape object is empty.

Wobei ich ein einfaches Rechteck problemlos aufpolstern kann.

Kann es sein, dass die PartDesign WB die Skizze aus der Draft WB nicht verarbeiten kann?

Gibt es vielleicht auch irgendwo eine Sammlung der Fehlermeldungen mit ihrer Bedeutung?
Last edited by klaugee on Sun Oct 20, 2019 3:00 pm, edited 2 times in total.
freecad-heini-1
Posts: 5917
Joined: Tue Jan 07, 2014 11:10 am
Contact:

Re: b-Spline

Postby freecad-heini-1 » Sun Oct 20, 2019 2:55 pm

hammax wrote:
Sun Oct 20, 2019 9:33 am
… mit der Schwäche des BSplines im Sketcher,
- nur Start- und Endpunkt sind per Bemaßung kontrollierbar,
- Tangentialbedingungen können nur über den zweiten und vorletzten Kontrollpunkt erzeugt werden.
- der "innere" Verlauf des Splines kann nur über die Bemaßung der meist "abseits" liegenden Kontrollpunkte bemaßt werden,
- die ebenfalls erscheinenden "Knotenpunkte" auf dem Spline sind nicht mittels Constraint bemaßbar,
- (letztere lösche ich meistens, wenn ich Zeit und Lust dazu habe, da zu nichts nützlich???).
Damit muss man wohl bis auf weiteres leben, wenn man für sowas unbedingt den Sketcher verwenden will.
Ich jedenfalls würde mich tierisch freuen, wenn man Sketcher-BSplines auch DURCH Knoten-Punkte legen könnte.
Man sehe sich auch gelegentlich den CurvatureComb eines BSplines mit mehr als 4 (Kontroll)-Punkten an!
+1
Zustimmung zu allen Punkten. Ich sehe das genauso.
klaugee wrote:
Sun Oct 20, 2019 2:48 pm
Hallo
Danke schon mal für die schnellen Antworten!

In Draft hab ich die B-Spline erstellen können
Geschlossen habe ich den Körper, der ja noch zweidimensional ist mit einer Linie.
Dann gehe ich zur Part Design WB und versuche dort aufzupolstern (Abmessung 20 mm), denn es handelt sich schon um ein dreidimensionales Objekt und ich erhalte immer die Meldung: Linked shape object is empty.

Wobei ich ein einfaches Rechteck problemlos aufpolstern kann.

Kann es sein, dass die PartDesign WB die Skizze aus der Draft WB nicht verarbeiten kann?
Du wirst die Linie mit dem Draft bspline verbinden müssen, entweder per Part-WB Connect oder eine boolsche Fusion. Danach musst Du das Ergebnis als Basefeature in den Body ziehen, in dem es aufgepolstert werden soll. Tja - das ist PartDesign mit all seinen Nettigkeiten.

Passend dazu die Einschätzung dieses Users:
https://forum.freecadweb.org/viewtopic. ... 26#p342026
herbk
Posts: 1545
Joined: Mon Nov 03, 2014 3:45 pm
Location: Windsbach, Bavarya (Germany)

Re: b-Spline

Postby herbk » Sun Oct 20, 2019 3:15 pm

Hi,
der Draft B-Spline sollte sich mit der Part WB extrudieren lassen...
Gruß Herbert
freecad-heini-1
Posts: 5917
Joined: Tue Jan 07, 2014 11:10 am
Contact:

Re: b-Spline

Postby freecad-heini-1 » Sun Oct 20, 2019 3:28 pm

herbk wrote:
Sun Oct 20, 2019 3:15 pm
Hi,
der Draft B-Spline sollte sich mit der Part WB extrudieren lassen...
Als Fläche ja. Wenn es ein Solid werden soll muss man die Draft-Linie mit dem Draft-bspline per Part-WB Connect verbinden, dann erst kann man den Connect in der Part-WB extrudieren.
klaugee wrote:
Sun Oct 20, 2019 2:48 pm
Dann gehe ich zur Part Design WB und versuche dort aufzupolstern (Abmessung 20 mm)
D.h. er muss Connect als Basefeature in den Body ziehen, danach kann man um 20mm aufpolstern.

Nachtrag:
Hab es ausprobiert: Basefeature, Connect, Fusion oder Loft wird als Element für ein Pad zum aufpolstern gar nicht erst angenommen, aber vielleicht mache ich etwas falsch.
Hier meine Datei zum Spielen:
draft_bspline_curves-wb_line.FCStd
(15.29 KiB) Downloaded 7 times
Die Curves-WB Linie habe ich genommen, weil die Draft Linie nicht parametrisch ist. Ändert man den bspline, hat man Pech gehabt.

PartDesign, hinterlässt gerne mal ein bitteres "Gschmäckle" ...
Last edited by freecad-heini-1 on Sun Oct 20, 2019 3:48 pm, edited 2 times in total.
chrisb
Posts: 19054
Joined: Tue Mar 17, 2015 9:14 am

Re: b-Spline

Postby chrisb » Sun Oct 20, 2019 3:44 pm

Das Verbinden könnte man schon in Draft mit Upgrade machen. Du kannst den B-Spline auch wieder in ein Sketch umwandeln und dann im Sketcher weiterbearbeiten.
freecad-heini-1 wrote:
Sun Oct 20, 2019 2:55 pm
Tja - das ist PartDesign mit all seinen Nettigkeiten.

Passend dazu die Einschätzung dieses Users:
https://forum.freecadweb.org/viewtopic. ... 26#p342026
Dieser Link wird Dir kaum weiterhelfen, weil der Beitrag bisher im Kern nichts weiter sagt, als dass es nicht funktioniert, wenn man's falsch macht.
Es ist im Übrigen nur eine der Nettigkeiten, PartDesign hält noch andere bereit :) .