CNC-Fräse: Unterschied zwischen den Versionen
Zeile 160: | Zeile 160: | ||
| Aluminium||10||10||20%||8||3000|| on an industrial machine, for comparison | | Aluminium||10||10||20%||8||3000|| on an industrial machine, for comparison | ||
|- | |- | ||
− | | PCB engrave||0.1 30deg||0.3|| ||5-9||400|| | + | | PCB engrave||0.1-0.3 30deg||0.3|| ||5-9||650|| tested in epoxy-pcb |
+ | |- | ||
+ | | PCB drill||0.9 ||-2.5|| ||5-9||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|| ||1||20|| Plunge 20, toolsize cambam 0.3 |
Version vom 15. Juli 2010, 09:43 Uhr
Introduction
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.
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!
Current Status
- EMC is quite configured. Max-Movement speed is approx 4200 mm/min. --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 whished zero of your working coordinate system, and touch off in all three axes.
- The Spindle, aka the Kress, is switched on/off automatically.
Todo:
- Build a flat intermediate wood board 30cm^2x1cm, mill flat, so pcbs can be screwed onto in completely flat way.
- get some flat 4-5 mm wood to put underneath the actual workpeace for cutting/milling through.
- Revitalize the "Absaugung"
- Reboot the lubrication thingy.
- Find a way of dealing with oily aluminium dust.
- buy some normal wood in reasonable size (40x100x1.8 cm)
- organize soma aluminium for testing
- move the x homeswitch to the right hand side, so that larger workpieces can be used.
Ideas:
- build/buy a touch-probe.
- Build/buy a Vakuum-Table
- Gamepad with two analog sticks for manual movement might be a great add-on. Doku
- A led-ring for illumination the milling location.
- Build a 4th, rotating axis.
--Bkubicek 13:44, 4. Jun. 2010 (CEST)
History
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.
--Overflo 13:56, 8. Dez. 2007 (CET)
Reference
Cheat Sheat
Ersetzen Gcode-Zeilennummern im Texteditor Kate replace "N[0-9]* " by "" using regular expression.
Typical Gcode Header:
F450 ; typical feed rate G90 ; absolute coordinates ;g91 would be relative G21 ; mm ; g20 would be incheds G0 Z10 ; 10 mm up just to be sure S100 ;set dummy spindle speed M3 ; turn spindle on ; end of head
Typical gcode Tail:
; the tail G0 Z10 M2 ; end program
Parameters for typical jobs
Material | Head Diameter mm | Cutting Depth mm | Sidewards depth in % of diameter | Spindle Speed | Feed Rate mm/min | 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. |
Wood | 3 | 5 | 50% | 2-3 | >300 | guessed proposal |
Wood | 0.8 | 4 | 100% | 2-3 | ~250 | guessed proposal |
Aluminium | 3 | 1 | 50% | 3 | 300 | guessed proposal with cooling |
Aluminium | 10 | 10 | 20% | 8 | 3000 | on an industrial machine, for comparison |
PCB engrave | 0.1-0.3 30deg | 0.3 | 5-9 | 650 | tested in epoxy-pcb | |
PCB drill | 0.9 | -2.5 | 5-9 | 400 | tested in epoxy-pcb | |
Plexiglass Front door engrave | 0.1 30deg? | 1 | 1 | 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 | |
Plexiglas Portrait | 0.1 30deg? | 4 | 1 | ? | 0.3mm raster, Custom tool to convert from image to gcode |
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.
How to
CamBam Mini HowTo
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)
This is my (bkubiceks) current isolate and drilling workflow for creating pcbs.
The PCB have to be put on a plain-milled surface of at least 3 mm thickness, as we are drilling. The slightest bend (0.2 mm) in the PCB will probably move the "Gravierstichel" out of the plane where it would isolate. You need a 0.6 or 0.8 mm drill with a mounting diameter suitable for the Kress-"Spannzange", probably 3mm or 1/8 inch=3.1something.
We will create three ngc-files, one for the isolation, one for the drilling, and one for the final cutting. They will be glued together in one ngc file to align them graphically using Axis.
- Prerequisites:
- download Visolate
- On Windows, that is
- create a shortcut, respecting your paths, with the target ""C:\Program Files (x86)\Java\jre1.6.0_07\bin\java.exe" -Xmx1024000000 -jar C:\Users\bkubicek\Visolate.jar" and the working directory "C:/Users/bkubicek/Documents/eagle/LEDlampe/"
- download and install [java3d]
- save Datei:Drillbernhard.ulp.txt into your eagle/ulp directory without the .txt extension. Its an ugly hack of the next original ulp...
- save Datei:Gcode.ulp.txt into your eagle/ulp directory without the .txt extension.
- Create the Eagle board. Route only on Bottom Layer.
- Output using the cam-processor, using the "GERBER_RS274" device, and only the layers "bottom","pads", "vias". Filename gerber_boardname.
- Output using File->RUN->(ulp-directory)->drillbernhard.ulp . Layer "bottom", Mill and cut deaktivated, drill active,outputfile "drill_boardname.ngc"
- Output using File->RUN->(ulp-directory)->gcode.ulp . Layer "bottom", Mill and drill deaktivated, cut active,outputfile "cut_boardname.ngc", other parameters are nearly irrelevant.
- Then start Visolate, load the gerber file, make if full screen. press Fit. Fix Topology. Make toolpaths. Output file as "isolate_boardname.ngc"
- Then comes the joining of the three ngc files: Create a new ngc file starting with
M8 ; turn on spindle ; adjust to your mill F450 G90 G21 G0 Z2.54 ; move up to 0.1 inch above G0 X-0.24 Y-0.24 ;change this to align the drill holes with the the isolation path G20 ;; end head
then add the content of isolate_boardname.ngc without the m5 m3 tail. The isolation has relative coordinates, so we have to set a proper starting location via the previous head. Also, moving to the assumed Z=0 position would already mill the board, so we have to change the first Z move. comment out the first move to Z-0.01 it could look something like this
G20 G17 G40 G49 G80 G91 G1 Z0.1 G0 X0.10814 Y0.28534 ;G1 Z-0.1 ;; uncommented t G1 X0.00392 Y0 ;; end isolate
insert a commented line with an end program.
; G0 Z20 M2 ; program end to manual tool-change to drill
after the isolation we will insert the content of drill_boardname.ngc adjust the variables posdown to -2.1 posup to 1, feedown to 100,feedup to 200 after the cutting, create some blank lines and insert a section of cut_boardname.ngc, namely the part between (Start cutting wires) and (finished). This movements cut out the pcb from the surrounding. Maybe you have to invert all Y coordinates because of the mirroring
The complete file then should have some head, the isolation, the drilling and the cutting.
- Open this ngc file in axis, and adjust the relative position of the drills to the isolation by the G0 X Y in the head, saving and reloading in axis.
- Check if whether the board is in a right orientation or if it needs to be mirrored. This can be achieved by my gcode -filters: http://www.linuxcnc.org/images/fbfiles/files/grecode.zip , see also this forum post
- after all is good, remove the commend right before the drilling, to have the the program stop there. Reload in axis. Insert a 30 Degree 0.1 or 0.2 mm "Gravierstichel", home the machine, touch off at a suitable location, and start the program.
- If the isolation is not deep enough, touch off z in lower height, and restart.
Then Change to a 0.6 mm drill with a 3.12mm 1/8 inch holing diameter, touch of Z again, and re-insert the comment right before the drilling.
- Reload in Axis, scroll to the line right before the drilling, right click->run from here.
- do all the drilling and sidewards cutting.
- if you really want things to be perfect, you could locate the most outwards line in the isolation, and move them deeper Z-0.1 ->Z-0.12 and the following relative up-movent as well Z0.1 ->Z0.12. By that, there will be no copper close to the cutting locations.
Cutting and drilling Aluminium
Needs cooling. No success yet. Our spindle might be too fast for drilling.
Meh, it should work fine.
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
- SVG: Inkscape
- EPS: pstoedit -f dxf <infile.eps> <outfile.dxf> (http://www.pstoedit.net/pstoedit)
Verwandte Seiten
CNC - Software Infos und so..
Formeln zum Berechnen von Zustellung, Umdrehungsgeschwindigkeit usw.
Was Sie über Werkzeuge wissen sollten Wikipedia Onlineberechnungen
Falls sich jemand mit der Anwendung der Formeln auskennt bitte melden. Weiters gesucht das Buch "Der Werkstatthelfer".
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)
Syntax Highlighting in Kate/Kwrite
in "~/.kde/share/apps/katepart/syntax" put Datei:Gcode.xml.txt without the txt extension.