Solid nach B-Spline-Surface wandeln

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

WICHTIG: Bitte zuerst lesen, bevor Sie posten
chrisb
Veteran
Posts: 54213
Joined: Tue Mar 17, 2015 9:14 am

Re: Solid nach B-Spline-Surface wandeln

Post by chrisb »

Hier noch mal eine Variante auf der Basis Deines Modells. Man muss nur ein subtraktives Ellipsoid einfügen. Dazu:
- Tip auf Ellipsoid setzen
- Subtraktives Ellipsoid erzeugen
- Optional: RadiusX per Expression auf Ellipsoid.RadiusX - 1mm setzen
- Tip wieder auf Pocket setzen.
Mit dem optionalen Schritt passt sich die Aushöhlung immer an das äußere Ellipsoid an.
SnipScreenshot-67e297.png
SnipScreenshot-67e297.png (33.17 KiB) Viewed 2094 times
Attachments
forum_ellipsoid_cb2.FCStd
(52.04 KiB) Downloaded 27 times
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
freecad-heini-1
Veteran
Posts: 7790
Joined: Tue Jan 07, 2014 11:10 am
Contact:

Re: Solid nach B-Spline-Surface wandeln

Post by freecad-heini-1 »

chrisb wrote: Wed Oct 06, 2021 8:57 am Hier noch mal eine Variante auf der Basis Deines Modells. Man muss nur ein subtraktives Ellipsoid einfügen. Dazu:
- Tip auf Ellipsoid setzen
- Subtraktives Ellipsoid erzeugen
- Optional: RadiusX per Expression auf Ellipsoid.RadiusX - 1mm setzen
- Tip wieder auf Pocket setzen.
Mit dem optionalen Schritt passt sich die Aushöhlung immer an das äußere Ellipsoid an.
SnipScreenshot-67e297.png
Genial!
user1234
Veteran
Posts: 3511
Joined: Mon Jul 11, 2016 5:08 pm

Re: Solid nach B-Spline-Surface wandeln

Post by user1234 »

herbk wrote: Wed Oct 06, 2021 6:00 am mal wieder eine einfache Methode mit Part / Draft :
Nur zur Info: Skalieren ist kein Offset. Wenn man eine Box mit 100mm x 1mm x 1mm macht und mit 0.1 skaliert, erhält man eine Box mit 10mm x 0.1mm x 0.1mm. D. h. eine Seite 5mm Wandstärke, die anderen beiden 0.05mm. Auch wenn man richtungsorientiert skaliert (Faktoren in den Richtungen anpasst), erhält man bei Ellipsen keinen Offset.


rynn wrote: Wed Oct 06, 2021 8:24 am Der Offset eines Ellipsoids ist kein Ellipsoid mehr, das erklärt vielleicht die Probleme ein bißchen.
Ja das stimmt.


freecad-heini-1 wrote: Wed Oct 06, 2021 8:20 am Wenn es genau werden soll, würde ich einen zweiten Ellipsoid in der Part-WB erzeugen, exakt um die gewünschte Wanddicke kleiner. Den kleinen vom großen per boolschen Cut abziehen.
Auch nur zur Info, das ist auch kein Offset, aber eine sehr gute Näherung. Je dünner der Ellipsoid und je weiter diese vom Zentrum sind, desto besser ist es.

Grüße
user1234
herbk
Veteran
Posts: 2660
Joined: Mon Nov 03, 2014 3:45 pm
Location: Windsbach, Bavarya (Germany)

Re: Solid nach B-Spline-Surface wandeln

Post by herbk »

Hi,
user1234 wrote: Wed Oct 06, 2021 9:35 am
herbk wrote: Wed Oct 06, 2021 6:00 am mal wieder eine einfache Methode mit Part / Draft :
Nur zur Info: Skalieren ist kein Offset. Wenn man eine Box mit 100mm x 1mm x 1mm macht und mit 0.1 skaliert, erhält man eine Box mit 10mm x 0.1mm x 0.1mm. D. h. eine Seite 5mm Wandstärke, die anderen beiden 0.05mm. Auch wenn man richtungsorientiert skaliert (Faktoren in den Richtungen anpasst), erhält man bei Ellipsen keinen Offset.
ja, Skalieren ist kein Offset...

Aber: Das Skalierverhalten dass Du beschreibst trifft so nur bei Objekten auf deren Ursprung an einer Ecke liegt. Bei Kugeln, Ellipsoiden und anderen Objeten liegt der Ursprung aber in der Mitte des Objektes und zu diesem Ursprung wird auch skaliert.
Das Ergebnis entspricht also der Annäherung der Methode "Kopieren und Abmessungen verkleinern", bei lezterer ist allerdings die Wandstärke einfacher "einstellbar".

Hier ein Schnitt durch das so erzeugte Objekt:
Elli_Schnitt.png
Elli_Schnitt.png (36.55 KiB) Viewed 1996 times
Gruß Herbert
user1234
Veteran
Posts: 3511
Joined: Mon Jul 11, 2016 5:08 pm

Re: Solid nach B-Spline-Surface wandeln

Post by user1234 »

