Forum: Offtopic Wie konstruiere ich solch eine Kurve


von Matthias S. (da_user)


Angehängte Dateien:

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

: Bearbeitet durch User
von Matthias X. (current_user)


Lesenswert?

Ich kenne scad nicht, werfe aber trotzdem mal diese Idee in den raum: 
rechteckig zeichnen und dann eine Kantenrundung durchführen.

von Matthias S. (da_user)


Lesenswert?

Ich kann nicht sagen, ob SCAD das wirklich nicht kann, bin mir aber eher 
sicher: von sich aus nicht.
In SCAD "programmiert" man seine Formen. Eher nicht mit normalen CAD zu 
vergleichen.

von Sinus T. (micha_micha)


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

: Bearbeitet durch User
von Guido B. (guido-b)


Lesenswert?

Ich fürchte, das kann man nicht konstruieren. Wenn du es
gezeichnet bekommst, kannst du es als DXF importieren und
weiterverarbeiten (extrudieren, rotieren).

von Christian M. (Gast)


Lesenswert?

Guido B. schrieb:
> Ich fürchte, das kann man nicht konstruieren.

Wieso sollte man das nicht konstruieren können?!

Die Zentren liegen 120° zueinander.

Gruss Chregu

von Matthias S. (da_user)


Lesenswert?

Sinus T. schrieb:
> Das ist doch einfach der Pythagoras:

Dreiecke suchen! Warum habe ich nicht gleich drangedacht! Manchmal haste 
echt ein Brett vorm Kopf...

Ich habe jetzt deine Lösung auch nochmal hier am Skizzenblock 
nachvollzogen, gefällt mir. Der abschließende Test in SCAD steht 
allerdings noch aus, da bin ich aber eher guter Dinge.
Danke!

von Daniel F. (df311)


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.

von Sven J. (svenj)


Lesenswert?

Moin,

muss es SCAD sein?

In jedem "normalen" CAD Tool sind das wenige Mausklicks mit dem Trim 
Tool.

Wenn Du die Mitten der Kreise verbindest, hast Du die Umkehrpunkte der 
Kurve; prinzipiell sind das ja drei Kreisbögen mit Radius "r".

--
 SJ

von Andreas N. (andreas_n524)


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.

von Vorn N. (eprofi)


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.

von Michael M. (Firma: Autotronic) (michael_metzer)


Angehängte Dateien:

Lesenswert?

Nachdem b gelöst wurde, kann man mit einem normalen Zeichenprogramm die 
Kreise 1 bis 3 an der roten Linie tangential zusammenstutzen. Ist die 
Stutzfunktion bei SCAD überhaupt möglich?

: Bearbeitet durch User
von Vorn N. (eprofi)


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.

von Walter T. (nicolas)


Angehängte Dateien:

Lesenswert?

So ganz banal entspricht das doch einer dichtesten Kreispackung.

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.