Krümmungsstetigkeit

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

WICHTIG: Bitte zuerst lesen, bevor Sie posten
Post Reply
wmayer
Founder
Posts: 20306
Joined: Thu Feb 19, 2009 10:32 am
Contact:

Krümmungsstetigkeit

Post by wmayer »

microelly2 wrote: Sat May 16, 2020 11:15 am Hier mal, wie man Tangenten durch Punkte an Splines mit dem Sketcher hinbekommnt.
https://youtu.be/3a1rmIEWYLI
Für das ganze Hin- und Hergerechne kann ich nur Das Nurbs Buch von Piegl u. Tiller empfehlen.
Der letzte Teil Deiner Aussage hat mich etwas irritiert. Du sagst, wenn die beiden Abstände der Kontrollpunkte zueinander auf der Hilfsgeraden gleich sind, hat man Krümmungsstetigkeit. Sicher? Ich hätte eher angenommen, dass man dann erst C1-Stetigkeit erlangt, während wenn die Abstände nicht gleich sind, man G1-Stetigkeit hat.

Um Krümmungsstetigkeit zu bekommen, muss man doch noch weitere Kontrollpunkte mit einbeziehen. Dazu benötigt man zwei weitere Hilfsgeraden, die jeweils durch den zweiten und dritten bzw. zweit- und drittletzten Kontrollpunkt geht. Die beiden Geraden schneiden sich dann in einem Punkt und wenn die Abstände der Kontrollpunkte und dem Schnittpunkt jeweils gleich sind, dann hat man Krümmungsstetigkeit.

Oder sehe ich da was falsch?

Edit: http://graphics.stanford.edu/courses/cs ... dout27.pdf
Siehe die Skizzen auf Seite 6
User avatar
microelly2
Veteran
Posts: 4688
Joined: Tue Nov 12, 2013 4:06 pm
Contact:

Re: B-Spline Kontur durch parametrisierbare Punkte

Post by microelly2 »

wmayer wrote: Sat May 16, 2020 12:58 pm
microelly2 wrote: Sat May 16, 2020 11:15 am Hier mal, wie man Tangenten durch Punkte an Splines mit dem Sketcher hinbekommnt.
https://youtu.be/3a1rmIEWYLI
Für das ganze Hin- und Hergerechne kann ich nur Das Nurbs Buch von Piegl u. Tiller empfehlen.
Der letzte Teil Deiner Aussage hat mich etwas irritiert. Du sagst, wenn die beiden Abstände der Kontrollpunkte zueinander auf der Hilfsgeraden gleich sind, hat man Krümmungsstetigkeit. Sicher? Ich hätte eher angenommen, dass man dann erst C1-Stetigkeit erlangt, während wenn die Abstände nicht gleich sind, man G1-Stetigkeit hat.

Um Krümmungsstetigkeit zu bekommen, muss man doch noch weitere Kontrollpunkte mit einbeziehen. Dazu benötigt man zwei weitere Hilfsgeraden, die jeweils durch den zweiten und dritten bzw. zweit- und drittletzten Kontrollpunkt geht. Die beiden Geraden schneiden sich dann in einem Punkt und wenn die Abstände der Kontrollpunkte und dem Schnittpunkt jeweils gleich sind, dann hat man Krümmungsstetigkeit.

Oder sehe ich da was falsch?

Edit: http://graphics.stanford.edu/courses/cs ... dout27.pdf
Siehe die Skizzen auf Seite 6
Sorry, ich hab da nicht alles gesagt: Die beiden Nachbarpole müssen symmertisch liegen UND die nächsten Pole liegen auf einer parallelen Hilfsgerade
dp_05_17_001.png
dp_05_17_001.png (48.41 KiB) Viewed 2416 times
Attachments
curvature_cont.FCStd
(23.56 KiB) Downloaded 69 times
wmayer
Founder
Posts: 20306
Joined: Thu Feb 19, 2009 10:32 am
Contact:

Re: B-Spline Kontur durch parametrisierbare Punkte

Post by wmayer »

microelly2 wrote: Sun May 17, 2020 9:45 am Sorry, ich hab da nicht alles gesagt: Die beiden Nachbarpole müssen symmetrisch liegen UND die nächsten Pole liegen auf einer parallelen Hilfsgerade
OK, heißt das also, dass für Krümmungsstetigkeit keine C2-Stetigkeit erforderlich ist?

Beispiel:

Code: Select all

s=App.ActiveDocument.Sketch.Shape
e1=s.Edge1
e2=s.Edge2

c1=e1.Curve
c2=e2.Curve

c1.value(1)
c2.value(0) # same

c1.tangent(1)
c2.tangent(0) # same

c1.curvature(1)
c2.curvature(0) # same

c1.Continuity # CN
c2.Continuity # CN

c1.join(c2)
c1.Continuity # C1
Edit:
Aber hier wird C2- mit Krümmungsstetigkeit gleichgesetzt: https://hawkridgesys.com/blog/solidwork ... -curvature