herbk wrote: Wed Oct 06, 2021 10:48 am Aber: Das Skalierverhalten dass Du beschreibst trifft so nur bei Objekten auf deren Ursprung an einer Ecke liegt. Bei Kugeln, Ellipsoiden und anderen Objeten liegt der Ursprung aber in der Mitte des Objektes und zu diesem Ursprung wird auch skaliert.
Nein, ich bin bereits vom Ursprung in der Mitte ausgegangen, auch bei der Box.

(10 - (10 * 0.1) ) / 2 = 4.5
(1 - (1 * 0.1) ) / 2 = 0.45

4.5 != 0.45


Grüße
user1234
Attachments
0.png
0.png (240.88 KiB) Viewed 1964 times
0.FCStd
(6.91 KiB) Downloaded 26 times
user1234
Veteran
Posts: 3511
Joined: Mon Jul 11, 2016 5:08 pm

Re: Solid nach B-Spline-Surface wandeln

Post by user1234 »

Vollständigerweise die Box.

Grüße
user1234
Attachments
0.png
0.png (178.45 KiB) Viewed 1954 times
0.FCStd
(9.46 KiB) Downloaded 27 times
chrisb
Veteran
Posts: 54213
Joined: Tue Mar 17, 2015 9:14 am

Re: Solid nach B-Spline-Surface wandeln

Post by chrisb »

Bei der Variante mit zwei ineinanderliegenden Ellipsen, die an beiden Hauptachsen einen Abstand von 1mm haben, ist der minimale Abstand > 0,9235mm, also etwas weniger als 8%.
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
wmayer
Founder
Posts: 20309
Joined: Thu Feb 19, 2009 10:32 am
Contact:

Re: Solid nach B-Spline-Surface wandeln

Post by wmayer »

rynn wrote: Tue Oct 05, 2021 9:32 pm Gibt es eine Möglichkeit solid (in diesem Fall das Ellipsoid) in einen durch B-Spline-Surfaces begrenzten Körper umzuwandeln.
Bei einem Ellipsoid ist die zugrunde liegende Geometrie bereits eine B-Spline-Fläche. Das kommt daher, dass OCCT Ellipsoide gar nicht direkt unterstützt und wir diese mit Hilfe einer Kugel und drei Skalierungen in X,Y,Z erzeugen. Dabei ersetzt OCCT die ursprüngliche Geometrie durch B-Splines.

Mit Python kann man eine echte Offset-Fläche zum Ellipsoid erzeugen:

Code: Select all

s = App.ActiveDocument.Ellipsoid.Shape.Face1.Surface
o = Part.OffsetSurface(s, 1.0)

Part.show(o.toShape())
oder

Code: Select all

e = App.ActiveDocument.Ellipsoid.Shape.Face1.Surface
s = e.toShell(Segment=True)
o = s.makeOffsetShape(1.0,0.01)
s1 = Part.Solid(o)
s2 = Part.Solid(s)
c = s1.cut(s2)
Part.show(c)
rynn
Posts: 467
Joined: Tue Jul 31, 2018 7:00 am

Re: Solid nach B-Spline-Surface wandeln

Post by rynn »

wmayer wrote: Wed Oct 06, 2021 4:14 pm
rynn wrote: Tue Oct 05, 2021 9:32 pm Gibt es eine Möglichkeit solid (in diesem Fall das Ellipsoid) in einen durch B-Spline-Surfaces begrenzten Körper umzuwandeln.
Bei einem Ellipsoid ist die zugrunde liegende Geometrie bereits eine B-Spline-Fläche. Das kommt daher, dass OCCT Ellipsoide gar nicht direkt unterstützt und wir diese mit Hilfe einer Kugel und drei Skalierungen in X,Y,Z erzeugen. Dabei ersetzt OCCT die ursprüngliche Geometrie durch B-Splines.
Interessant.
Mit Python kann man eine echte Offset-Fläche zum Ellipsoid erzeugen:
Mit einer Mischung aus Python und UI hab’ ich’s jetzt geschafft.
Screenshot_20211013_221813.png
Screenshot_20211013_221813.png (120.44 KiB) Viewed 1625 times
Die Frage ist, warum geht es in der UI nicht?

Danke.
Attachments
Ellipsoid3.FCStd
(177.22 KiB) Downloaded 21 times
wmayer
Founder
Posts: 20309
Joined: Thu Feb 19, 2009 10:32 am
Contact:

Re: Solid nach B-Spline-Surface wandeln

Post by wmayer »

rynn wrote: Wed Oct 13, 2021 8:20 pm Die Frage ist, warum geht es in der UI nicht?
In der UI gibt es ja schon eine Funktion, die da heißt "3D-Versatz" und die arbeitet auf der Brep-Datenstruktur, nicht direkt auf der Geometrie. Diese sollte eigentlich das gleiche können, wenn man es aber auf ein Ellipsoid anwendet, erhält man jedes Mal eine Fehlermeldung.

Man könnte vielleicht die Funktion dahingehend ändern, dass man direkt OffsetSurface aufruft, wenn das Eingabe-Objekt eine einzelne Fläche ist.
Post Reply