Siemens
Siemens

Digital Industries, Motion Control, Machine Tool Systems

Planspirale fräsen, Programm gesucht, am besten parametrisch aufgebaut

Beitrag 05.06.2009, 14:42 Uhr
Mariteam
Level 2 = Community-Facharbeiter
**
Ich habe sämtliche Foren auf der Suche nach einem Programm durchstöbert, mit dessen Hilfe man eine Planspirale fräsen kann. In den Heidenhain-Foren gibt es Ansätze, aber leider kenne ich mich mit deren Programmierung nicht aus.

Bevor ich also versuche Heidenhain zu übersetzen, möchte ich an dieser Stelle erst mal fragen, ob vielleicht schon jemand für Siemens das Rad erfunden hat - im übertragenen Sinne.

Das Programm sollte das Werkzeug von einem Anfangsradius auf einer archimedischen Spirale bis zu einem Endradius steuern. Dabei wäre es am besten, wenn man die dazu benötigten Angaben variabel angeben könnte, um z.B. Planflächen mit verschiedenen Durchmessern mit Hilfe einer gleichmäßigen, spiralförmigen Zustellung zu fräsen. Die Bahnbreite dabei sollte wenn möglich auch variabel anzugeben sein.

Hat jemand so etwas schon gemacht und ist bereit, seine Lösung mitzuteilen? Ich warte gespannt auf mögliche Antworten.

Danke im voraus, mfg, Mariteam

PS: Bitte keine Lösungen, in denen Rundtische oder Drehmaschinen eine Rolle spielen wink.gif
   
Beitrag 06.06.2009, 19:12 Uhr
4970_inaktiv
Level 4 = Community-Meister
****
Also ich würde es mit TURN und OFFN probieren, nach ein paar Tests müsste eigendlich klar sein, wie man es rechnnet.

mfG.
Eisen
   
Beitrag 08.06.2009, 06:32 Uhr
Mariteam
Level 2 = Community-Facharbeiter
**
QUOTE (Eisenrobert @ 06.06.2009, 20:12) *
Also ich würde es mit TURN und OFFN probieren, nach ein paar Tests müsste eigendlich klar sein, wie man es rechnnet.

mfG.
Eisen


Es geht hier um eine Spirale, nicht um eine Schraubeninterpolation. Die oben aufgeführten Befehle kann ich für meine Planspirale also nicht gebrauchen. Oder habe ich etwas übersehen? coangry.gif
   
Beitrag 08.06.2009, 09:23 Uhr
uli12us
Level 8 = Community-Ehrenmitglied
********
Ja hast du.

Dasgeht so
G2 X50 Y0 I-50 j0 OFFN=50 Turn=9

Das ganze geht aber nur mit Werkzeugkorrektur in dem Fall von Aussen nach innen

Die einzelnen Werte musst du dir halt soweit anpassen, dass es für deine Verhältnisse passt. Wenn bei Offn-davorsteht gehts halt andersrum.
   
Beitrag 08.06.2009, 12:31 Uhr
Mariteam
Level 2 = Community-Facharbeiter
**
Vielen Dank Uli12us,
das ist ja ebenso einfach wie zugleich genial! Schade nur, das die 840C den Befehl TURN noch nicht kennt, sonst könnte ich diese Vorgehensweise dort auch gleich übernehmen. Aber das ist wieder eine andere Geschichte.

danke.gif thumbs-up.gif
   
Beitrag 08.06.2009, 15:45 Uhr
born_to_mill
Level 1 = Community-Lehrling
*
Ja hab sowas schon mal etwas umständlicher gemacht. Ist allerdings schon eine Zeit lang her und ich kann gerade nicht nachsehen da ich im Urlaub bin biggrin.gif
Aber so ähnlich sollte es gehen:
CODE
DEF INT ZUSTELLUNG
DEF INT STARTRADIUS
DEF INT ENDRADIUS
DEF INT DREHRICHTUNG
DEF REAL RAD
DEF INT ANG


ZUSTELLUNG=50
STARTRADIUS=20
ENDRADIUS=200
DREHRICHTUNG=0


ANG=0
RAD=STARTRADIUS

G111 X0 Y0
G0 AP=ANG RP=RAD
G0 Z0