Edit2:
Ich habe die Postings von https://forum.freecadweb.org/viewtopic.php?f=13&t=46364 in einen eigenen Thread ausgelagert.
reox
Posts: 929
Joined: Sat Aug 13, 2016 10:06 am
Contact:

Re: Krümmungsstetigkeit

Post by reox »

Was ich nicht ganz verstehe: Ist nicht diese Gn-Stetigkeit nicht genau das selbe wie Cn-Stetigkeit?
Also zB hier ist eine Beschreibung der Gn-Stetigkeit: https://knowledge.autodesk.com/support/ ... 0-htm.html

G0 heißt also die Punkte müssen gleich sein. Also C0 Stetig, oder nicht? Bei G1 die Tangente. Das ist ja genau die erste Ableitung - also C1 Stetig?
Oder hat das eigentlich mathematisch nichts miteinander zu tun und die Gn-Stetigkeit ist einfach etwas was man in CAD verwendet aber rein mathematisch nicht beschreibt?
wmayer
Founder
Posts: 20306
Joined: Thu Feb 19, 2009 10:32 am
Contact:

Re: Krümmungsstetigkeit

Post by wmayer »

reox wrote: Mon May 18, 2020 6:14 am Was ich nicht ganz verstehe: Ist nicht diese Gn-Stetigkeit nicht genau das selbe wie Cn-Stetigkeit?
Nein, Gn-Stetigkeit ist weniger streng als Cn-Stetigkeit. Am Beispiel von G1:
Wenn die drei obigen Kontrollpunkte auf einer Geraden liegen, hat man zunächst G1-Stetigkeit. Die Parametrisierungen der beiden Kurven müssen dabei aber nicht unbedingt stetig sein. Erst wenn zusätzlich die beiden Abstände der Punkte zueinander gleich sind, hat man C1-Stetigkeit.

Bildlich kann man sich das so vorstellen (steht übrigens in dem Standford-Paper):
Ein Auto fährt im Schnee mit einer gewissen Geschwindigkeit und erzeugt so eine Spur. Bei C1-Stetigkeit ist auch die Änderung der Geschwindigkeit (entspricht der Parametrisierung) stetig, während bei G1-Stetigkeit zwar sich die Form der Spur nicht ändert, aber die Geschwindigkeit plötzlich einen Sprung macht.

Ähnlich verhält es sich mit G2- bzw. C2-Stetigkeit -- und das beantwortet meine Frage. Bei G2-Stetigkeit ist die Krümmung stetig und bei C2-Stetigkeit muss zusätzlich die Beschleunigung stetig sein.

Also: G2-Stetigkeit ist gleichbedeutend mit Krümmungsstetigkeit. Somit hat microelly2 mit seinen Ausführungen recht und das SolidWorks-Tutorial stimmt damit nicht ganz. Natürlich erreicht man mit C2-Stetigkeit auch Krümmungsstetigkeit, es ist aber keine notwendige Bedingung.
G0 heißt also die Punkte müssen gleich sein. Also C0 Stetig, oder nicht?
Ich denke G0 ist identisch mit C0. Zumindest habe ich noch nirgends darüber gelesen, dass dazwischen unterschieden würde.
wmayer
Founder
Posts: 20306
Joined: Thu Feb 19, 2009 10:32 am
Contact:

Re: Krümmungsstetigkeit

Post by wmayer »

Ich habe das Python-API erweitert, um die Stetigkeit zwischen zwei Kurven zu ermitteln. Wenn man das auf das Projekt von microelly2 anwendet, sieht man, dass die 2-te Ableitungen unterschiedlich sind. Als Stetigkeit wird fälschlicherweise C1 ausgegeben, es müsste allerdings G2 sein.
Es sieht aber so aus, dass GeomLProp::Continuity G2 gar nicht behandelt.

Code: Select all

s=App.ActiveDocument.Sketch.Shape
e1=s.Edge1
e2=s.Edge2

c1=e1.Curve
c2=e2.Curve

c1.curvature(1)
c2.curvature(0)

c1.getDN(1, 2)
c2.getDN(0, 2)

c1.continuityWith(c2)
Im Projekt anbei habe ich C2-Stetigkeit erzwungen, was dann mit obigem Code auch von OCC korrekt erkannt wird.
Attachments
curvature_cont_symmetry.FCStd
(16.14 KiB) Downloaded 78 times
User avatar
microelly2
Veteran
Posts: 4688
Joined: Tue Nov 12, 2013 4:06 pm
Contact:

Re: Krümmungsstetigkeit

Post by microelly2 »

Ich habe mir nochmal Gedanken gemacht, wie man die Krümmungen und Tangenten als Randwerte für eine Kurve hinbekommt.
Mit 6 Polen kann man eine solche Kurve berechnen lassen.
phpBB [video]
Post Reply