Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1616to1620
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Bahnfräsen mit Excel

Bahnfräsen mit Excel
03.04.2018 01:55:13
wolfi
Hallo Forum,
ich bin Fräser und möchte mir mit VBA eine Programmierhilfe für meine Fräsmaschine basteln mit der ich von einer bestimmten Position zu einer anderen Position fahren kann, dann in die Tiefe zustelle und wieder zurück zum Ausgangspunkt fahre, wieder zustelle und so weiter hin und her bis ein bestimmter Wert erreicht ist.
X und Y sind Koordinaten im Zweidimensionalen Raum, Z geht dann in die Tiefe.
Startpunkt X0. Y0. und Z0.
Endpunkt X0. Y100. und Z-20.
Nun soll die Tabelle folgendermassen aussehen:
X0. Y0.
Z0.
X0. Y100.
Z-1.
X0. Y0.
Z-2.
X0. Y100.
Z-3.
X0. Y0.
Und so weiter bis Z-20. erreicht wird. Das sieht ja eigentlich sehr easy aus und man kann das natürlich auch leicht alles tippen, aber wenn man im Z nur 0,1 zustellen möchte und eine sehr tiefe Bahn fräsen möchte können das schnell hunderte oder gar tausende Zeilen ergeben. Das würde ich mir gerne etwas automatisieren.
Ich habe mir schon ein Tool gebastelt, allerdings für das Helix-Fräsen, also Kreisförmig in die Tiefe gehen. Ich lege dieses Tool mal als Beispiel bei, damit die Experten hier im Forum wissen wie so etwas bei mir aussieht. Die ganzen Sachen mit "G" sind übrigens Maschinenbefehle, G2 z.B heisst Kreisbewegung im Uhrzeigersinn. Das braucht alles nicht berücksichtig werden, das kann ich mir dann schon selbst fertig basteln. Was für mich wichtig wäre ist nur die Routine das die Werte immer so wie im Beispiel wiederholt werden bis der Z- Endwert erreicht ist. Die copy Funktion am Schluss habe ich eingefügt damit ich das Ergebis direkt aus der Zwischenablage in meinen CNC-Editor einfügen kann. Nur zur Info, falls sich wer wundert für was das sein soll.
Ich hab mich auch selber schon dran versucht, ich scheitere aber daran das der Z Wert immer als einzelne Zeile zwischen den jeweiligen X und Y Werten stehen muss. also wenn mir da jemand helfen könnte wäre das Super. Vielen Dank schon mal im Voraus.
https://www.herber.de/bbs/user/120818.xls

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bahnfräsen mit Excel
03.04.2018 08:23:17
Klexy
Hallo Wolfi,
das wäre dann der Code-Schnipsel, den du an der entsprechenden Stelle einfügen müsstest (Userform-Felder entsprechend ändern!):
X0 = CDbl(Me.TextBox1.Value)        'Startpunkt X
X1 = CDbl(Me.TextBox2.Value)        'Endpunkt X
Y0 = CDbl(Me.TextBox3.Value)        'Startpunkt y
Y1 = CDbl(Me.TextBox4.Value)        'Endpunkt Y
Z0 = CDbl(Me.TextBox5.Value)        'Startpunkt Z
Z1 = CDbl(Me.TextBox6.Value)        'Endpunkt Z
Schritt = CDbl(Me.TextBox7.Value)  'Zustellung Z je Wendel
Set Anfang = Range("A1")' hier entsprechende Anfangszelle eingeben
Tiefe = 0
Anfang.Offset(0, 0).Value = X0
Anfang.Offset(0, 1).Value = Y0
Anfang.Offset(1, 0).Value = Tiefe
Set Anfang = Anfang.Offset(2, 0)
Do Until Tiefe 

Anzeige
AW: Bahnfräsen mit Excel
03.04.2018 23:26:23
wolfi
Hallo Klexy, vielen Dank. Du hast mir schon gut weitergeholfen.
Ich habe die angepasste Datei mal hochgeladen.
Ein kleines Problem mit der Nuttiefe Z gibt es noch, damit kann ich aber leben. Das kann man dann abschliessend im CNC-Editor leicht anpassen.
Mach mal spasshalber in der Userform Startpunkt X 0, Startpunkt Y 0 , Endpunkt X 10 Endpunkt Y End 10, Z Start 0, Nuttiefe 10 und Zustellung je Gang 1.
Dann passt alles. Mache mal Zustellung je Gang 0,5 dann passt es auch noch. Wenn die Zustellung je Gang aber kleiner wird, zb. 0,4 0,3 0,2 oder 0,1 oder noch kleiner fügt die Routine zum Schluss noch einige Zeilen hinzu obwohl eigentlich bei Z-10. Schluss sein sollte. Mir ist nicht ganz klar warum die Routine diese Zeilen noch hinzufügt. Ich werd jetzt aber auch selber noch etwas feilen.
https://www.herber.de/bbs/user/120841.xls
Anzeige
AW: Bahnfräsen mit Excel
04.04.2018 00:29:28
Klexy
Schau ich mir morgen an. Bei meinen Tests hat alles geklappt.
AW: Bahnfräsen mit Excel
04.04.2018 06:53:31
Klexy
Schau ich mir morgen an. Bei meinen Tests hat alles geklappt.
AW: Bahnfräsen mit Excel
04.04.2018 18:49:20
Klexy
Das mit den negativen Schritten, die aber im Formular positiv eingegeben werden und eine negative Tiefe erreichen sollen, die positiv eingegeben wird, ist da im Zusammenhang mit größer gleich oder kleiner gleich schon etwas unübersichtlich.
So sollte es in jedem Fall funktionieren. Am Schluss wird ggf. noch ein kleinerer Schritt gemacht, um nur bis zur geplanten Tiefe zu gehen und nicht weiter.
    Range("A1").Value = "G0"