IF STARTRADIUS<ENDRADIUS
  REPEAT
    ANG=ANG+1
    RAD=RAD+ZUSTELLUNG/360
    IF DREHRICHTUNG=0
      G1 AP=ANG RP=RAD
    ENDIF
    IF DREHRICHTUNG=1
      G1 AP=-ANG RP=RAD
    ENDIF
  WHILE RAD<ENDRADIUS
ELSE
  REPEAT
    ANG=ANG+1
    RAD=RAD-ZUSTELLUNG/360
    IF DREHRICHTUNG=0
      G1 AP=ANG RP=RAD
    ENDIF
    IF DREHRICHTUNG=1
      G1 AP=-ANG RP=RAD
  WHILE RAD>ENDRADIUS
ENDIF


Der Beitrag wurde von born_to_mill bearbeitet: 08.06.2009, 15:47 Uhr
   
Beitrag 11.06.2009, 18:36 Uhr
4970_inaktiv
Level 4 = Community-Meister
****
QUOTE
das ist ja ebenso einfach wie zugleich genial!


...das finde ich auch tounge.gif

mfG.
Eisen
   
Beitrag 08.07.2025, 08:13 Uhr
DRMasterChief
Level 2 = Community-Facharbeiter
**
ZITAT(uli12us @ 08.06.2009, 09:23 Uhr) *
Ja hast du.

Dasgeht so
G2 X50 Y0 I-50 j0 OFFN=50 Turn=9

Das ganze geht aber nur mit Werkzeugkorrektur in dem Fall von Aussen nach innen

Die einzelnen Werte musst du dir halt soweit anpassen, dass es für deine Verhältnisse passt. Wenn bei Offn-davorsteht gehts halt andersrum.


Hallo @uli12us und alle anderen Fräser hier,
ich muss das mal wieder hochholen. Habe genau den gleichen Fall, fräsen einer Planspirale. Die Zeichnung gibt den Startpunkt X=24 her und die "Steigung" der Spirale ist 26mm, Nutbreite 8mm.

Ich kann sie also direkt mit einem Fräser D=8 fahren, das wäre ok.

Habe vorpositioniert, Rad.korrektur gemacht, dann
G2 X24 Y0 Z=IC(-0.5) I0 J0 OFFN=26 TURN=3

und es passiert nur, daß ich 3 gleich große Kreise bekomme, es wird also keine Spirale...
Den Z-Wert habe ich nur testweise mal mit rein.

Hat jemand einen Lösungsansatz?
840D sl mit allem möglichem, an der Steuerung liegts also nicht.
Wir machen etwas ähnliches als Helix und das geht auch, warum ist die Planspirale so schwierig?
   
Beitrag 08.07.2025, 09:51 Uhr
Tobe87
Level 3 = Community-Techniker
***
ZITAT(DRMasterChief @ 08.07.2025, 08:13 Uhr) *
Hallo @uli12us und alle anderen Fräser hier,
ich muss das mal wieder hochholen. Habe genau den gleichen Fall, fräsen einer Planspirale. Die Zeichnung gibt den Startpunkt X=24 her und die "Steigung" der Spirale ist 26mm, Nutbreite 8mm.

Ich kann sie also direkt mit einem Fräser D=8 fahren, das wäre ok.

Habe vorpositioniert, Rad.korrektur gemacht, dann
G2 X24 Y0 Z=IC(-0.5) I0 J0 OFFN=26 TURN=3

und es passiert nur, daß ich 3 gleich große Kreise bekomme, es wird also keine Spirale...
Den Z-Wert habe ich nur testweise mal mit rein.

Hat jemand einen Lösungsansatz?
840D sl mit allem möglichem, an der Steuerung liegts also nicht.
Wir machen etwas ähnliches als Helix und das geht auch, warum ist die Planspirale so schwierig?


Hast du auch die Werkzeugkorrektur aktiv?
G41/G42?
Ohne das hat der Befehl "OFFN" keine Funktion.

Gruß
Tobi
   
Beitrag 08.07.2025, 10:29 Uhr
CNCFr
Level 7 = Community-Professor
*******
ZITAT(DRMasterChief @ 08.07.2025, 09:13 Uhr) *
warum ist die Planspirale so schwierig?

