CNC-Fräse: Unterschied zwischen den Versionen

aus Metalab, dem offenen Zentrum für meta-disziplinäre Magier und technisch-kreative Enthusiasten.
Wechseln zu: Navigation, Suche
K (spelling)
(42 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
{{Maschinenring}}
 
{{Maschinenring}}
 +
{{Languages|en}}
 +
{{Machine
 +
|image=Geilomat_kaefig.jpeg
 +
|owner=Metalab, some Parts of the machine are held private
 +
|status=Aktiv
 +
|requirestraining=Ja
 +
|requiresauth=Nein
 +
|teachers=[https://lists.metalab.at/mailman/listinfo/cnc CNC Mailing List]
 +
}}
 +
__TOC__
 +
<span style="color: red;">'''WARNING:''' Do not use this machine if you did not had a previous introduction to the workflow. It is quite complex and working with this device can easily result in a visit to the hospital...</span>
  
For projects results of this machine, please visit http://geilomat.soup.io/
+
= CNC aka the Geil-o-Mat =
== Introduction ==
+
  
A CNC mill like the dear Geil-O-Mat has three axis that can be moved independently. A spindle with a [http://de.wikipedia.org/wiki/Fr%C3%A4swerkzeug mill cutter] typically removes material.
+
'''What is it?''' It is a CNC ([http://de.wikipedia.org/wiki/Computerized_Numerical_Control Computerized Numeric Control]) Machine, which is located in the Heavy Machinery Department of the Metalab.
[[Bild:geilomat.jpg|thumb|400px|right|Some pink work in progress...]]
+
  
Each axis is driven by one (Y and Z) or two (X) stepper motors. Basically, theses motors can only rotate in 1.8 degree steps, and hence no secondary encoder is needed for the machine knowing its current location. By a trick called "microstepping", currently the resolution is increased to 1/8 of 1.8 degrees.
+
Technical Outline:
As the stepper leads in to a "Zwillings-Trapezgewindespindel", the rotation is transformed into linear motion, one revolution= 6mm.
+
* '''Spindle speed''': 6000 - 24000 min^-1
Warning: If there is too much force for the motor to move one step, it skips the step, typically failing also in subsequent movements, resulting in an ugly noise, and shift in the positioning.
+
* '''Tool Size''': 1mm up to 8mm shank, also 1/8" shanks
 +
* '''Maximum step speed''': 2000 mm*min^-1
 +
* '''Maximum Workpiece Dimension''': about 725mm * 395mm (X*Y). The height depends on your workpiece, millhead and where do you fix it!
 +
* '''Cooling''': Air (or liquids by hand)
 +
* '''Clamping''': Various - depends on your job
 +
* '''Software''': Runs via LinuxCNC (an Open Source CNC Software)
  
The motors are connected to a driver device, which sits on top of the whole machine. It creates the strong currents for the stepper drivers, out of signals from the PCs parallel port.
+
For projects results of this machine, please visit http://geilomat.soup.io/
  
Hence, the computer has to send signals telling which axis should move one step forward or backward at a given instance. This can/is done by a software called "EMC". It is open source, and the thread doing this parallel port communications is using the patched real time Linux-kernel.
+
Ask on our Mailinglist for help: https://lists.metalab.at/mailman/listinfo/cnc
  
There are some GUIs for EMC, the most relevant is "AXIS", which graphically displays the current machine position, the paths it should travel the track history, and further stuff. Also manual movement can be performed.
+
== Standard Procedure ==
 +
[[Datei:Geilomat_warning.svg|200px|thumb|right|Warning Sign which is now implemented in the geilomat]]
 +
There are some important steps to take, otherwise you can destroy everything - even the earth...
 +
If you don't switch on the things in this particular order it can happen that the machine does things out of nowhere e.g. moves or turns on the spindle!!!
 +
=== Start Up ===
 +
* Start CNC PC (dont turn on the G4 (The "G4 Case" stepper control thing), neither the FU)
 +
* Start LinuxCNC
 +
* Check if the "Notaus" is physically triggered on the machine (Button is pressed)
 +
* Now power on the G4
 +
* Now plug in the FU ("Frequenzumformer")
 +
** Wait until the FU is booted
 +
** Check if 100.0 Hz is set on the screen of the FU
 +
*** Otherwise rotate the rotary encoder that it is 100.0Hz
 +
* Now remove "Notaus" from the CNC
 +
* Power on the Machine inside LinuxCNC
 +
* Move near Homing position
 +
* Home the machine
 +
* Warm up the Spindle as described here in the wiki
  
The language to specify the movement of the machine is called "GCODE". Some of its [http://linuxcnc.org/docs/html/gcode.html statements] are starting with G01,or G00, hence the name.
+
Now the machine is ready to use.
A simple Gcode can look like this:
+
; i am a comment
+
F100; move with 100mm/min while cutting
+
G0 Z10; fast move to Z-coordinate 10
+
G1 Z0; drill down until Z=0 with the speed given by the Feedrate
+
G1 X10; move to the new location X10 while cutting
+
G0 Z10; and back up with large speed.
+
M30; end program
+
  
One can do a lot of things, e.g. have variables (#1=10), and do loops , evaluate mathematical expressions (G1 Z[#1*2] ).
+
For milling the spindle needs to be warm. The manual says that you should first let the spindle run for about 1 minute on 6000rpm, then increment by 6000rpm for 1 minute until you reached your destination speed. If the spindle wasn't used for longer than one week, you should double that time.
So basically, real hackers write gcode by hand, while Chuck Norris sends movement commands to the steppers.
+
So better is to let it run for two minutes on each speed.
However, as we are all lacy, and things can get quite complicated, there exists software to convert 3d/2d CAD files, grayscale depthmap images, 3d-stl objects and other things into Gode. This is often called "CAM"-Software.
+
  
If you have a 2d-cad file (e.g. dxf) and specify depths for some areas that should be milled away, one speaks of 2.5D-CAM. This is performed e.g. by CamBam, or Camexpert.
+
There is a sample code in the [[CNC-Fräse#GCode|GCode]] Section
  
The biggest trouble is the '''radius compensation''' of the milling heads. You always have to cut on a path half a diameter outside of the actual position.  For this, there are various workflows. In Gcode, one can tell specify if one wants to cut left, right or directly on the actual path. This is called cutter radius compensations. Its a pain in the ass. Hence, often one uses no such thing, but either draws directly the offsetted lines in CAD, or has some software like cambam, which does this compensation and outputs already compensated "paths". The drawback of both methods is that one can not change the diameter of the cutter without recreating the gcode.
+
=== Power Down ===
  
In the Gcode compensation, a "tool table" is used. Each cutter is index by a number, and in the table the diameters and other things are specified.
+
* Move Machine in a position where you can easily clean it and remove millheads
 +
* Press Emergency Stop
 +
* Plug out VFD
 +
* Shut down G4
 +
* Exit LinuxCNC
 +
* Power off PC
 +
* Remove Millhead and Clamp
 +
* Clean the machine-bed and everything else.
  
The current machine's state  is given by a coordinate triple, and some states (emergency swich, spindle speed, ...). The machine '''coordinate system''' is defined by the now automated homing routine. Thereafter, one can move the machine to a location, and "touch off", giving explicit coordinates for this location. Thereby the working coordinate system is defined. This is also the system displayed in Axis, However, in the background, the machine still works in the home-coordinate system for checking its movement limits. Clever!
+
== Wie Spanne ich ein Werkzeug richtig ein ==
  
== Current Status==
+
=== Wahl der richtigen Spannzange===
 +
Der Spannzangensatz ist zwischen 1mm und 7mm auf 0.5mm gestuft.
 +
Stimmt der Nenndurchmesser des Schafts mit dem Nenndurchmesser ein Zange überein,
 +
dann nimmt man die. Für Zwischenwerte die nächst größere Spannzange.
 +
Für 1/8-Zoll-Schäfte sind eigene Zangen vorhanden, für 1/4-Zoll leider nur die 6,5er-Zange
 +
Der kleinste Schaft, den ich mich in die 1mm-Zange spannen traue ist 0.7mm
 +
===Überwurfmutter===
 +
Wie auch bei der Kress-Spannzange ist als erstes die Spannzange in die Spindelmutter (Überwurfmutter)
 +
einzurasten. Die Zange sitzt richtig, wenn ihr Aussenende (nahezu) plan zur Mutter ist (auch nach dem
 +
Aufschrauben auf die Spindel prüfen, bevor man fest anzieht).
 +
(Bei genauer Betrachtung der Mutter fällt auf, dass der Bund, der in den Einstich der Spannzange
 +
einrastet exzentrisch zur Achse der Mutter ist. Das ist Absicht und erleichtert das Einrasten.)
 +
===Einbau des Werkzeuges ===
 +
Das Werkzeug in die Spannzange (in der Mutter) einstecken
 +
Manche Fräser haben eine Flachstelle am Schaft. Die Enden der Spannzange sollten nicht in
 +
diesem Loch zu liegen kommen, da sonst die Zange asymmetrisch spannt und eventuell
 +
beschädigt wird. (Das innere Ende Spannfläche muss nicht das Ende des gesamten Körpers sein,
 +
manche Zangen sind abgesetzt)
 +
Bis 7mm ist es möglich, den Werkzeugschaft durch die Zange in die Spindel zu stecken.
 +
Bei der 8er-Zange geht das nicht!
 +
=== Montage des Werkzeuges ===
 +
Die Zange mit dem Werkzeug in die Spindel einsetzen und Mutter aufschrauben
 +
Da die Zange im offenen Zustand, speziell bei Bohrern, die etwas kleineren Schaftdurchmesser
 +
haben, das Werkzeug nicht halten kann, folgen die Werkzeuge gern der Schwerkraft.
 +
Man braucht einen 13er-Schlüssel für die Spindelachse, einen 17er für die Mutter und eine 3. Hand,
 +
um das Schneidwerkzeug zu halten. Oder doch nicht? Wenn man die Y-Achse und Z-Achse geschickt
 +
positioniert, kann man den 13er auf die Schleppkette auflegen und gegen das Portal lehnen.
 +
Alternativ kann man einen Holzblock unter das Werkzeug stellen.
 +
Es schadet generell nicht, bei offenem Arbeitsraum-Boden (so wie jetzt wo ich oft werkel) eine
 +
Holzplatte unter der Spindel am Boden aufzulegen, falls das Werkzeug doch "abpascht" (beim Ausspannen!).
 +
===die Mutter anziehen===
 +
Wie oben erwähnt jetzt noch mal den richtigen Sitz der Zange prüfen!
 +
Das Gewinde der Mechatron-Spindel ist sehr fein, daher erzeugt es schon bei mäßigem Drehmoment
 +
recht hohe Axialkräfte, die letztendlich die Zange schließen. Das erzeugt Radialkräft auf den Werkzeugschaft,
 +
die über Reibung das Werkzeug halten. Wie wir alle wissen, ist die Flächenpressung, die ein Werkstoff erträgt
 +
begrenzt und gleich Kraft durch Fläche. Die Pressfläche ist bei kleinen Zangen viel kleiner als bei großen,
 +
daher speziell diese mit Gefühl anziehen.
 +
Wenn alle Spiele aus der Anordnung verschwunden sind, gibt es einen Punkt, wo das Anziehen "hart" wird.
 +
Über diesen Punkt hinaus sollte man nicht gehen.
  
* EMC is quite configured. Max-Movement speed is approx 4200 mm/min. --[[Benutzer:Geraldm|Geraldm]] 20:29, 5. Jun. 2010 (CEST) Its a great device.
 
  
* Homeing procedure in EMC is functional, and by that also soft-limits. Its now "nearly" impossible to move over some limits. Start EMC, turn machine on with f1/f2, press "home all", wait 30 sec. Than traverse to the wished zero of your working coordinate system, and touch off in all three axes.
 
* The Spindle, aka the Kress, is switched on/off automatically.
 
** This is done with the spindle buttons in EMC. However, on the physikal controller device onboard the geilomat cupboard, the relais switchs have to be turned off.They override the emc settings.
 
  
* Double sided boards kind of work, although its a bit tricky: [[PCB_CNC]]
+
== GCode ==
 +
See also in the [http://linuxcnc.org/docs/html/gcode.html Gcode reference] of LinuxCNC
  
* Joypad is configured: Buttons 1-4 are increasing feed rate, while the analog sticks are the movement  --[[Benutzer:Bkubicek|Bkubicek]] 19:29, 15. Jul. 2010 (CEST)
 
  
* A flat intermediate wood board 30cm^2x1cm, milled flat, now exists. So pcbs can be glued with double sided tape in a completely flat way.
+
Example Gcode Header for Geilomat:
 +
G21      ; use mm
 +
G90      ; absolute coordinates
 +
G54      ; use G54 coordinate system
 +
G40      ; turn radius compensation off
 +
G17      ; choose x,y plane
 +
G80      ; Cancel Motion Modes
 +
G94      ; movement speed is in mm/min
 +
G49      ; turn cutter legth compensation off
 +
G0 Z10  ; Go to saftyplane
 +
M3      ; switch on spindle
 +
S6000    ; Drehzahl auf 6000 min-1 einstellen
 +
G4 P120  ; 2min warten bis motor warm ist
 +
S12000  ; Drehzahl erhöhen
 +
G4 P120  ; 2min erneut warten.
 +
(immer um 6000 erhöhen bis die Drehzahl erreicht wurde)
 +
F500    ; 500mm/minutes movement speed
 +
 +
(your program starts here... now you can do things like)
 +
G0 X0 Y0 ; go to your 0,0 point rapidly
 +
G1 Z0    ; go to Z0 with 500mm/min (as set with F command)
 +
  
* The dust removal system is configured, and working.
+
Typical gcode Tail:
 +
; the tail
 +
G0 Z10  ; retract from workplane - safty plane
 +
M30      ; end program
  
 +
== Parameters for typical jobs ==
  
=== Todo ===
+
Please note that these Values are produced under different circumstances - like how many "Schneiden" a mill has or what kind of mill you are using!
 
+
Please use also "Drehzahlrechner" for looking up proper values.
 
+
* http://softsolder.com/2010/04/17/ugliest-tool-length-probe-switch-repeatability/
+
* get some flat 4-5 mm wood to put underneath the actual workpeace for cutting/milling through.
+
* Revitalize the "Absaugung"
+
* Reboot the lubrication thingy.
+
** It works by turning on the compressor. The Hex-Screw changes the ammount, the ball-stick turns it on/off.
+
* Find a way of dealing with oily aluminium dust.
+
* buy some normal wood in reasonable size (40x100x1.8 cm)
+
* organize some aluminium for testing
+
* move the x homeswitch to the right hand side, so that larger workpieces can be used.
+
 
+
=== Ideas ===
+
 
+
* build/buy a [http://www.vinland.com/Touch-Probe.html touch-probe] (or [http://www.indoor.flyer.co.uk/probe.htm like this]).
+
* Build/buy a [http://www.cnc-modellbau.net/shop/start.htm?spannmittel_vakuumtische.htm Vakuum-Table ]
+
 
+
* A [http://asset.soup.io/asset/0830/5162_2b28_960.jpeg led-ring] for illumination the milling location.
+
* Build a 4th, [http://www.youtube.com/watch?v=O-RzYjSPzP4&feature=related rotating axis].
+
--[[Benutzer:Bkubicek|Bkubicek]] 13:44, 4. Jun. 2010 (CEST)
+
 
+
=== Wishlist ===
+
 
+
* 1-2 Kress Überwurfmuttern. Das ständige Rausmontieren suckt gewaltig.
+
* 2-schneidige Fräserköpfe 2-4 mm 8-20 Schneidenlänge.
+
* Schon bestellt: [[Benutzer:Bkubicek|Bkubicek]] 09:41, 3. Aug. 2010 (CEST) get some Dustbags for Thomas Blue Power, if it can stay permanently, or an industrial vacuum cleaner..
+
 
+
==History==
+
 
+
[[Bild:Cnc_schoen.JPG|thumb|right|So eine schöne..]]
+
[[Bild:Cnc_vorne.JPG|thumb|right|yummy.]]
+
[[Bild:Cnc_marius_flo_chris.JPG|thumb|right|Die guten Helferlis]]
+
[[Bild:Cnc_flo_box.jpg|thumb|right|Flo in seinem neuen Stall]]
+
 
+
Es war einmal .. eine CNCfräse.
+
 
+
Sie war eine gute Fräse und alle Kinder hatten sie gerne, spielten mit ihr und tanzten im bunten Reigen singend um sie herum..
+
 
+
Doch eines Tages rief sie das Schicksal und sie musste ihrer Bestimmung nachkommen .. dem Fräsen.
+
 
+
Nicht dass du glaubst sie wäre darin nicht gut gewesen.
+
 
+
Nein nein!  Ganz im Gegenteil!!
+
 
+
Sie war eine ausgezeichnete Fräse!
+
 
+
..aber  die Materialien staubten ganz fürchterlich und der Lärm brachte die verkaterten Schädel der Kinder zum Zittern..
+
 
+
Die Fräse schien verflucht!
+
 
+
Soviel Gutes und Schönes sie auch in der Welt zu bewirken vermochte, soviel Schrecken und Dreck verursachten der Staub und Lärm sobald man ihren Motor anwarf.
+
 
+
Eines Tages erfuhr ein edler Ritter von diesem Dilemma und machte sich auf den Weg, die verwunschene Maschine von ihren Leiden zu erlösen.
+
 
+
Er schwang sich auf sein weißes Ross, schwer behangen mit
+
* einem Akkubohrer
+
* einer Stichsäge
+
* 3 Plexiglasplatten
+
* 5 Pressspanplatten
+
* 2 Scharnieren
+
* 4 Magnetkontakten
+
* 2 Türgriffen
+
* unendlich vielen Winkeln
+
* einem Staubsauger
+
* einer Neonröhre mit Schutzglas
+
 
+
.. und bezwang in einer spektakulären zweitägigen Heimwerkeraktion das Biest.
+
 
+
Heute lebt die Fräse im Metalabber Whateverlab, hat eine integrierte Staubabsaugung, Schalldämmung und Beleuchtung.
+
 
+
Ihr bester Freund der Computer hat eine umfangreiche Palette an CNC Software installiert und ist fix mit dem Biest verbunden..
+
 
+
 
+
Und wenn sie nicht gestorben sind dann fräsen sie noch heute.
+
 
+
 
+
 
+
..und warum jetzt geil-o-mat?
+
 
+
weil ich das gut finde.
+
 
+
--[[Benutzer:Overflo|Overflo]] 13:56, 8. Dez. 2007 (CET)
+
==Reference==
+
a usefull preamble for this mill:
+
S1 M3 G4 P2 ; turn on spindle adjust to your mill
+
M7
+
M8
+
F950
+
G90
+
G21
+
 
+
[http://linuxcnc.org/docs/html/gcode.html Gcode reference]
+
=== Cheat Sheat ===
+
Ersetzen Gcode-Zeilennummern im Texteditor Kate replace "N[0-9]* " by "" using regular expression.
+
 
+
 
+
Example Gcode Header for Geilomat:
+
G21 ;mm
+
G90 ; absolute coordinates
+
G0 Z10
+
G0 X0 Y0
+
F500 ;500mm/minutes movement speed
+
M7 ; staubsauger an
+
S1 M3 ; fraeser einschalten
+
G4 P2 ; 2 sekunden warten bis motor gut rennt
+
Typical gcode Tail:
+
; the tail
+
G0 Z10  ; retract from workplane
+
M2 ; end program
+
  
=== Parameters for typical jobs ===
+
Please be aware that, like with the lasercutter, not every material can be cut and for each material you have certain parameters. These parameters are in the first place a result of the tool you use but also depends on chemical and mechanical compound of the material you need to cut.
 +
For example there are a lot of aluminium types, like AlMgSiPb or AlCuBiPb which is very good for milling and also pure Al99,5 which is very very bad for milling!!!
 +
This counts for all types of material, also for wood! e.g. MDF has very different cutting parameters than birch wood...
  
 
{| class="wikitable" border="1" cellpadding="5" cellspacing="0" align="center"
 
{| class="wikitable" border="1" cellpadding="5" cellspacing="0" align="center"
Zeile 174: Zeile 156:
 
! Material
 
! Material
 
! Head Diameter mm
 
! Head Diameter mm
! Cutting Depth mm
+
! Cutting Depth mm (a_p)
! Sidewards depth in % of diameter
+
! Sidewards depth in % of diameter (a_e)
 
! Spindle Speed
 
! Spindle Speed
 
! Feed Rate mm/min
 
! Feed Rate mm/min
 
! Comment
 
! Comment
 
|-
 
|-
| MDF ||8||2||?||2||30||MDF is usually too thick to be milled with our normal milling heads, so we're using a bigger (8mm diameter) end mill. Plunge 10.
+
| MDF ||8||2||?||12000||30||MDF is usually too thick to be milled with our normal milling heads, so we're using a bigger (8mm diameter) end mill. Plunge 10.
 
|-
 
|-
| Wood ||3||5||50%||2-3||>300|| guessed proposal
+
| Wood ||3||5||50%||12000-14000||>300|| guessed proposal
 
|-
 
|-
| Wood ||0.8||4||100%||2-3||~250|| guessed proposal
+
| Wood ||0.8||4||100%||12000-14000||~250|| guessed proposal
 
|-
 
|-
| Aluminium||3||1||50%||3||300|| guessed proposal with cooling
+
| Aluminium || 6 || 0.25 || 6mm || 10000 || 1100 || Vierschneider, schleppender Schnitt - no external cooling
 
|-
 
|-
| Aluminium||10||10||20%||8||3000|| on an industrial machine, for comparison
+
| Aluminium || 6 || 0.25 || 6mm || 10000 || 650 || Zweischneider, schleppend und ziehender schnitt - no external cooling
 
|-
 
|-
| PCB engrave||0.1-0.3 30deg||0.3|| ||2||1000|| tested in epoxy-pcb
+
| PCB engrave||0.1-0.3 30deg||0.3|| 0.035 ||12000||1000|| tested in epoxy-pcb
 
|-
 
|-
| PCB drill||0.9 ||-2.5|| ||3||400|| tested in epoxy-pcb
+
| PCB drill||0.9 ||-2.5|| 0.5 ||14000||400|| tested in epoxy-pcb
 
|-
 
|-
| Plexiglass Front door engrave||0.1 30deg?||1|| ||1||20|| Plunge 20, toolsize cambam 0.3
+
| Plexiglass Front door engrave||0.1 30deg?||1|| ||10000||20|| Plunge 20, toolsize cambam 0.3
 
|-
 
|-
| Plexiglass egg||1.5 30deg?||0.5|| ||3||100|| Plunge 30, toolsize cambam 1.5 : 4mm thick plexiglass 400x300
+
| Plexiglass egg||1.5 30deg?||0.5|| ||14000||100|| Plunge 30, toolsize cambam 1.5 : 4mm thick plexiglass 400x300
 
|-
 
|-
| Plexiglas Portrait ||0.1 30deg?||4|| ||1||?|| 0.3mm raster, Custom tool to convert from image to gcode
+
| Plexiglas Portrait ||0.1 30deg?||4|| ||10000||?|| 0.3mm raster, Custom tool to convert from image to gcode
 
|-
 
|-
 +
| Acryl || 6 || 0.5 || 5mm || 6240 || 1400 || Zweischneider, no external cooling - there are two types of Acryl: XT and GS. Use GS for Milling!
 
|}
 
|}
  
Zeile 240: Zeile 223:
 
*Feed override: 75%
 
*Feed override: 75%
  
==How to==
+
=How to=
 
===CamBam Mini HowTo ===
 
===CamBam Mini HowTo ===
[[Bild:CamBam_Howto.PNG|thumb|800px|Werte die man bei CamBam beim erstellen eines 2.5D oder Pocket Operation beachten muss]]
+
[[Bild:CamBam_Howto.PNG|thumb|400px|Werte die man bei CamBam beim erstellen eines 2.5D oder Pocket Operation beachten muss]]
 
==== Sehr wichtige Parameter ====
 
==== Sehr wichtige Parameter ====
 
* '''CutIncrement''' - Wie tief geht die fraese in einem schritt
 
* '''CutIncrement''' - Wie tief geht die fraese in einem schritt
Zeile 252: Zeile 235:
 
* '''InsideOutside''' Falls man die Outline verkehrt herum geyeichnet hat kann man mit dieser option innen und aussen umdrehen (einfach mal ausprobieren)
 
* '''InsideOutside''' Falls man die Outline verkehrt herum geyeichnet hat kann man mit dieser option innen und aussen umdrehen (einfach mal ausprobieren)
  
 +
=== Drilling and cutting PCB's (epoxy) ===
  
 +
[[PCB_CNC]]
  
 +
=== Aluminium ===
  
 +
Maximum Millheadsize should be 6mm on our Machine!
 +
We sucessfully tested a_p = 0.25mm with 6mm head - with and without cooling (cooling done by isopropanol)
  
 +
Spanabfuhr is quite a problem and our machine is not as stiff as we would like to have it for milling aluminium. so larger a_p would not work because the millhead will be bend to much.
  
=== Drilling and cutting PCB's (epoxy) ===
 
 
[[PCB_CNC]]
 
 
=== Cutting and drilling Aluminium ===
 
  
Needs cooling. No success yet.
 
Our spindle might be too fast for drilling.
 
Meh, it should work fine.
 
  
 
== Toolchain ==
 
== Toolchain ==
Zeile 299: Zeile 280:
 
Formeln zum Berechnen von Zustellung, Umdrehungsgeschwindigkeit usw.
 
Formeln zum Berechnen von Zustellung, Umdrehungsgeschwindigkeit usw.
  
[http://www.carbide-tools.com/knowHow.htmld/ Was Sie über Werkzeuge wissen sollten]
+
* [http://www.carbide-tools.com/knowHow.htmld/ Was Sie über Werkzeuge wissen sollten]
[http://de.wikipedia.org/wiki/Schnittgeschwindigkeit Wikipedia]
+
* [http://de.wikipedia.org/wiki/Schnittgeschwindigkeit Wikipedia]
[http://www.rueggeberg.de/de-de/101_DDE_HTML.htm Onlineberechnungen]
+
* [http://www.rueggeberg.de/de-de/101_DDE_HTML.htm Onlineberechnungen]
 +
* [http://www.depo.de/content/view/75/93/lang,/ Drehzahlrechner]
 +
* [http://www.vhf.de/cgi-bin/ToolCalc?lng=de noch ein Drehzahlrechner]
 +
* [http://www.pferd.com/at-de/101_DEA_HTML.htm yet another Drehzahlrechner]
 +
 
 +
Falls sich jemand mit der Anwendung der Formeln auskennt bitte melden. Weiters gesucht das Buch "Der Werkstatthelfer".
 +
 
 +
= Technical Foobar =
 +
 
 +
== Current Status==
 +
 
 +
* Max-Movement speed is approx 2000 mm/min.
 +
* Homeing procedure in EMC is functional, and by that also soft-limits. Its now "nearly" impossible to move over some limits. Start EMC, turn machine on with f1/f2, press "home all", wait 30 sec. Than traverse to the wished zero of your working coordinate system, and touch off in all three axes.
 +
* The Spindle, aka the Mechatron, is switched on/off automatically.
 +
* Spindle speed must be set to a value between 6000 and 24000. Use GCode like M3 S6000
 +
** The Spindle needs some warmup before running. Manual says One minute on 6000rpm, then increase in steps of 6000 until the whished speed is reached. stay for one minute on each level. If the spindle is very cold and has not run about a week double the times!
 +
 
 +
* Double sided boards kind of work, although its a bit tricky: [[PCB_CNC]]
 +
 
 +
* The Historical Documents were moved here: [[Geil-o-mat/History|History of the famous Geil-o-mat, formerly known as CNC]]
 +
* The Whistlist, Todo stuff is now here: [[Geil-o-mat/Future|Future of Geil-o-mat]]
 +
 
 +
== technical details ==
 +
A CNC mill like the dear Geil-O-Mat has three axis that can be moved independently. A spindle with a [http://de.wikipedia.org/wiki/Fr%C3%A4swerkzeug mill cutter] typically removes material.
 +
[[Bild:geilomat.jpg|thumb|400px|right|Some pink work in progress...]]
 +
 
 +
Each axis is driven by one (Y and Z) or two (X) stepper motors. Basically, theses motors can only rotate in 1.8 degree steps, and hence no secondary encoder is needed for the machine knowing its current location. By a trick called "microstepping", currently the resolution is increased to 1/8 of 1.8 degrees.
 +
As the stepper leads in to a "Zwillings-Trapezgewindespindel", the rotation is transformed into linear motion, one revolution= 6mm.
 +
Warning: If there is too much force for the motor to move one step, it skips the step, typically failing also in subsequent movements, resulting in an ugly noise, and shift in the positioning.
 +
 
 +
The motors are connected to a driver device, which sits on top of the whole machine. It creates the strong currents for the stepper drivers, out of signals from the PCs parallel port.
 +
 
 +
Hence, the computer has to send signals telling which axis should move one step forward or backward at a given instance. This can/is done by a software called "EMC". It is open source, and the thread doing this parallel port communications is using the patched real time Linux-kernel.
 +
 
 +
There are some GUIs for EMC, the most relevant is "AXIS", which graphically displays the current machine position, the paths it should travel the track history, and further stuff. Also manual movement can be performed.
 +
 
 +
The language to specify the movement of the machine is called "GCODE". Some of its [http://linuxcnc.org/docs/html/gcode.html statements] are starting with G01,or G00, hence the name.
 +
A simple Gcode can look like this:
 +
; i am a comment
 +
F100; move with 100mm/min while cutting
 +
G0 Z10; fast move to Z-coordinate 10
 +
G1 Z0; drill down until Z=0 with the speed given by the Feedrate
 +
G1 X10; move to the new location X10 while cutting
 +
G0 Z10; and back up with large speed.
 +
M30; end program
 +
 
 +
One can do a lot of things, e.g. have variables (#1=10), and do loops , evaluate mathematical expressions (G1 Z[#1*2] ).
 +
So basically, real hackers write gcode by hand, while Chuck Norris sends movement commands to the steppers.
 +
However, as we are all lacy, and things can get quite complicated, there exists software to convert 3d/2d CAD files, grayscale depthmap images, 3d-stl objects and other things into Gode. This is often called "CAM"-Software.
 +
 
 +
If you have a 2d-cad file (e.g. dxf) and specify depths for some areas that should be milled away, one speaks of 2.5D-CAM. This is performed e.g. by CamBam, or Camexpert.
 +
 
 +
The biggest trouble is the '''radius compensation''' of the milling heads. You always have to cut on a path half a diameter outside of the actual position.  For this, there are various workflows. In Gcode, one can tell specify if one wants to cut left, right or directly on the actual path. This is called cutter radius compensations. Its a pain in the ass. Hence, often one uses no such thing, but either draws directly the offsetted lines in CAD, or has some software like cambam, which does this compensation and outputs already compensated "paths". The drawback of both methods is that one can not change the diameter of the cutter without recreating the gcode.
 +
 
 +
In the Gcode compensation, a "tool table" is used. Each cutter is index by a number, and in the table the diameters and other things are specified.
 +
 
 +
The current machine's state  is given by a coordinate triple, and some states (emergency swich, spindle speed, ...). The machine '''coordinate system''' is defined by the now automated homing routine. Thereafter, one can move the machine to a location, and "touch off", giving explicit coordinates for this location. Thereby the working coordinate system is defined. This is also the system displayed in Axis, However, in the background, the machine still works in the home-coordinate system for checking its movement limits. Clever!
 +
 
 +
== Nomenclature ==
 +
Or the what is which device:
 +
 
 +
* CNC PC: a Linux machine running the LinuxCNC Software and sends out commands via Parallel Port
 +
* G4: a old Apple G4 Case holding the stepper drivers
 +
* Stepper Driver: Each stepper driver controls one stepper. There are 5 Stepper Driver in the G4: 2x X, 1x Y, 1x Z, 1x A (currently unused)
 +
* Breakout Board: Is used to "convert" the parallel commands to a different protocol that the stepper drivers are using. Also has a VFD Port to control the Frequenconverter
 +
* FU/Frequenzumrichter/Frequencyconverter: This Box controls the Spindle. It has a output of 100 to 400Hz on 3 Phases and gets controlled by the Breakout Board.
  
Falls sich jemand mit der Anwendung der Formeln auskennt bitte melden. Weiters gesucht das Buch "Der Werkstatthelfer". 
 
  
 
== Debugging Checklist ==
 
== Debugging Checklist ==
 
* Damit die '''Limit Switches''' funktionieren, muss der Druckerport im BIOS auf ECC+EPP gestellt sein. Ansonsten sind die Relevanten Eingangs-Pins kommentarlos nicht einlesbar.  
 
* Damit die '''Limit Switches''' funktionieren, muss der Druckerport im BIOS auf ECC+EPP gestellt sein. Ansonsten sind die Relevanten Eingangs-Pins kommentarlos nicht einlesbar.  
 
** Wenn man Limits in EMC ausgelöst hat, hilft ein "override limits häckchen", ein einschalten (F1/F2), und ein wegfahren in die entsprechende richtung (Cursortasten und Page up/down)
 
** Wenn man Limits in EMC ausgelöst hat, hilft ein "override limits häckchen", ein einschalten (F1/F2), und ein wegfahren in die entsprechende richtung (Cursortasten und Page up/down)
 +
* Wenn man die Fräse einrichten muss, sind wichtige Hinweise hier gesammelt: [[Benutzer:Reox/CNC]] --[[Benutzer:Reox|Reox]] 18:10, 4. Jul. 2013 (CEST)
  
 +
== CNC PC ==
 +
On the CNC PC runs a Ubuntu version with a realtime kernel and 2.6 LinuxCNC. Because the dependecies for linuxcnc are really messed up, please do not try to update the PC! --[[Benutzer:Reox|Reox]] 14:36, 31. Aug. 2013 (CEST)
  
 +
* The PC has a Backup Harddisk, which contains a complete working system image for system restore.
 +
* The linuxcnc config folder (/home/cnc/linuxcnc/config) is a git repo, so please commit your changes if you changed something on the config.
 +
* Better: If you want to try new settings copy the Geilomat config and create your own - the Geilomat setup should be sufficant for everyone, so you need good reason to change it
 +
* The PC has APIC disabled, because of realtime kernel jitter reasons. so if you power it down, you need to press the power button after the system says "system halted"
  
 
== Syntax Highlighting in Kate/Kwrite==
 
== Syntax Highlighting in Kate/Kwrite==

Version vom 16. März 2014, 18:46 Uhr

Language: English


CNC-Fräse
Geilomat kaefig.jpeg

Eigentümer:

Metalab, some Parts of the machine are held private

Status:

Aktiv

Erfordert Einschulung:

Ja

Erfordert Authentisierung:

Nein

Kostet:

Hilfsbereite:

CNC Mailing List

WARNING: Do not use this machine if you did not had a previous introduction to the workflow. It is quite complex and working with this device can easily result in a visit to the hospital...

CNC aka the Geil-o-Mat

What is it? It is a CNC (Computerized Numeric Control) Machine, which is located in the Heavy Machinery Department of the Metalab.

Technical Outline:

  • Spindle speed: 6000 - 24000 min^-1
  • Tool Size: 1mm up to 8mm shank, also 1/8" shanks
  • Maximum step speed: 2000 mm*min^-1
  • Maximum Workpiece Dimension: about 725mm * 395mm (X*Y). The height depends on your workpiece, millhead and where do you fix it!
  • Cooling: Air (or liquids by hand)
  • Clamping: Various - depends on your job
  • Software: Runs via LinuxCNC (an Open Source CNC Software)

For projects results of this machine, please visit http://geilomat.soup.io/

Ask on our Mailinglist for help: https://lists.metalab.at/mailman/listinfo/cnc

Standard Procedure

Warning Sign which is now implemented in the geilomat

There are some important steps to take, otherwise you can destroy everything - even the earth... If you don't switch on the things in this particular order it can happen that the machine does things out of nowhere e.g. moves or turns on the spindle!!!

Start Up

  • Start CNC PC (dont turn on the G4 (The "G4 Case" stepper control thing), neither the FU)
  • Start LinuxCNC
  • Check if the "Notaus" is physically triggered on the machine (Button is pressed)
  • Now power on the G4
  • Now plug in the FU ("Frequenzumformer")
    • Wait until the FU is booted
    • Check if 100.0 Hz is set on the screen of the FU
      • Otherwise rotate the rotary encoder that it is 100.0Hz
  • Now remove "Notaus" from the CNC
  • Power on the Machine inside LinuxCNC
  • Move near Homing position
  • Home the machine
  • Warm up the Spindle as described here in the wiki

Now the machine is ready to use.

For milling the spindle needs to be warm. The manual says that you should first let the spindle run for about 1 minute on 6000rpm, then increment by 6000rpm for 1 minute until you reached your destination speed. If the spindle wasn't used for longer than one week, you should double that time. So better is to let it run for two minutes on each speed.

There is a sample code in the GCode Section

Power Down

  • Move Machine in a position where you can easily clean it and remove millheads
  • Press Emergency Stop
  • Plug out VFD
  • Shut down G4
  • Exit LinuxCNC
  • Power off PC
  • Remove Millhead and Clamp
  • Clean the machine-bed and everything else.

Wie Spanne ich ein Werkzeug richtig ein

Wahl der richtigen Spannzange

Der Spannzangensatz ist zwischen 1mm und 7mm auf 0.5mm gestuft. Stimmt der Nenndurchmesser des Schafts mit dem Nenndurchmesser ein Zange überein, dann nimmt man die. Für Zwischenwerte die nächst größere Spannzange. Für 1/8-Zoll-Schäfte sind eigene Zangen vorhanden, für 1/4-Zoll leider nur die 6,5er-Zange Der kleinste Schaft, den ich mich in die 1mm-Zange spannen traue ist 0.7mm

Überwurfmutter

Wie auch bei der Kress-Spannzange ist als erstes die Spannzange in die Spindelmutter (Überwurfmutter) einzurasten. Die Zange sitzt richtig, wenn ihr Aussenende (nahezu) plan zur Mutter ist (auch nach dem Aufschrauben auf die Spindel prüfen, bevor man fest anzieht). (Bei genauer Betrachtung der Mutter fällt auf, dass der Bund, der in den Einstich der Spannzange einrastet exzentrisch zur Achse der Mutter ist. Das ist Absicht und erleichtert das Einrasten.)

Einbau des Werkzeuges

Das Werkzeug in die Spannzange (in der Mutter) einstecken Manche Fräser haben eine Flachstelle am Schaft. Die Enden der Spannzange sollten nicht in diesem Loch zu liegen kommen, da sonst die Zange asymmetrisch spannt und eventuell beschädigt wird. (Das innere Ende Spannfläche muss nicht das Ende des gesamten Körpers sein, manche Zangen sind abgesetzt) Bis 7mm ist es möglich, den Werkzeugschaft durch die Zange in die Spindel zu stecken. Bei der 8er-Zange geht das nicht!

Montage des Werkzeuges

Die Zange mit dem Werkzeug in die Spindel einsetzen und Mutter aufschrauben Da die Zange im offenen Zustand, speziell bei Bohrern, die etwas kleineren Schaftdurchmesser haben, das Werkzeug nicht halten kann, folgen die Werkzeuge gern der Schwerkraft. Man braucht einen 13er-Schlüssel für die Spindelachse, einen 17er für die Mutter und eine 3. Hand, um das Schneidwerkzeug zu halten. Oder doch nicht? Wenn man die Y-Achse und Z-Achse geschickt positioniert, kann man den 13er auf die Schleppkette auflegen und gegen das Portal lehnen. Alternativ kann man einen Holzblock unter das Werkzeug stellen. Es schadet generell nicht, bei offenem Arbeitsraum-Boden (so wie jetzt wo ich oft werkel) eine Holzplatte unter der Spindel am Boden aufzulegen, falls das Werkzeug doch "abpascht" (beim Ausspannen!).

die Mutter anziehen

Wie oben erwähnt jetzt noch mal den richtigen Sitz der Zange prüfen! Das Gewinde der Mechatron-Spindel ist sehr fein, daher erzeugt es schon bei mäßigem Drehmoment recht hohe Axialkräfte, die letztendlich die Zange schließen. Das erzeugt Radialkräft auf den Werkzeugschaft, die über Reibung das Werkzeug halten. Wie wir alle wissen, ist die Flächenpressung, die ein Werkstoff erträgt begrenzt und gleich Kraft durch Fläche. Die Pressfläche ist bei kleinen Zangen viel kleiner als bei großen, daher speziell diese mit Gefühl anziehen. Wenn alle Spiele aus der Anordnung verschwunden sind, gibt es einen Punkt, wo das Anziehen "hart" wird. Über diesen Punkt hinaus sollte man nicht gehen.


GCode

See also in the Gcode reference of LinuxCNC


Example Gcode Header for Geilomat:

G21      ; use mm
G90      ; absolute coordinates
G54      ; use G54 coordinate system
G40      ; turn radius compensation off
G17      ; choose x,y plane
G80      ; Cancel Motion Modes
G94      ; movement speed is in mm/min
G49      ; turn cutter legth compensation off
G0 Z10   ; Go to saftyplane
M3       ; switch on spindle
S6000    ; Drehzahl auf 6000 min-1 einstellen
G4 P120  ; 2min warten bis motor warm ist
S12000   ; Drehzahl erhöhen
G4 P120  ; 2min erneut warten.
(immer um 6000 erhöhen bis die Drehzahl erreicht wurde)
F500     ; 500mm/minutes movement speed

(your program starts here... now you can do things like)
G0 X0 Y0 ; go to your 0,0 point rapidly
G1 Z0    ; go to Z0 with 500mm/min (as set with F command)

Typical gcode Tail:

; the tail
G0 Z10   ; retract from workplane - safty plane
M30      ; end program

Parameters for typical jobs

Please note that these Values are produced under different circumstances - like how many "Schneiden" a mill has or what kind of mill you are using! Please use also "Drehzahlrechner" for looking up proper values.

Please be aware that, like with the lasercutter, not every material can be cut and for each material you have certain parameters. These parameters are in the first place a result of the tool you use but also depends on chemical and mechanical compound of the material you need to cut. For example there are a lot of aluminium types, like AlMgSiPb or AlCuBiPb which is very good for milling and also pure Al99,5 which is very very bad for milling!!! This counts for all types of material, also for wood! e.g. MDF has very different cutting parameters than birch wood...

Material Head Diameter mm Cutting Depth mm (a_p) Sidewards depth in % of diameter (a_e) Spindle Speed Feed Rate mm/min Comment
MDF 8 2 ? 12000 30 MDF is usually too thick to be milled with our normal milling heads, so we're using a bigger (8mm diameter) end mill. Plunge 10.
Wood 3 5 50% 12000-14000 >300 guessed proposal
Wood 0.8 4 100% 12000-14000 ~250 guessed proposal
Aluminium 6 0.25 6mm 10000 1100 Vierschneider, schleppender Schnitt - no external cooling
Aluminium 6 0.25 6mm 10000 650 Zweischneider, schleppend und ziehender schnitt - no external cooling
PCB engrave 0.1-0.3 30deg 0.3 0.035 12000 1000 tested in epoxy-pcb
PCB drill 0.9 -2.5 0.5 14000 400 tested in epoxy-pcb
Plexiglass Front door engrave 0.1 30deg? 1 10000 20 Plunge 20, toolsize cambam 0.3
Plexiglass egg 1.5 30deg? 0.5 14000 100 Plunge 30, toolsize cambam 1.5 : 4mm thick plexiglass 400x300
Plexiglas Portrait 0.1 30deg? 4 10000 ? 0.3mm raster, Custom tool to convert from image to gcode
Acryl 6 0.5 5mm 6240 1400 Zweischneider, no external cooling - there are two types of Acryl: XT and GS. Use GS for Milling!
Warning:
Do not use a too low feed-rate!! 
The cutting region of the milling head is microscopically round. 
If the "Spanbreite", the thickness of the removed material, is lower that this radius, 
most material is compressed and only cut if the compression force is to large. 
This results in dramatic friction and hence only heats up the milling head. 
The thought "Oh, the cutter is getting too hot, I can see burning marks in the side of the wood, I
have to  reduce the movement speed" is deadly!!! You can decrease the spindle speed, and increase the movement speed.
The Heat produced while cutting depends on the friction. A second part is proportional to the volume of material that is removed. 
Half the milling depth, half the heating! 25% sidewards instead of 50% sidewards cutting=half the heating.

Mill heads can break if the sidewards force is too large. So for tiny things, 
the feed rate together with the spindle speed and the cutting depth should be reduced.


Pocketing plexiglass:

  • Choose engraving bit according to pocket size.
  • Be careful with CutIncrement (1mm is ok).
  • Be aware that plexiglass melts, so it's important to use cooling.
  • For bigger pocket operations, the vacuum cleaner has a certain cooling effect.
  • Air pressure and water cooling was necessary for the front door window engraving.


Cutting GFK (glasfaserverstärkter Kunststoff):

(Acquirable at http://www.der-schweighofer.at/artikel/77271/gfk_platte_300x135x1.5mm)

The following values work fine for cutting 1,5mm thick GFK.

  • Plunge Feed-rate: 100
  • Cut Feed-rate: 1500
  • Depth Increment: 0,8mm
  • Feed override: 75%

How to

CamBam Mini HowTo

Werte die man bei CamBam beim erstellen eines 2.5D oder Pocket Operation beachten muss

Sehr wichtige Parameter

  • CutIncrement - Wie tief geht die fraese in einem schritt
  • TargetDepth - Wie tief soll er insgesammt gehen. Die operation wird dann in TargetDepth/cutIncrement unterschritte zerlegt. ACHTUNG dieser wert muss negativ sein damit die fraese rein fraest.
  • CutFeedrate Wie schnell wird horizontal gefraest (mm/sec)
  • PlungeFeedrate Wie schnell wird in das Material hineingetaucht (mm/sec)
  • ToolDiameter Durchmesser des Fraeskopfes damit CamBam die pfade so berechnen kann dass nach dem fraesen die gewuenschte form entsteht

Weitere Parameter

  • InsideOutside Falls man die Outline verkehrt herum geyeichnet hat kann man mit dieser option innen und aussen umdrehen (einfach mal ausprobieren)

Drilling and cutting PCB's (epoxy)

PCB_CNC

Aluminium

Maximum Millheadsize should be 6mm on our Machine! We sucessfully tested a_p = 0.25mm with 6mm head - with and without cooling (cooling done by isopropanol)

Spanabfuhr is quite a problem and our machine is not as stiff as we would like to have it for milling aluminium. so larger a_p would not work because the millhead will be bend to much.


Toolchain

CamBam

CamBam is at the moment the tool of choice for defining operations, tool path generation and gcode export. To a certain degree, it's also possible to use CamBam for design as well.

Note! CamBam is neither Free Software or freeware, but commercial software with a 40-time use evaluation license.

CamBam can import DXF.

Camexpert

Having a dxf done with all the cutting paths, camexpert can export gcode. Manual editing of the gocde is although necessary. Learning curve is not as steep as with cambam.


Design Tools

  • Inkscape: Produces SVG and has export options for EPS and DXF.
  • Adobe Illustrator: .ai files can usually be read by Postscript/PDF software and be exported as EPS.
  • OmniGraffle: Can export EPS
  • Mentor Graphics:
  • Eagle:
  • QCAD

Fileformats -> CamBam

Verwandte Seiten

CNC - Software Infos und so..

Formeln zum Berechnen von Zustellung, Umdrehungsgeschwindigkeit usw.

Falls sich jemand mit der Anwendung der Formeln auskennt bitte melden. Weiters gesucht das Buch "Der Werkstatthelfer".

Technical Foobar

Current Status

  • Max-Movement speed is approx 2000 mm/min.
  • Homeing procedure in EMC is functional, and by that also soft-limits. Its now "nearly" impossible to move over some limits. Start EMC, turn machine on with f1/f2, press "home all", wait 30 sec. Than traverse to the wished zero of your working coordinate system, and touch off in all three axes.
  • The Spindle, aka the Mechatron, is switched on/off automatically.
  • Spindle speed must be set to a value between 6000 and 24000. Use GCode like M3 S6000
    • The Spindle needs some warmup before running. Manual says One minute on 6000rpm, then increase in steps of 6000 until the whished speed is reached. stay for one minute on each level. If the spindle is very cold and has not run about a week double the times!
  • Double sided boards kind of work, although its a bit tricky: PCB_CNC

technical details

A CNC mill like the dear Geil-O-Mat has three axis that can be moved independently. A spindle with a mill cutter typically removes material.

Some pink work in progress...

Each axis is driven by one (Y and Z) or two (X) stepper motors. Basically, theses motors can only rotate in 1.8 degree steps, and hence no secondary encoder is needed for the machine knowing its current location. By a trick called "microstepping", currently the resolution is increased to 1/8 of 1.8 degrees. As the stepper leads in to a "Zwillings-Trapezgewindespindel", the rotation is transformed into linear motion, one revolution= 6mm. Warning: If there is too much force for the motor to move one step, it skips the step, typically failing also in subsequent movements, resulting in an ugly noise, and shift in the positioning.

The motors are connected to a driver device, which sits on top of the whole machine. It creates the strong currents for the stepper drivers, out of signals from the PCs parallel port.

Hence, the computer has to send signals telling which axis should move one step forward or backward at a given instance. This can/is done by a software called "EMC". It is open source, and the thread doing this parallel port communications is using the patched real time Linux-kernel.

There are some GUIs for EMC, the most relevant is "AXIS", which graphically displays the current machine position, the paths it should travel the track history, and further stuff. Also manual movement can be performed.

The language to specify the movement of the machine is called "GCODE". Some of its statements are starting with G01,or G00, hence the name. A simple Gcode can look like this:

; i am a comment
F100; move with 100mm/min while cutting
G0 Z10; fast move to Z-coordinate 10
G1 Z0; drill down until Z=0 with the speed given by the Feedrate
G1 X10; move to the new location X10 while cutting
G0 Z10; and back up with large speed.
M30; end program

One can do a lot of things, e.g. have variables (#1=10), and do loops , evaluate mathematical expressions (G1 Z[#1*2] ). So basically, real hackers write gcode by hand, while Chuck Norris sends movement commands to the steppers. However, as we are all lacy, and things can get quite complicated, there exists software to convert 3d/2d CAD files, grayscale depthmap images, 3d-stl objects and other things into Gode. This is often called "CAM"-Software.

If you have a 2d-cad file (e.g. dxf) and specify depths for some areas that should be milled away, one speaks of 2.5D-CAM. This is performed e.g. by CamBam, or Camexpert.

The biggest trouble is the radius compensation of the milling heads. You always have to cut on a path half a diameter outside of the actual position. For this, there are various workflows. In Gcode, one can tell specify if one wants to cut left, right or directly on the actual path. This is called cutter radius compensations. Its a pain in the ass. Hence, often one uses no such thing, but either draws directly the offsetted lines in CAD, or has some software like cambam, which does this compensation and outputs already compensated "paths". The drawback of both methods is that one can not change the diameter of the cutter without recreating the gcode.

In the Gcode compensation, a "tool table" is used. Each cutter is index by a number, and in the table the diameters and other things are specified.

The current machine's state is given by a coordinate triple, and some states (emergency swich, spindle speed, ...). The machine coordinate system is defined by the now automated homing routine. Thereafter, one can move the machine to a location, and "touch off", giving explicit coordinates for this location. Thereby the working coordinate system is defined. This is also the system displayed in Axis, However, in the background, the machine still works in the home-coordinate system for checking its movement limits. Clever!

Nomenclature

Or the what is which device:

  • CNC PC: a Linux machine running the LinuxCNC Software and sends out commands via Parallel Port
  • G4: a old Apple G4 Case holding the stepper drivers
  • Stepper Driver: Each stepper driver controls one stepper. There are 5 Stepper Driver in the G4: 2x X, 1x Y, 1x Z, 1x A (currently unused)
  • Breakout Board: Is used to "convert" the parallel commands to a different protocol that the stepper drivers are using. Also has a VFD Port to control the Frequenconverter
  • FU/Frequenzumrichter/Frequencyconverter: This Box controls the Spindle. It has a output of 100 to 400Hz on 3 Phases and gets controlled by the Breakout Board.


Debugging Checklist

  • Damit die Limit Switches funktionieren, muss der Druckerport im BIOS auf ECC+EPP gestellt sein. Ansonsten sind die Relevanten Eingangs-Pins kommentarlos nicht einlesbar.
    • Wenn man Limits in EMC ausgelöst hat, hilft ein "override limits häckchen", ein einschalten (F1/F2), und ein wegfahren in die entsprechende richtung (Cursortasten und Page up/down)
  • Wenn man die Fräse einrichten muss, sind wichtige Hinweise hier gesammelt: Benutzer:Reox/CNC --Reox 18:10, 4. Jul. 2013 (CEST)

CNC PC

On the CNC PC runs a Ubuntu version with a realtime kernel and 2.6 LinuxCNC. Because the dependecies for linuxcnc are really messed up, please do not try to update the PC! --Reox 14:36, 31. Aug. 2013 (CEST)

  • The PC has a Backup Harddisk, which contains a complete working system image for system restore.
  • The linuxcnc config folder (/home/cnc/linuxcnc/config) is a git repo, so please commit your changes if you changed something on the config.
  • Better: If you want to try new settings copy the Geilomat config and create your own - the Geilomat setup should be sufficant for everyone, so you need good reason to change it
  • The PC has APIC disabled, because of realtime kernel jitter reasons. so if you power it down, you need to press the power button after the system says "system halted"

Syntax Highlighting in Kate/Kwrite

in "~/.kde/share/apps/katepart/syntax" put Datei:Gcode.xml.txt without the txt extension.