Range("B1").Value = "X"
Range("C1").Value = X0
Range("D1").Value = "Y"
Range("E1").Value = Y0
Set Anfang = Range("A2") ' hier entsprechende Anfangszelle eingeben
Tiefe = 0
Tiefe = Tiefe - Schritt
Anfang.Offset(0, 0).Value = "G1"
Anfang.Offset(0, 1).Value = "Z"
Anfang.Offset(0, 2).Value = Tiefe
Anfang.Offset(0, 2).Font.Bold = True
Anfang.Offset(1, 0).Value = "X"
Anfang.Offset(1, 1).Value = X1
Anfang.Offset(1, 2).Value = "Y"
Anfang.Offset(1, 3).Value = Y1
Set Anfang = Anfang.Offset(2, 0)
Tiefe = Tiefe - Schritt
Do While Tiefe >= Z1 * -1
Anfang.Offset(0, 0).Value = "Z"
Anfang.Offset(0, 1).Value = Tiefe
Anfang.Offset(0, 1).Font.Bold = True
Anfang.Offset(1, 0).Value = "X"
Anfang.Offset(1, 1).Value = X0
Anfang.Offset(1, 2).Value = "Y"
Anfang.Offset(1, 3).Value = Y0
Tiefe = Tiefe - Schritt
If Tiefe + Schritt = Z1 * -1 Then
'letzter Schritt hat schon die Nuttiefe erreicht
ElseIf Tiefe > Z1 * -1 Then
'nächster Schritt erreicht die Nuttiefe noch nicht
Anfang.Offset(2, 0).Value = "Z"
Anfang.Offset(2, 1).Value = Tiefe
Anfang.Offset(2, 1).Font.Bold = True
Anfang.Offset(3, 0).Value = "X"
Anfang.Offset(3, 1).Value = X1
Anfang.Offset(3, 2).Value = "Y"
Anfang.Offset(3, 3).Value = Y1
If Tiefe - Schritt 

Anzeige
AW: Bahnfräsen mit Excel
04.04.2018 21:24:52
wolfi
Ja, das mit den negativen Werten hätte ich besser erklären sollen. Man fräst quasi im dreidimensionalen Raum. Mit X fährt der Maschinentisch links rechts, Y ist vorne hinten und mit Z fährt die Werkzeugspindel hoch und runter. Z0. ist oben auf dem Werkstück und man fräst dann halt ins Minus. Wenn die Taschentiefe bzw. Nuttiefe z.B. 15mm ist heisst das in Wirklichkeit -15mm. Das gibt aber niemand so an. Deshalb vielleicht etwas verwirrend. Macht aber nichts, mit Deiner Hilfe komm ich da durch :-)
Funktioniert jetzt wunderbar so. Vielen Dank
AW: Bahnfräsen mit Excel
04.04.2018 22:31:51
wolfi
ich hab den Code bei der Tiefe noch ganz leicht verändert. So kann ich auch von positiven Z Werten bis 0 fräsen. Gebe ich als Z Start, zb. 5 ein und Nuttiefe -0,1 mit Zustellung 0,3mm zeilt es mir runter bis auf ein Zehntel mm als Schlichtzugabe. Perfekt!!!! Hab alle Möglichkeiten ausprobiert und es funktioniert ohne Fehler. Nochmals tausend Dank!!!!!!!!!!!!!!!
Range("A1").Value = "G0"
Range("B1").Value = "X"
Range("C1").Value = X0
Range("D1").Value = "Y"
Range("E1").Value = Y0
Range("A2").Value = "Z"
Range("B2").Value = Z0
Set Anfang = Range("A3") ' hier entsprechende Anfangszelle eingeben
' Tiefe = 0
Tiefe = Z0 - Schritt
Anfang.Offset(0, 0).Value = "G1"
Anfang.Offset(0, 1).Value = "Z"
Anfang.Offset(0, 2).Value = Tiefe
Anfang.Offset(0, 2).Font.Bold = True
Anfang.Offset(1, 0).Value = "X"
Anfang.Offset(1, 1).Value = X1
Anfang.Offset(1, 2).Value = "Y"
Anfang.Offset(1, 3).Value = Y1
Set Anfang = Anfang.Offset(2, 0)
Tiefe = Tiefe - Schritt
Do While Tiefe >= Z1 * -1
Anfang.Offset(0, 0).Value = "Z"
Anfang.Offset(0, 1).Value = Tiefe
Anfang.Offset(0, 1).Font.Bold = True
Anfang.Offset(1, 0).Value = "X"
Anfang.Offset(1, 1).Value = X0
Anfang.Offset(1, 2).Value = "Y"
Anfang.Offset(1, 3).Value = Y0
Tiefe = Tiefe - Schritt
If Tiefe + Schritt = Z1 * -1 Then
'letzter Schritt hat schon die Nuttiefe erreicht
ElseIf Tiefe > Z1 * -1 Then
'nächster Schritt erreicht die Nuttiefe noch nicht
Anfang.Offset(2, 0).Value = "Z"
Anfang.Offset(2, 1).Value = Tiefe
Anfang.Offset(2, 1).Font.Bold = True
Anfang.Offset(3, 0).Value = "X"
Anfang.Offset(3, 1).Value = X1
Anfang.Offset(3, 2).Value = "Y"
Anfang.Offset(3, 3).Value = Y1
If Tiefe - Schritt 

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige