Siemens
Digital Industries, Motion Control, Machine Tool Systems
DMG CTX Beta 1250 Radien/Sphärisch Fräsen

Hallöchen liebes Forum,
seit einiger Zeit lese ich hier mit und versuche tiefer in die Programmiermöglichkeiten einzutauchen, als ich es bislang gewohnt war. Ursprünglich komme ich vom "normalen" drehen ohne großartige Fräsoperationen. Die CTX Beta 1250 TC ist absolutes Neuland für mich. Mit Drehteilen und einfachen Fräsoperationen (Flächen, Polygone Mantel/Stirn etc) komme ich mittlerweile schon recht gut klar. Jetzt eine neue Herausforderung:
Schaut euch bitte die Zeichnung mal an.
So eine Kontur lässt sich ja nicht über Shopturn programmieren nehme ich an. Dann wohl eher als G-Code Programm, weil man auch Schleifen/Parameter etc einbauen muss. So zumindest meine Vermutung bislang.
Worum es mir geht:
Ich bin kein fauler Hund der jetzt denkt:"Hoffentlich schreibt mir hier jemand das Programm, dann kann ich das so 1:1 laufen lassen", sondern, ich möchte die Abläufe und Programmiertricks und Finessen wirklich lernen. Wenn nun jemand ein komplettes PRG bzw Teil-PRG zur Verfügung stellt, das gut dokumentiert ist, dann wäre das Spitze, damit ich das Grundprinzip verstehen kann. In den 80ern habe ich recht viel in Basic programmiert, sodaß ich mir durchaus zutraue solche DIN/ISO Programme hinzubekommen.
Frage: wie beschreibe ich eine Bewegung (siehe Zeichnung, Radientasche R7.5)? mit G3 und den Verfahrachsen X und Z bei angestellter B-Achse? Radienfräser R15 (gibt es den überhaupt?) wäre hierbei wohl das Beste denke ich.
Ginge das einfach mit:
G1 X40 Z0
G3 X? Z-39 I0 K-21.5 R29.67
G1 Z-49; Auslauf
Eine allmähliche Zustellung in X könnte man ja sicherlich z.B. mit Schleifen realisieren. Eine programmierte Rotation der C-Achse wäre dann natürlich auch noch nötig. Wie ihr schon sehen könnte, stehe ich noch ganz am Anfang, aber ich möchte es unbedingt mit eurer Hilfe lernen und verstehen. Wäre toll, wenn sich der eine oder andere die Zeit nehmen würde, mich zu unterstützen!
Oder wäre es besser, wenn man die R7.5 Tasche (wie auf der rechten Darstellung zu sehen) auszeilt mit Kugelfräser und dann (wenn programmiertechnisch möglich) dann mit allmählicher Zustellung auf der R29.67 Kreisbahn abfährt Zeile für Zeile? Wie würdet ihr an die Sache rangehen?
Vielen Dank schonmal für eure Aufmerksamkeit!!
Liebe Grüße
Ingo
Der Beitrag wurde von ingo1974 bearbeitet: 02.08.2014, 08:30 Uhr
seit einiger Zeit lese ich hier mit und versuche tiefer in die Programmiermöglichkeiten einzutauchen, als ich es bislang gewohnt war. Ursprünglich komme ich vom "normalen" drehen ohne großartige Fräsoperationen. Die CTX Beta 1250 TC ist absolutes Neuland für mich. Mit Drehteilen und einfachen Fräsoperationen (Flächen, Polygone Mantel/Stirn etc) komme ich mittlerweile schon recht gut klar. Jetzt eine neue Herausforderung:
Schaut euch bitte die Zeichnung mal an.
So eine Kontur lässt sich ja nicht über Shopturn programmieren nehme ich an. Dann wohl eher als G-Code Programm, weil man auch Schleifen/Parameter etc einbauen muss. So zumindest meine Vermutung bislang.
Worum es mir geht:
Ich bin kein fauler Hund der jetzt denkt:"Hoffentlich schreibt mir hier jemand das Programm, dann kann ich das so 1:1 laufen lassen", sondern, ich möchte die Abläufe und Programmiertricks und Finessen wirklich lernen. Wenn nun jemand ein komplettes PRG bzw Teil-PRG zur Verfügung stellt, das gut dokumentiert ist, dann wäre das Spitze, damit ich das Grundprinzip verstehen kann. In den 80ern habe ich recht viel in Basic programmiert, sodaß ich mir durchaus zutraue solche DIN/ISO Programme hinzubekommen.
Frage: wie beschreibe ich eine Bewegung (siehe Zeichnung, Radientasche R7.5)? mit G3 und den Verfahrachsen X und Z bei angestellter B-Achse? Radienfräser R15 (gibt es den überhaupt?) wäre hierbei wohl das Beste denke ich.
Ginge das einfach mit:
G1 X40 Z0
G3 X? Z-39 I0 K-21.5 R29.67
G1 Z-49; Auslauf
Eine allmähliche Zustellung in X könnte man ja sicherlich z.B. mit Schleifen realisieren. Eine programmierte Rotation der C-Achse wäre dann natürlich auch noch nötig. Wie ihr schon sehen könnte, stehe ich noch ganz am Anfang, aber ich möchte es unbedingt mit eurer Hilfe lernen und verstehen. Wäre toll, wenn sich der eine oder andere die Zeit nehmen würde, mich zu unterstützen!
Oder wäre es besser, wenn man die R7.5 Tasche (wie auf der rechten Darstellung zu sehen) auszeilt mit Kugelfräser und dann (wenn programmiertechnisch möglich) dann mit allmählicher Zustellung auf der R29.67 Kreisbahn abfährt Zeile für Zeile? Wie würdet ihr an die Sache rangehen?
Vielen Dank schonmal für eure Aufmerksamkeit!!
Liebe Grüße
Ingo
Der Beitrag wurde von ingo1974 bearbeitet: 02.08.2014, 08:30 Uhr
Angehängte Datei(en)

Hi,
könntest du bitte B-B Schnitt hier reinstellen?
könntest du bitte B-B Schnitt hier reinstellen?

Den habe ich gerade nicht zur Hand. Ich denke aber, dass dort nur die Mantelfläche zum Vorschein kommt, die aber ohnehin gedreht wird. Das ist ja kein Problem.

Hallo Ingo,
Dein Beispiel ist in erster Linie viel Rechnerei.
radius.png ( 42.36KB )
Anzahl der Downloads: 68
0.5mm Vor- und Nachlauf sind von mir frei gewählt
Werkzeug = Kugelfräser Ø15 R7.5
-Startpunkt in Z
(Kreismittelpunkt In Z + (Distanz bis Z+ + Vorlauf) / Sollradius * Werkzeugmittelbahn
-21.5+(21.5+0.5)/29.67*37.17 = Z+6.061
Endpunkt in Z
(Kreismittelpunkt In Z + (Distanz bis Z- + Nachlauf) / Sollradius * Werkzeugmittelbahn
-21.5-(17.5+0.5)/29.67*37.17 = Z-44.05
Startdurchmesser
Wurzel aus (Werkzeugbahnradius² - Radiuslänge Z²) *2(für XØ) - Fräserdurchmesser
SQRT(POT(37.17)-POT(21.5+6.061))*2 -15 = X34.879
Enddurchmesser
SQRT(POT(37.17)-POT(21.5-44.05))*2 -15 = X44.097
Bitte beachte: in diesem Beispiel würde ich ohne Bahnkorrektur fahren!
G0 X34.879 Z10
G1 Z6.061
G3 X44.097 Z-44.05 R37.17
Jetzt könntest Du anfangen Deine Konstanten durch R-Parameter zu ersetzen.
R1=29.67 ;Sollradius
R2=7.5 oder $P_TOOLR für deinen Werkzeugradius
R3=0.5 ;Vor- Nachlauf
R4=-21.5 ;Kreismittelpunkt In Z
R5=39 ;Bauteillänge
;R6 Start Z
;R7 Start Ø
;R8 Ende Z
;R9 Ende Ø
R10=R1+R2 (Mittelbahnradius)
;Berechnen
R6=R4+(-R4+R3)/R1*R10
R7=SQRT(POT(R10)-POT(R4-R6))*2 - 2*R2
R8=R4-(R5+R4+R3)/R1*R10
R9=SQRT(POT(R10)-POT(R4-R8))*2 - 2*R2
Eine Schleife kannst du z.B. mit
For .. Endfor
If .. goto..
While..
generieren. Sollte Dir ja bekannt vorkommen.
Schruppen in X könnte dann so aussehen:
R11=10 ;Aufmass in XØ
R12=10 ;Anzahl Zustellungen
R13=0 ;Zähler initialisieren
BERECHNEN: (Label als Sprungziel)
R14=R11-R11/R12*R13 ;aktuelles Aufmass
R6=R4+(-R4+R3)/R1*R10
R7=SQRT(POT(R10)-POT(R4-R6))*2 - 2*R2 + R14
R8=R4-(R5+R4+R3)/R1*R10
R9=SQRT(POT(R10)-POT(R4-R8))*2 - 2*R2 + R14
G0.. ;Kontur
R13=R13+1 ;Zähler hochsetzen
IF R13 <= R12 GOTOB BERECHNEN
Beim Auszeilen der Nut kommen noch ein paar Parameter hinzu
-Es wir dabei in X eine Hand voll praralleler Schnitte in X erzeugt.
Das Aufmass sollte gleichmäßig in der Nut verteilt sein (X und Y)
-Dann wird die Nut ausgezeilt. Auf der Y- Seite 'vor' auf Y+ wechseln
und wieder 'zurück'.
R1=29.67 ;Sollradius
R2=6.0 oder $P_TOOLR für deinen Werkzeugradius
R3=0.5 ;Vor- Nachlauf
R4=-21.5 ;Kreismittelpunkt In Z
R5=39 ;Bauteillänge
;R6 Start Z
;R7 Start Ø
;R8 Ende Z
;R9 Ende Ø
R15=7.5 Profilradius
R10=R1+R14 (Mitte Profil Radius)
R11=10 ;Aufmass in XØ
R12=10 ;Anzahl Zustellungen
R13=0 ;Zähler initialisieren
;R14 aktuelles Aufmass
R16=-90 ;Anfangswinkel Profil
R17=90 ;Endwinkel Profil
R18=12 ;Anzahl der Zustellung
R19=0.5 ; Zähler Profil initialisieren
;R20 aktueller Winkel Profil
;R21 Position in Y
;Berechnen-schruppen
R14=R11-R11/R12*R13 ;aktuelles Aufmass
R6=R4+(-R4+R3)/R1*R10
R8=R4-(R5+R4+R3)/R1*R10
SCHRUPPEN: (Label als Sprungziel)
R7=SQRT(POT(R10)-POT(R4-R6))*2 - 2*R2 + R14
R9=SQRT(POT(R10)-POT(R4-R8))*2 - 2*R2 + R14
;Kontur-schruppen
G0 X=R7 Y0 Z10
G1 Z=R6
G3 X=R8 Z=R9 R=R10
G0 X..
G0 Z10
R13=R13+1 ;Zähler hochsetzen
IF R13 <= R12 GOTOB SCHRUPPEN
SCHLICHTEN: (Label als Sprungziel)
R20=R16+(R17-R16)/R18*R19 ;aktueller Profil-Winkel
R21=SIN(R20)*(R15-R2) ;Position in Y
R10=R1+R14-(R14-R2)*COS(R20) (Mittelbahnradius)
R6=R4+(-R4+R3)/R1*R10 ;Anfang Z
R7=SQRT(POT(R10)-POT(R4-R6))*2 - 2*R2 ;Anfang X
R8=R4-(R5+R4+R3)/R1*R10 ;Ende Z
R9=SQRT(POT(R10)-POT(R4-R8))*2 - 2*R2 ;Ende X
;Profil schlichten
G0 X=R7 Y=R21 Z10
G1 Z=R6
G3 X=R8 Z=R9 R=R10 ;vor
G1 Y=-R21
G2 X=R7 Z=R6 R=R10 ;zurück
G0 Z10
R20=R20+1 ;Zähler hochsetzen
IF R20 <= (R18/2) GOTOB SCHLICHTEN
Habe hier R18/2 -eingetragen, also die Anzahl der Soll-Bahnen halbiert.
Weil ich die Nut ja im Zick-Zack schlichte passt es am Ende wieder.
Wenn Du alles aus einer Richtung schlichten willst, musst Du nur R18 eintragen
und die 2. Bahn aus dem Profil entfernen.
Jetzt fehlt noch die Erkennung, dass bei Bahn bei Y=0 nur 1x gefahren werden soll...
Die Wiederholungen könntest du z.B.: wieder mit einem Label lösen.
G0 C0
NUTFRAESEN:
R1=...
ganzer Block bis
If R20..
G0 C=IC(45)
ENDLABEL:
REPEAT NUTFRAESEN P=7
Dieses Programm ist nur im Texteditor geschrieben, wird bestimmt noch Syntax- oder Rechenfehler haben!
Weitere Anregungen zum 'Zeilen' findest Du hier bestimmt im Forum. Zuletzt hier
Gruß & viel Erfolg
woaldy
Dein Beispiel ist in erster Linie viel Rechnerei.

0.5mm Vor- und Nachlauf sind von mir frei gewählt
Werkzeug = Kugelfräser Ø15 R7.5
-Startpunkt in Z
(Kreismittelpunkt In Z + (Distanz bis Z+ + Vorlauf) / Sollradius * Werkzeugmittelbahn
-21.5+(21.5+0.5)/29.67*37.17 = Z+6.061
Endpunkt in Z
(Kreismittelpunkt In Z + (Distanz bis Z- + Nachlauf) / Sollradius * Werkzeugmittelbahn
-21.5-(17.5+0.5)/29.67*37.17 = Z-44.05
Startdurchmesser
Wurzel aus (Werkzeugbahnradius² - Radiuslänge Z²) *2(für XØ) - Fräserdurchmesser
SQRT(POT(37.17)-POT(21.5+6.061))*2 -15 = X34.879
Enddurchmesser
SQRT(POT(37.17)-POT(21.5-44.05))*2 -15 = X44.097
Bitte beachte: in diesem Beispiel würde ich ohne Bahnkorrektur fahren!
G0 X34.879 Z10
G1 Z6.061
G3 X44.097 Z-44.05 R37.17
Jetzt könntest Du anfangen Deine Konstanten durch R-Parameter zu ersetzen.
R1=29.67 ;Sollradius
R2=7.5 oder $P_TOOLR für deinen Werkzeugradius
R3=0.5 ;Vor- Nachlauf
R4=-21.5 ;Kreismittelpunkt In Z
R5=39 ;Bauteillänge
;R6 Start Z
;R7 Start Ø
;R8 Ende Z
;R9 Ende Ø
R10=R1+R2 (Mittelbahnradius)
;Berechnen
R6=R4+(-R4+R3)/R1*R10
R7=SQRT(POT(R10)-POT(R4-R6))*2 - 2*R2
R8=R4-(R5+R4+R3)/R1*R10
R9=SQRT(POT(R10)-POT(R4-R8))*2 - 2*R2
Eine Schleife kannst du z.B. mit
For .. Endfor
If .. goto..
While..
generieren. Sollte Dir ja bekannt vorkommen.
Schruppen in X könnte dann so aussehen:
R11=10 ;Aufmass in XØ
R12=10 ;Anzahl Zustellungen
R13=0 ;Zähler initialisieren
BERECHNEN: (Label als Sprungziel)
R14=R11-R11/R12*R13 ;aktuelles Aufmass
R6=R4+(-R4+R3)/R1*R10
R7=SQRT(POT(R10)-POT(R4-R6))*2 - 2*R2 + R14
R8=R4-(R5+R4+R3)/R1*R10
R9=SQRT(POT(R10)-POT(R4-R8))*2 - 2*R2 + R14
G0.. ;Kontur
R13=R13+1 ;Zähler hochsetzen
IF R13 <= R12 GOTOB BERECHNEN
Beim Auszeilen der Nut kommen noch ein paar Parameter hinzu
-Es wir dabei in X eine Hand voll praralleler Schnitte in X erzeugt.
Das Aufmass sollte gleichmäßig in der Nut verteilt sein (X und Y)
-Dann wird die Nut ausgezeilt. Auf der Y- Seite 'vor' auf Y+ wechseln
und wieder 'zurück'.
R1=29.67 ;Sollradius
R2=6.0 oder $P_TOOLR für deinen Werkzeugradius
R3=0.5 ;Vor- Nachlauf
R4=-21.5 ;Kreismittelpunkt In Z
R5=39 ;Bauteillänge
;R6 Start Z
;R7 Start Ø
;R8 Ende Z
;R9 Ende Ø
R15=7.5 Profilradius
R10=R1+R14 (Mitte Profil Radius)
R11=10 ;Aufmass in XØ
R12=10 ;Anzahl Zustellungen
R13=0 ;Zähler initialisieren
;R14 aktuelles Aufmass
R16=-90 ;Anfangswinkel Profil
R17=90 ;Endwinkel Profil
R18=12 ;Anzahl der Zustellung
R19=0.5 ; Zähler Profil initialisieren
;R20 aktueller Winkel Profil
;R21 Position in Y
;Berechnen-schruppen
R14=R11-R11/R12*R13 ;aktuelles Aufmass
R6=R4+(-R4+R3)/R1*R10
R8=R4-(R5+R4+R3)/R1*R10
SCHRUPPEN: (Label als Sprungziel)
R7=SQRT(POT(R10)-POT(R4-R6))*2 - 2*R2 + R14
R9=SQRT(POT(R10)-POT(R4-R8))*2 - 2*R2 + R14
;Kontur-schruppen
G0 X=R7 Y0 Z10
G1 Z=R6
G3 X=R8 Z=R9 R=R10
G0 X..
G0 Z10
R13=R13+1 ;Zähler hochsetzen
IF R13 <= R12 GOTOB SCHRUPPEN
SCHLICHTEN: (Label als Sprungziel)
R20=R16+(R17-R16)/R18*R19 ;aktueller Profil-Winkel
R21=SIN(R20)*(R15-R2) ;Position in Y
R10=R1+R14-(R14-R2)*COS(R20) (Mittelbahnradius)
R6=R4+(-R4+R3)/R1*R10 ;Anfang Z
R7=SQRT(POT(R10)-POT(R4-R6))*2 - 2*R2 ;Anfang X
R8=R4-(R5+R4+R3)/R1*R10 ;Ende Z
R9=SQRT(POT(R10)-POT(R4-R8))*2 - 2*R2 ;Ende X
;Profil schlichten
G0 X=R7 Y=R21 Z10
G1 Z=R6
G3 X=R8 Z=R9 R=R10 ;vor
G1 Y=-R21
G2 X=R7 Z=R6 R=R10 ;zurück
G0 Z10
R20=R20+1 ;Zähler hochsetzen
IF R20 <= (R18/2) GOTOB SCHLICHTEN
Habe hier R18/2 -eingetragen, also die Anzahl der Soll-Bahnen halbiert.
Weil ich die Nut ja im Zick-Zack schlichte passt es am Ende wieder.
Wenn Du alles aus einer Richtung schlichten willst, musst Du nur R18 eintragen
und die 2. Bahn aus dem Profil entfernen.
Jetzt fehlt noch die Erkennung, dass bei Bahn bei Y=0 nur 1x gefahren werden soll...
Die Wiederholungen könntest du z.B.: wieder mit einem Label lösen.
G0 C0
NUTFRAESEN:
R1=...
ganzer Block bis
If R20..
G0 C=IC(45)
ENDLABEL:
REPEAT NUTFRAESEN P=7
Dieses Programm ist nur im Texteditor geschrieben, wird bestimmt noch Syntax- oder Rechenfehler haben!
Weitere Anregungen zum 'Zeilen' findest Du hier bestimmt im Forum. Zuletzt hier
Gruß & viel Erfolg
woaldy

WOALDY!!! Du bist ja weltklasse! Wahnsinn, was du da auf die Beine gestellt hast!! Morgen (Sonntag) fuchse ich mich in das Programm von dir rein, um genau zu verstehen, was da genau passiert! Ich werde dann nochmal Feedback dazu geben!
DANKE!
DANKE!



Level 7 = Community-Professor







Gruppe: Mitglied
Mitglied seit: 16.11.2003
Beiträge: 1.511
Mitglied seit: 16.11.2003
Beiträge: 1.511
Jetzt könntest Du anfangen Deine Konstanten Werte durch R-Parameter Variablen zu ersetzen.
R1=29.67 ;Sollradius
R2=7.5 oder $P_TOOLR für deinen Werkzeugradius
R3=0.5 ;Vor- Nachlauf
R4=-21.5 ;Kreismittelpunkt In Z
R5=39 ;Bauteillänge
;R6 Start Z
;R7 Start Ø
;R8 Ende Z
;R9 Ende Ø
R10=R1+R2 (Mittelbahnradius)
;Berechnen
R6=R4+(-R4+R3)/R1*R10
R7=SQRT(POT(R10)-POT(R4-R6))*2 - 2*R2
R1=29.67 ;Sollradius
R2=7.5 oder $P_TOOLR für deinen Werkzeugradius
R3=0.5 ;Vor- Nachlauf
R4=-21.5 ;Kreismittelpunkt In Z
R5=39 ;Bauteillänge
;R6 Start Z
;R7 Start Ø
;R8 Ende Z
;R9 Ende Ø
R10=R1+R2 (Mittelbahnradius)
;Berechnen
R6=R4+(-R4+R3)/R1*R10
R7=SQRT(POT(R10)-POT(R4-R6))*2 - 2*R2
Warum Schreibt man heute noch Programme mit R Parametern ?
Start_Z = Kreismittelpunkt_ Z + (Kreismittelpunkt_ Z + Vor_Nachlauf ) / Sollradius * Mittelbahnradius
Ließt sich für mich besser als das
R6=R4+(-R4+R3)/R1*R10

Nachtrag zur Berechnung:
Radius_2.png ( 11.35KB )
Anzahl der Downloads: 24
Der Wert Z_Startpunkt ist entweder Dreisatz oder 'halbe Winkelberechnung'
Gegenkathete / Hypotenuse = SIN...
Weil das Verhältnis gleichbleibend ist habe ich
(Kreismittelpunkt_Z+Vorlauf) / Sollradius = (Kreismittelpunkt_Z+Startpunkt_Z) / Mittelbahnradius
umgewandelt zu:
(Kreismittelpunkt_Z+Vorlauf) / Sollradius - Kreismittelpunkt_Z = Startpunkt_Z
Mittelbahnradius
Radius_3.png ( 10.44KB )
Anzahl der Downloads: 8
Der X_Wert ist dann Pythagoras
Wurzel aus (Hypothenuse²-Gegenkathete²) = Ankathete
@nixalsverdruss:
Ja, man hätte alle Variablen als Klartext definieren können:
def real Sollradius, Werkzeugradius, Startpunkt_Z usw.
Habe ich aber noch nie gemacht, und deswegen auch nicht daran gedacht.
Gruß woaldy

Der Wert Z_Startpunkt ist entweder Dreisatz oder 'halbe Winkelberechnung'
Gegenkathete / Hypotenuse = SIN...
Weil das Verhältnis gleichbleibend ist habe ich
(Kreismittelpunkt_Z+Vorlauf) / Sollradius = (Kreismittelpunkt_Z+Startpunkt_Z) / Mittelbahnradius
umgewandelt zu:
(Kreismittelpunkt_Z+Vorlauf) / Sollradius - Kreismittelpunkt_Z = Startpunkt_Z
Mittelbahnradius

Der X_Wert ist dann Pythagoras
Wurzel aus (Hypothenuse²-Gegenkathete²) = Ankathete
@nixalsverdruss:
Ja, man hätte alle Variablen als Klartext definieren können:
def real Sollradius, Werkzeugradius, Startpunkt_Z usw.
Habe ich aber noch nie gemacht, und deswegen auch nicht daran gedacht.
Gruß woaldy

Woaldy du bist der Beste!!! Habe es jetzt erst entdeckt. Ich drucke es aus und nehme es mit zur Arbeit. Ich bin so gespannt, ob ich mit deiner Hilfe hinbekomme!!!
Ich melde mich, sobald ich Ergebnisse vorweisen kann!
Danke!
Ich melde mich, sobald ich Ergebnisse vorweisen kann!
Danke!
1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: