Hallo
Mathe ist eigentlich mein lieblingsfach und ich bin auch nicht schlecht(naja besser als eins geht halt nicht )
Ich will einen CNC Simulator bauen.
die bewegungeungen des Werkzeuges werden mit Turtle gezeichnet. Wenn jetzt ein kreis kommt wird der in der CNC-Technik so angegeben:
G1 X20 Y20 #Fahre auf X20 Y20
G2 X40 Y40 R20 #Fahre eine kreis nach recht auf X40 Y40 mit einem Radius von 20
Mein Problem:
in Turtle wir ein kreis so angegeben:
circle(radius, winkel)
raduis habe ich, nur wie rechne ich den Winkel in bezug auf den endpunkt aus.
Oder gibt es ein besseres Modul zum zeichen wo ich die kreise leichter machen kann?
Gruß
Andyh
Kreis berechnung Hife!!!
Meinen Dickschädel schon bemerkt?
Ich bin jetzt FACHARBEITER (Zerspanungsmechaniker)!!!
[code]import sys
if sys.platform == "win32":
print "this program only runs on operating systems!!!"
sys.TotalError()[/code]
Ich bin jetzt FACHARBEITER (Zerspanungsmechaniker)!!!
[code]import sys
if sys.platform == "win32":
print "this program only runs on operating systems!!!"
sys.TotalError()[/code]
Also ich habe dass hier gefunden:
http://docs.python.org/lib/module-turtle.html hat geschrieben:circle( radius[, extent])
Draw a circle with radius radius whose center-point is radius units left of the turtle. extent determines which part of a circle is drawn: if not given it defaults to a full circle.
If extent is not a full circle, one endpoint of the arc is the current pen position. The arc is drawn in a counter clockwise direction if radius is positive, otherwise in a clockwise direction. In the process, the direction of the turtle is changed by the amount of the extent.
Abend,
Aber nun zu deinem Problem, ich hab mir das mal theoretisch ausgedacht ohne Anspruch auf Richtigkeit, ist ja auch schon n bischen später.
Also zuerst brauchst du den Mittelpunkt des Kreises und der ist genau R vom Anfangs- und Endpunkt entfernt also legst du jeweil einen Kreis mit dem Radius R um Anfangs- und Endpunkt, diese Kreise berühren sich dann an einem Punkt den du Berechnen musst wie das genau geht weiß ich auf Anhieb nicht mehr aber ich glaub du Musst die Schnittmenge der 2 Kreislinien bestimmen.
Dann hast den Mittelpunkt, jetzt stellst du 2 Vektoren auf einen vom Mittelpunkt zum Anfangspunkt und einen vom Mittelpunkt zum Endpunkt.
Dann kannst du den Winkel zwischen den 2 Vektoren ausrechen hier wird das beschrieben.
Ich hoffe ich konnte n bischen Helfen
pythonist
Ich hab das anderst gelernt:G1 X20 Y20 #Fahre auf X20 Y20
G2 X40 Y40 R20 #Fahre eine kreis nach recht auf X40 Y40 mit einem Radius von 20
Code: Alles auswählen
G1 X20 Y20
G2 X40 Y40 I20 J0
Also zuerst brauchst du den Mittelpunkt des Kreises und der ist genau R vom Anfangs- und Endpunkt entfernt also legst du jeweil einen Kreis mit dem Radius R um Anfangs- und Endpunkt, diese Kreise berühren sich dann an einem Punkt den du Berechnen musst wie das genau geht weiß ich auf Anhieb nicht mehr aber ich glaub du Musst die Schnittmenge der 2 Kreislinien bestimmen.
Dann hast den Mittelpunkt, jetzt stellst du 2 Vektoren auf einen vom Mittelpunkt zum Anfangspunkt und einen vom Mittelpunkt zum Endpunkt.
Dann kannst du den Winkel zwischen den 2 Vektoren ausrechen hier wird das beschrieben.
Ich hoffe ich konnte n bischen Helfen
pythonist
Erinnert mich an eine Maho-Steuerung, dort kann man bei Kreisbögen unter 180° einfach den Radius angeben.pythonist hat geschrieben:Abend,
Ich hab das anderst gelernt:G1 X20 Y20 #Fahre auf X20 Y20
G2 X40 Y40 R20 #Fahre eine kreis nach recht auf X40 Y40 mit einem Radius von 20Code: Alles auswählen
G1 X20 Y20 G2 X40 Y40 I20 J0
Hallo
Hier sind ja viel mehr CNC-Fachleute als ich gedacht hätte.
Ich werds mal Probieren.
Gruß
Andyh
Hier sind ja viel mehr CNC-Fachleute als ich gedacht hätte.
Ich werds mal Probieren.
Gruß
Andyh
Meinen Dickschädel schon bemerkt?
Ich bin jetzt FACHARBEITER (Zerspanungsmechaniker)!!!
[code]import sys
if sys.platform == "win32":
print "this program only runs on operating systems!!!"
sys.TotalError()[/code]
Ich bin jetzt FACHARBEITER (Zerspanungsmechaniker)!!!
[code]import sys
if sys.platform == "win32":
print "this program only runs on operating systems!!!"
sys.TotalError()[/code]
Ob es damit insgesamt "leichter" wird, kann ich nicht beurteilen.Andyh hat geschrieben:Oder gibt es ein besseres Modul zum zeichen wo ich die kreise leichter machen kann?
Aber wenn du ein Freund des turtle-Moduls bist (und es nicht direkt mit Tkinter machen willst), dann dürftest du hiermit auf jeden Fall mehr Freude haben:
xturtle: http://xturtle.rg16.at/
ODER
frog: http://pypi.python.org/pypi/frog/0.75
Funktioniert beides ähnlich wie turtle, kann aber VIEL mehr und macht einfach mehr Spaß. Zu xturtle gibt es ein dt. gedrucktes Buch (Python für Kids von Gregor Lingl), bei frog ist eine brauchbare dt. Dokumentation enthalten.
- birkenfeld
- Python-Forum Veteran
- Beiträge: 1603
- Registriert: Montag 20. März 2006, 15:29
- Wohnort: Die aufstrebende Universitätsstadt bei München
Und xturtle ist in Python 3