Die Konturelemente bei CNC-Programmen sind normalerweise Geraden und Kreise. Beide Elemente haben den großen Vorteil, dass die Mittelpunktsbahn eines Werkzeugs (Fräser), also eine äqidistante Kurve, ebenfalls Geraden bzw. Kreise sind. Bei der Werkzeugradiuskorrektur müssen Schnittpunkt zwischen diesen Elementen berechnet werden, was relativ einfach in geschlossener Form machbar ist.
Für die Planspirale (Archmedische Spirale) gilt das nicht. Die Äquidistante Kurve sieht zwar so ähnlich aus wie eine Planspirale, ist aber keine. Die Kurve ist nicht einfach geschlossen darstellbar. Schnittpunktberechnungen zwischen Planspiralen und Geraden / Kreisen oder anderen Planspiralen sind nur numerisch möglich, d.h. die müssen iterativ berechnet werden. Die Krümmung der Spirale ist nicht konstant, was zu Problemen bei der Geschwindigkeitsführung führt (der Betrag der Beschleunigung senkrecht zur Bahnrichtung ist auch bei konstanter Bahngeschwindigkeit nicht konstant und auch die Einhaltung einer konstanten Bahngeschwindigkeit ist nicht trivial).
Das bedeutet letztlich, dass man einen erheblichen Aufwand treiben muss, wenn man die Spirale als Standardelement zur Ergänzung von Geraden und Kreisen einführen will. Und die Nachfrage nach diesem Kurventyp ist ja nun auch nicht so groß.

Übrigens: Die 840D hat ja auch Splines. Bei denen hat man genau die gleichen Probleme.
   
Beitrag 08.07.2025, 12:25 Uhr
drakefighter
Level 4 = Community-Meister
****
Ich hab sowas mal gemacht:

N20 G17 G40 G64 G71 G90 ; XY, R0, BAHNSTEUERBETRIEB, mm, ABSOLUT
N30 CYCLE800(1,"DMG",200000,57,0,0,0,0,0,0,0,0,0,1,,1);GRUNDSTELLUNG
N40 G54;NULLPUNKTVERSCHIEBUNG
N50 T="SF_A_D10";WERKZEUGVORWAHL
N60 M6; UND EINWECHSELN
N70 G94 S12732 F1910; VORSCHUB IN mm/min,DREHZAHL,VORSCHUB
N80 M3 ; U/min, mm/min, SPINDEL EIN
N90 R1=0; STARTWINKEL
N100 R2=100; RADIUS
N110 R3=25; STEIGUNG
N120 G0 X=R2 Y0 Z10
N130 G1 Z-5
N140 WHILE R1<=1440
N150 G1 X=COS(R1)*(R2-R3/360*R1) Y=SIN(R1)*(R2-R3/360*R1)
N160 R1=R1+2
N170 ENDWHILE
N180 M5 M9;SPINDEL UND KSS AUS
N190 T0 M6;ZURUECK INS MAGAZIN
N200 M30;PRG STOP,SPINDEL UND KSS AUS,SPRUNG ZUM PRG-ANFANG

LG
Angehängte Datei(en)
Angehängte Datei  spirale.JPG ( 108.46KB ) Anzahl der Downloads: 37
 
   
Beitrag 13.07.2025, 20:52 Uhr
DRMasterChief
Level 2 = Community-Facharbeiter
**
Hey danke, das von drakefighter sieht schon mal gut aus, funktioniert soweit auch. Das "Ende" der Spirale gibt man dann nur über den Winkel an (N140)? !
Wenn ich die Spirale von innen heraus fräsen möchte/muss, was müsste man da ändern?

Ich hatte dieses hier versucht:
...
R8=20 ;Steigung der Spirale
N45 T=xxx
N46 M6
N50 M9
N55 G0 C0 A0
N60 G0 X23 Y0 Z100
N65 G1 Z2 F1000
N70 G1 Z-20 F2000
N75 G41 G1 X29 Y0
N85 G3 X29 Y0 I=AC(0) J=AC(0) Z=IC(-0.01) TURN=3 OFFN=R8
N90 G1 Z22
N95 L_FREI
N100 OFFN=0

alles testweise und eben leider noch nicht ganz erfolgreich sad.gif
   
Beitrag 13.07.2025, 21:40 Uhr
CNCFr
Level 7 = Community-Professor
*******
In dem Programm von drakefighter musst du in N160 von R1 jeweils den Wert 2 subtrahieren.
Das führt zunächst mal in den Winkelfunktionen in N150 dazu, dass die Drehrichtung des Kreises invertiert wird.
Außerdem wird in den Ausdrücken R2-R3/360*R1 der Radius in jedem Schritt größer statt kleiner.
Und in R2 musst du den großen Anfangsradius durch den neuen kleinen Anfangsradius ersetzen.

Zu deinem Programm mit TURN:
N85 G3 X29 Y0 I=AC(0) J=AC(0) Z=IC(-0.01) TURN=3 OFFN=R8
Weshalb gibt es die Z-Bewegung mit Z=IC(-0.01)? Willst du tatsächlich diese 10µm verfahren? Falls nicht, kannst du das auch streichen.

Der Beitrag wurde von CNCFr bearbeitet: 13.07.2025, 21:43 Uhr
   
Beitrag 14.07.2025, 07:35 Uhr
drakefighter
Level 4 = Community-Meister
****
@DRMasterChief

CNCFr hat mein Programm durchdrungen und mögliche Änderungen kommentiert.

Wo geht die Reise hin?

Leg doch hier mal eine brauchbare Skizze ab, dann kann ich mein Programm entsprechend anpassen.
Was will ich sehen:
- Startradius
- Steigung
- Gangzahl
- Drehsinn
   
Beitrag 15.07.2025, 14:55 Uhr
DRMasterChief
Level 2 = Community-Facharbeiter
**
OK gerne, hier meine Skizze. Die Nut ist rot markiert, hoffe man kann das erkennen. Die 3D-Ansicht soll das nur verdeutlichen (hat eine Umdrehung weniger, ist aber ja egal):

Start bspw. bei X30 (mit R.korr. oder ohne, wäre mir erstmal nicht so wichtig)
Steigung der Spirale 28
Nutbreite 8
(aber das ist ja alles variabel, hoffe man kann verstehen was ich meine und daß ich es mit OFFN versuchen wollte):

Angehängte Datei  spirale4.jpg ( 118.92KB ) Anzahl der Downloads: 23


Der Beitrag wurde von DRMasterChief bearbeitet: 15.07.2025, 14:58 Uhr
   
Beitrag 15.07.2025, 16:17 Uhr
CNCFr
Level 7 = Community-Professor
*******
Ich habe mal das folgende Programm geschrieben. Da ist jetzt noch nichts parametriert. Das kann ich aber nachholen, wenn das Programm so etwa in deinem Sinn ist:
QUELLTEXT
M6
N60 G0 X-26 Y-20 Z100
N65 G1 Z2 F1000
N70 G1 Z-20 F2000
N75 G41 G1 X-22 Y0
N85 G2 X0 Y22 CR=22 TURN=2 OFFN=63
N90 G1 Z22
N95 G40 X50 y89
N100 OFFN=0
M30

Ein paar Erläuterungen:
Der Werkzeugdurchmesser ist 8 mm.
Daraus ergibt sich für den Grundkreis der Radius von 22 mm (30 - 8)
Die Spirale besteht aus einen Viertelkreis + zwei Vollkreisen, also insgesamt 2,25 Umdrehungen. Da die Steigung 28 mm sein soll, ist die gesamte Änderung des Radius 2,25 * 28 = 63. Das ist der Wert von OFFN.
In N85 wird die Spirale definiert. Der Teil G2 X0 Y22 CR=22 beschreibt den Viertelkreis (ausgehend von der Position X-22 Y0 im Vorgängersatz).
In N60 bzw. N95 sind Start- bzw. Endpositionen definiert, so dass man an die Spirale tangential anfahren bzw. von der Spirale tangential abfahren kann.

Der Beitrag wurde von CNCFr bearbeitet: 15.07.2025, 16:33 Uhr
Angehängte Datei(en)
Angehängte Datei  Screenshot_2025_07_15_172113.png ( 49.84KB ) Anzahl der Downloads: 18
 
   
Beitrag 15.07.2025, 16:33 Uhr
DRMasterChief
Level 2 = Community-Facharbeiter
**
Danke CNCFr !
Werde das mal reintippen und justieren smile.gif
d.h. daß ich mit dem OFFN-Wert auf dem falschen Dampfer war?

Die Parametrierung kann ich natürlich auch selbst machen, auch bspw. noch Anpassungen für die Anzahl der "Windungen" der Spirale.

Die 840d kann ja auch einzelne Achsen skalieren, wäre es damit möglich eine archimedische Spirale in jeweils Viertelkreisen zu fahren? Das aber nur als theoretische Frage, müssen wir ja nicht weiter ausarbeiten wenn wir was anderes lauffähiges haben... smile.gif
   
Beitrag 15.07.2025, 16:36 Uhr
drakefighter
Level 4 = Community-Meister
****
N20 G17 G40 G64 G71 G90
N30 CYCLE800(1,"DMG",200000,57,0,0,0,0,0,0,0,0,0,1,,1);GRUNDSTELLUNG
N40 G54
N50 T="SF_A_D10"
N60 M6
N70 G94 S12732 F1910
N80 M3
N90 R1=0; STARTWINKEL
N100 R2=30; STARTRADIUS
N110 R3=28; STEIGUNG
N120 R4=3; ANZAHL DER GAENGE
N130 G0 X=R2 Y0 Z10
N140 G1 Z-5
N150 WHILE R1<=(R4*360)
N160 G1 X=COS(R1)*(R2+R3/360*R1) Y=-SIN(R1)*(R2+R3/360*R1)
N170 R1=R1+2
N180 ENDWHILE
N190 M5 M9;SPINDEL UND KSS AUS
N200 T0 M6;ZURUECK INS MAGAZIN
N210 M30;PRG STOP,SPINDEL UND KSS AUS,SPRUNG ZUM PRG-ANFANG

Angehängte Datei(en)
Angehängte Datei  spirale2.JPG ( 141.65KB ) Anzahl der Downloads: 17
Angehängte Datei  spirale3.JPG ( 88.63KB ) Anzahl der Downloads: 17
 
   
Beitrag 15.07.2025, 17:07 Uhr
CNCFr
Level 7 = Community-Professor
*******
Dein Programm erzeugt ja eigentlich ein Polygon. Wenn die Ecken, die dabei entstehen stören, solltest du da G1 in N160 durch CSPLINE ersetzen und dann nach der Schleife, z.B. in N190 wieder G1 setzen. Dann kannst du auch mit deutlich größeren Schrittweiten arbeiten.
   
Beitrag 15.07.2025, 19:41 Uhr
DRMasterChief
Level 2 = Community-Facharbeiter
**
Ok danke sehr, werde das mit CSPLINE mal testen und freue mich daß wir da jetzt hier ein bzw. zwei lauffähige Programme erfunden haben.
Cool,
Danke euch! smile.gif

Der Beitrag wurde von DRMasterChief bearbeitet: 15.07.2025, 19:42 Uhr
   
Beitrag 17.07.2025, 14:11 Uhr
CNCFr
Level 7 = Community-Professor
*******
[attachment=28506:SPIRALE.MPF]Ich habe jetzt mal ein parametriertes Programm für die OFFN-Variante geschrieben.

Der Beitrag wurde von CNCFr bearbeitet: 17.07.2025, 14:12 Uhr
Angehängte Datei(en)
Angehängte Datei  SPIRALE.MPF ( 3.82KB ) Anzahl der Downloads: 20
 
   
Beitrag 18.07.2025, 19:04 Uhr
okumamori1
Level 2 = Community-Facharbeiter
**
Hallo,

ein Lob an CNCFr ist ech zu bewundern was manche einfach mal so raushauen..


Grüsse Daniel
   
Beitrag 18.07.2025, 22:32 Uhr
CNCFr
Level 7 = Community-Professor
*******
Vielen Dank für die Blumen.
Allerdings habe nachträglich noch einen Fehler in meinem Programm entdeckt:
Im Satz N360 wird der Werkzeugradius gelesen. Das Werkzeug wird aber erst in N580 / 590 angewählt. Das fällt nicht weiter aus, wenn das Werkzeug ohnehin bereits aktiv ist, ist aber natürlich nicht OK, d.h. die Werkzeuganwahl gehört vor die Zeile, in der der Werkzeugradius gelesen wird.
Angehängte Datei(en)
Angehängte Datei  SPIRALE.MPF ( 3.82KB ) Anzahl der Downloads: 26
 
   
2 Besucher lesen dieses Thema (Gäste: 2)
0 Mitglieder: