Editing
MaxNCMill
(section)
Jump to navigation
Jump to search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Toolchains == Many tools exist for generating/converting to gcode. Here's a good list: http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?Cam In particular, here's how you generate gcode from ===Bitmaps, Images=== The EMC2/Axis application will import most image formats and create a raster scan tool path with milling depth proportional to image intensity. Haven't tried this but it looks very cool! === Text /TrueType === text / truetype : http://www.timeguy.com/cradek/truetype Hershey Stroke Fonts for Inkscape from EMSL: http://www.evilmadscientist.com/article.php/hershey ===DXF/QCAD=== DXF is a standard file format used by many CAD programs (as well as exportable from inkscape and Adobe Illustrator). It's a good choice, especially as gcode export from Inkscape seems to be buggy. QCAD is an open-source 2d CAD program. Linux users can apt-get qcad, there is open-source executable for Windows as well (but it's hard to find as Ribbonsoft took it closed-source (wtf?) and most searches end up at their page.) QCAD is very solid and a great place to start with CAD, especially if you can't afford/don't need Autodesk/Solidworks. The scale feature in QCAD is counterintuitive at first. To scale your object, select all, then select Modify -> Scale. Click the right arrow on the bottom of the toolbar on the left side. It will then ask for a reference point, click on the lower left corner of your image. It will then ask for the scale factor and will scale your object. ===Dxf2gcode=== We use a DXF-GCode conversion called, unsurprisingly, dxf2gcode http://www.christian-kohloeffel.homepage.t-online.de/dxf2gocde.html [URL is not a typo]. In the /home/nb/dxf2gcode directory, run the dxf2gcode_v01.py command. Open your dxf file from File->Read DXF. It sometimes barfs on DXF exported from Inkscape (works fine for me), but is fine with QCAD, so a workaround is to load the Inkscape dxf in QCAD and save it from QCAD (it's also easy to scale and rotate if necessary). I am still working through the various dxf2gcode options but setting "infeed depth" to the same value as "mill depth" gives you a one-pass toolpath (otherwise it seems to do it in two passes.) Coordinate units are kind of a crapshoot and don't make much sense right now. Note that it may be doing a lot of math without benefit of the numpy library so it can be SLOW. It has no progress indication, and doesn't redraw the screen, so it may look like it crashed. Sometimes it actually does. But be patient! Sometimes it gives the error "Failure reading like stopped at line X. Please check/correct line in dxf file." If X is the number of lines in your DXF, don't worry, it read the whole thing. By default it lifts the tool up unnecessarily high, you can improve cutting speed by setting the Z retraction area and Z safety margin to a lower number than the default of 15. === EagleCAD === Cadsoft [http://www.cadsoft.de/ EagleCAD ] is a schematic editor and PCB layout tool. It's not open source, but there's a free version that is very decent and limited only to the size of board you can lay out. To generate GCode from your Eagle layout, get the scripts from http://www.pcbgcode.org/. These do "Isolation routing," that is, they will generate GCode to mill away copper outside the traces you laid out on a copper-covered PCB (as well as drill it). I've added MAXCNC mill-specific commands to the pcbgcode config stuff, including setting the spindle speed to maximum and turning on the motor. (Config file is /home/nb/eagle-5.6.0/ulp/gcode-defaults.h on the mill PC). First experiments milling PCBs = success! [[User:Jtfoote|Jtfoote]] 23:57, 17 October 2009 (PDT) I used .01 carbide end mills from here: http://www.amazon.com/Niagara-Cutter-059918-Overall-Carbide/dp/B000N477OK/ On 1-sided copper-plated (1-oz) circuit boards from here: http://www.mpja.com/prodinfo.asp?number=14868+DT To start, create a layout in Eaglecad. To work best, use one layer (which can make routing a pain), and use a minimum trace size of 0.012 inches. Make sure you do a DRC check with 10 mil isolation spacing (thouugh I have found it misses trace-pad distances). From the Eagle command line, run pcb-gcode-setup This creates several gcode .ngc file in the same directory as your eagle .brd file. They have suffixes like "top" "bot" and "d" for top copper, bottom copper, and drill. Run AXIS2 and load the appropriate file. Look CAREFULLY at the tool path. Does it really isolate everything you want it to? If not, you may have to increase spacing and re-run. Check especially places of small pitch and tight clearances, especially between traces and pads. Milling the copper is a tradeoff between quality and speed. At fast speeds, the copper tends to get rough at the milled edges. Slow speed rates help a lot but can lead to impractically long milling times. 2.5 ips gives beautiful results, but a good compromise is something like 5 - 8 ips (set in the pcb-gecode setup). If you look at File->properties in the EMC2-Axis tool it will give you a rough idea of the milling time. Setting the Z home at precisely zero (at the board surface) is very important, because we are working at depths of hundredths of an inch. After several attempts I don't think you can do this well with just the manual jog, and risk breaking the tool. Here's what I did that worked: # Raise the head so you can put the tool in the collet. Put it in as far as you can. # Tighten gently, only enough to keep from falling out. # Drop the head to about 1/4 an inch above the workpiece. Don't touch! # Loosen the mill tool in the collet # GENTLY let the mill tool drop to touch the workpiece surface # finger-tighten the collet -- tightly! # Home the Z axis VERY IMPORTANT DON'T FORGET!! # Raise the head and wrench-tighten the collet I think the default Z Down dimension of -0.01 may be too much given that 1-oz copper is supposed to be only 1.4 mils thick (0.0014 inches). I've had good results with -0.008; .0.005 led to problems because I think the PCB I used was not perfectly flat at at some places this depth did not hit "bottom." With further experiments this may be because the clamps are compressing the PCB: at least it seemed to work fine more than 1/2 inch away from them. ====Drilling vias==== For through-hole components, you'll need to drill vias. Doing this is a multi-step, involved process. Because etching is sensitive to the trueness/truing of your board's surface, you only want to etch the board when it's mated directly to a metal block, but you need a plastic sacrificial stop for drilling. So, etch as normal, then add two registration marks to the top of the board. Unmount it, add the plastic backing, change tools, remount, and rezero, respecting the registration. From there, you can run the drill program after suitable modification (you need to manually comment out all M06/tool change commands). Generating the drill file: Settings specific to drilling: * Machine: ** Tool Change: you can't actually change tools at the moment, so this is just to expedite your cutting process, and stay within the limits of the mill *** X: 0.0 *** Y: 0.0 *** Z: 0.2 ** Drill depth: Measure your board with calipers, then add 10mil for good measure (I used -0.100" for the single-sided board I did yesterday) ** GCode Options: *** Ensure "Do tool change with zero step" is UNCHECKED. If this is checked, EMC hangs. No, really, you don't want to deal with this problem. It's awful close to "EMC hangs, you have to hard kill it, and then rezero the whole setup." Once you've got the GCode files for etching and drilling generated, you need to tweak the drill file. As it's currently configured, our milling rig doesn't handle tool changes well (the CNC doesn't support automatic tool change, but the EMC software thinks it does, so the whole setup gets Very Unhappy when it runs into these commands). To remove these, open your drill ngc/tap file in a Text Editor Of Your Choice, and comment out all lines containing the tool change command M06. In GCode, comments are parenthesized lines, and they cannot be nested. Cheat sheet: <pre> sed: 's/^\(M06.*\)$/( \1 )/;' vim: :g/^M06/s/^\(.*\)$/( \1 )/ emacs: M-% ^\(M06.*\)$ <enter> ( \1 ) </pre> Open your drill file in EMC and make sure it looks sane. There will be a bunch of tool change steps, where it runs itself back to (0,0,0.2), then goes back to work. This is the tool change position specified above; you may want adjust the point to be closer to the centroid of your drill pads, to shave off a minute or two. After your etch file looks good, and your drill files look reasonably good, go ahead and set up for etching as above. When etching is completed, don't take the board out! We need to add registration marks for the remounting. Manually walk the head down to (0,0,0.5). Once you're there, turn on the spindle, and gently lower the head til it just bites the copper. Personally, I went to (0,0,-0.008), which is the depth used for etching. Leave the spindle on, and raise the head back to (0,0,0.5). You can turn the spindle off if you'd like, then slew over to (1,1,0.5). Once there, turn the spindle back on, and go down to (1,1,-0.008) to make the second registration mark. Raise the head out of the board, then turn off the spindle. I'd also recommend slewing back to (0,0) at this point, to make re-registration easier. Next, load up the drill file in EMC. You should still have the outline of the paths the head just etched on the display, with the drill file overlaid. This is a good chance to sanity check the line-up of things, etc. Once that looks right, move to adding a plastic backstop and re-rigging the board. With those two registration marks in place, you can re-rig the board with a sacrificial plastic backstop underneath of it. There's a few of these in the document trays next to the mill. Change out to your PCB drill-end, re-zero as for etching, and ensure you have good registration (make sure the drill-end is sitting on the 0,0 mark when you insert it, raise to (0,0,0.1), and slew to (1,1,0.01) to eyeball the match up. If you want to be totally certain, you can turn the spindle on and just bite the board, but, in doing so, you're likely to obliterate your registration mark, so I'd advise against that. Make sure you're happy with everything, and, assuming you are, hit Run. Keep an eye on things and be ready to hit the kill switch (if babysitting feels tedious, just imagine yourself doing all these holes on the drill press, and then try not to hug your newfound robot slave/friend). -- [[User:Jbm]] 2010-05-07 13:20; a big thank-you to [[User:jtfoote]] for all his help in familiarizing me with the setup. ===[http://www.inkscape.org/ Inkscape ] === This just in, plugin with fix for dxf export. Haven't tried it: http://www.bigbluesaw.com/saw/big-blue-saw-blog/general-updates/big-blue-saws-dxf-export-for-inkscape.html Latest: the gcode export from Inkscape is buggy. It's python so could possibly fix, but it looks kind of involved. Workaround: File->Save As-> .dxf, then use the QCAD->DXF toolchain. For Inkscape 0.46, use this: http://bitbucket.org/jst/inkscape-gcode/ (Do "get source", put all files in /usr/share/inkscape/extensions/) IMPORTANT: Read the "Help" tab when you Effect->Export->Export as Gcode This tells you how to set the origin, and how to name your layers for different tools. In the exported GCode, you need to add/change the following lines: Set the cut height to -0.01 (for example, YMMV) #2=-0.0100 (Height to cut at) Add commands to turn on the motor after the first line: G00 Z#1 S 1000 (set motor speed to 1000 RPM) M3 (turn spindle motor on) And you are good to go. --- This is cool but only works for Inkscape 0.43: http://wiki.linuxcnc.org/cgi-bin/emcinfo.pl?InkscapeHowto
Summary:
Please note that all contributions to Noisebridge are considered to be released under the Creative Commons Attribution-NonCommercial-ShareAlike (see
Noisebridge:Copyrights
for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
Do not submit copyrighted work without permission!
To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:
Cancel
Editing help
(opens in new window)
Navigation menu
Personal tools
Not logged in
Talk
Contributions
Log in
Request account
Namespaces
Page
Discussion
English
Views
Read
Edit
View history
More
Search
Dig in!
Noisebridge
- Status: MOVED
- Donate
- ABOUT
- Accessibility
- Vision
- Blog
Manual
MANUAL
Visitors
Participation
Community Standards
Channels
Operations
Events
EVENTS
Guilds
GUILDS
- Meta
- Electronics
- Fabrication
- Games
- Music
- Library
- Neuro
- Philosophy
- Funding
- Art
- Crypto
- Documentation/Wiki
Wiki
Recent Changes
Random Page
Help
Categories
(Edit)
Tools
What links here
Related changes
Special pages
Page information