Wie konstruiere ich solch eine Kurve

#5647827
Lesenswert?

Hi,

ich spiele mich gerade so zum ersten Mal mit SCAD und würde gerne eine 
solche Kurve wie in der angehängten Grafik zeichnen. Bzw. eine Form bei 
der das eine der Kanten wäre.
Gemeint ist die rote Linie, schnell mit Paint und Paint.NET 
hinskizziert. Schwarz wäre prinzipiell mein erster Ansatz. Durchmesser 
der Kreise sind gleich groß, die Gerade geht durch den Mittelpunkt des 
mittleren Kreises.
Was mir hier Probleme bereitet, ist der Versatz der beiden Außenkreise 
vom Mittelpunkt des Innenkreises weg. Der Versatz nach oben muss r sein. 
Aber irgendwie ist da Mathe zu lange her (oder es ist schon zu spät...).
Evtl. kann mir ja hier jemand mal auf die Sprünge helfen?

VG
da_user
Angehängte Dateien:
#5647877
Lesenswert?

Matthias S. schrieb:
> Was mir hier Probleme bereitet, ist der Versatz der beiden Außenkreise
> vom Mittelpunkt des Innenkreises weg.

Das ist doch einfach der Pythagoras:
Annahme: der Mittelpunkt des mittleren Kreises liegt auf dem 
Koordinatenursprung, dann sind die Koordinaten des rechten Kreises

Hypotenuse = 2r (Abstand von Mittelpunkt zu Mittelpunkt beider Kreise)
Ym = r  (Abstand Mittelpunkt zu Grundlinie des rechten Kreises)
Xm gesucht: Abstand der Mittelpunkte auf x-Achse projeziert

Xm = sqrt( (2r)^2 - r^2)
   = sqrt(3)*r
#5648268
Lesenswert?

scad kenne ich jetzt nicht, aber ich vermute mal, das kennt auch sowas 
ähnliches wie "contraints".

ich würde das ganze dann so angehen:

- drei kreise, alle gleicher radius.
der mittlere mit dem mittelpunkt auf der (horizontalen) (hilfs-)linie, 
die zwei anderen mit einem "tangency-constraint" sowohl zur hilfslinie 
als auch zum mittleren kreis.
- danach die kreise unterbrechen, dass nur der teil zwischen den 
jeweiligen berührungspunkten bleibt.
- mit einer horizontalen linie bis zu den berührpunkten der äußeren 
kreise ergänzen

oder das ganze als linienzug bestehend aus geraden und kreisteilen und 
ein paar hilfslinien bauen und die radien gleichsetzen.
#5650657
Lesenswert?

Hatte letztens ein ähnliches Problem, hier ist der Code:
1
module roundedShape(radius, angle, diameter) {
2
    if(angle > 90 && angle < 180 && diameter > 6 * radius) {
3
        rotate_extrude(convexity = 5, $fn = 96) {
4
            translate([diameter * 0.5, 0, 0]) {
5
                difference() {
6
                    union() {
7
                        translate([(sin(angle) * radius * 2), 
8
                                   (cos(angle) * radius * 2), 0]) {
9
                            circle(radius);
10
                        }
11
                        translate([-(sin(angle) * radius * 2), 
12
                                    (cos(angle) * radius * 2), 0]) {
13
                            circle(radius);
14
                        }
15
                        polygon(points = [[0, 0], 
16
                        [sin(angle) * radius * 2, cos(angle) * radius * 2],
17
                        [sin(angle) * radius * 2, cos(angle) * radius * 2 - radius],
18
                        [-sin(angle) * radius * 2, cos(angle) * radius * 2 - radius],
19
                        [-sin(angle) * radius * 2, cos(angle) * radius * 2],
20
                        [0, 0]]);
21
                    }
22
                circle(radius);
23
                }
24
            }
25
        }
26
    }
27
    else {
28
        echo("Fehler");
29
    }
30
}
31

32

33
roundedShape(10, 120, 70);

angle sollte nicht kleiner als 90 und grösser als 180° sein,
und der Durchmesser des Ringes sollte mindestens 6 mal der Radien der 
Einzelkreise betragen.
Das Polygon verbindet die oberen Kreise mit union,
der untere Kreis wird mit difference abgezogen.
Ist natürlich in jedem anderen CAD Programm einfacher zu lösen,
macht aber auch irgendwie Spass.
#5650703
Lesenswert?

Zuerst in postscript versucht, sehr einfach.
Habe es auch mit SCAD hingekriegt. Drei Kreise, von denen die nicht 
gebrauchten Teile mit difference "abgedeckt" werden.
Die Kreismittelpunkte sind sqrt(3)*r entfernt.
Der erste Kreis geht bis y=0.5, der zweite bis 1.0 und zurück auf 0.5
Der dritte von 0.5 bis 0.
#5654842
Lesenswert?

OpenScad:
1
$fn=64;
2
$vpt=[180,0,0];$vpr=[0,0,0];$vpd=800;  //viewport-Einstellungen
3
translate([-101,-101])square([101,2]);
4
difference(){
5
  circle(101);
6
# circle( 99);
7
  translate([-101, -49])square(202);
8
  translate([-200,-100])square(200);
9
}
10
translate([  173,-100])difference(){
11
  circle(101);
12
# circle( 99);
13
  translate([-101,-151])square(202);
14
}
15
translate([2*173,0]){
16
  difference(){
17
    circle(101);
18
#   circle( 99);
19
    translate([-101, -49])square(202);
20
    translate([   1,-101])square(202);
21
  }
22
  translate([0,-101])square([101,2]);
23
}
Postscript:
1
110  500 translate
2
  0    0 100   0 360 arc stroke
3
173 -100 100   0 360 arc stroke
4
346    0 100   0 360 arc stroke
5
  0  210 translate
6
  0    0 100 270 330 arc stroke
7
173 -100 100  30 150 arc stroke
8
346    0 100 210 270 arc stroke
9
showpage quit

Mit dem "arct"-Befehl müsste es auch gehen.
(Firma: Nisch-Aufzüge) Persönliche Seite #5655112
Lesenswert?

Konstruktion mit Zirkel und Lineal:
(waagerechte)Gerade zeichnen.

Mittelpunkt festlegen.

Kreis mit Zirkel und gewünschtem Radius zeichnen

Am ein Schnittpunkt der Geraden mit dem Kreis einstechen und einen Bogen 
mit dem gleichen Radius auf Umfang schlagen.

Auf der anderen Seite das gleiche Procedere.
Je eine Gerade durch den Mittelpunkt und die Schnittpunkte der Bögen 
durch den Kreis ziehen.

Je einen weiteren Bogen außerhalb des Kreises um dieselben Schnittpunkte 
auf die Geraden ergeben jeweils die Mittelpunkte der beiden Kreise 
oberhalb der ersten Geraden.

Gleichzeitig sind die Schnittpunkte am Kreis die Wendepunkte der 
gewünschten Kurve.

Zu meiner Schulzeit war das Stoff Geometrie Ende dritte Klasse.

Namaste

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren