Ian M's Adventures in CNC: Difference between revisions

From richmondmakerlabs.uk
Jump to navigation Jump to search
Line 7: Line 7:
Unfortunately the original owner had lost the assembly notes, but it did appear to be mostly assembled correctly.  [https://www.mostics.com Mostics] aren't particularly helpful for support as they purge old product pages from their site, and don't offer any support except through Facebook!  "3018 CNC" is a very generic term used by many manufacturers and suppliers for their version of am entry level three axis milling machine or CNC router with a nominal 30 cm x 18 cm bed, so its often difficult to find machine specific stuff if the brand 'manufacturer' sucks.  Fortunately its a direct knockoff of the Sainsmart [https://www.sainsmart.com/products/sainsmart-genmitsu-cnc-router-3018-pro-diy-kit Genmitsu 3018 Pro CNC], and Sainsmart are much more customer/user friendly.  They've gained us as an actual customer.
Unfortunately the original owner had lost the assembly notes, but it did appear to be mostly assembled correctly.  [https://www.mostics.com Mostics] aren't particularly helpful for support as they purge old product pages from their site, and don't offer any support except through Facebook!  "3018 CNC" is a very generic term used by many manufacturers and suppliers for their version of am entry level three axis milling machine or CNC router with a nominal 30 cm x 18 cm bed, so its often difficult to find machine specific stuff if the brand 'manufacturer' sucks.  Fortunately its a direct knockoff of the Sainsmart [https://www.sainsmart.com/products/sainsmart-genmitsu-cnc-router-3018-pro-diy-kit Genmitsu 3018 Pro CNC], and Sainsmart are much more customer/user friendly.  They've gained us as an actual customer.


Not wanting to spend £££ on commercial CAD software and path to G-Code plugins, I've been learning G-code and investigating FOSS and freeware options to drive it.
===Software===
Not wanting to spend £££ on commercial CAD software and path to G-Code plugins, I've been learning G-code and investigating FOSS and freeware options to drive it.  Using hand-written G-code for various (test) milling operations, is a PITA due to GRBL's lack of any macro programming or repeat cycle capability.
    
    
====Candle G-code sender====
Sainsmart's recommended G-code sender is [[https://github.com/Denvi/Candle Candle]] (formerly named grblControl).  While it is an entirely adequate G-code sender and visualiser, it sucks for machine control on smaller screens as the preprogrammed and macro buttons, the spindle speed, speeds and feeds overrides and jog buttons are all in one vertical pane with a very thin scroll bar, sharing vertical space with the State (current coordinates) and Console panes, and worse, the feeds and speeds sliders and the jog distance and rate dropdown boxes grab the scrool wheel as you pass over them!  However it is lightweight and quick to open compared to many alternatives, so I am still persevering with it.  Its actually forcing me to learn G-code as its often quicker to jog numerically from the console rather than scroll to access the jog buttons!
Sainsmart's recommended G-code sender is [[https://github.com/Denvi/Candle Candle]] (formerly named grblControl).  While it is an entirely adequate G-code sender and visualiser, it sucks for machine control on smaller screens as the preprogrammed and macro buttons, the spindle speed, speeds and feeds overrides and jog buttons are all in one vertical pane with a very thin scroll bar, sharing vertical space with the State (current coordinates) and Console panes, and worse, the feeds and speeds sliders and the jog distance and rate dropdown boxes grab the scrool wheel as you pass over them!  However it is lightweight and quick to open compared to many alternatives, so I am still persevering with it.  Its actually forcing me to learn G-code as its often quicker to jog numerically from the console rather than scroll to access the jog buttons!


I've tested engraving paths generated in Inkscape using its '''Hershey Text''' and '''Gcodetools''' extensions. Hershey Text (found under '''Extensions:Text''') allows you to convert text to a couple of single stroke fonts so you can engrave the center line of each stroke of the character rather than its inner and outer outlines.  Gcodetools generates G-code from selected paths.  Its UI sucks as parameters have to be entered in a succession of text boxes it dumps on your page when you use its '''Orientation Points...''' and '''Tools Library...''' functions, and when you select '''Path to Gcode...''' to generate G-code, it dumps a lot of cruft on the page, which it doesn't even group, that supposedly helps visualise the generated G-code, so save before doing this - you *WILL* need to revert.  It is *possible* to create a new layer and switch to it before generating G-code to make the cruft easier to remove, but that's scarcely convenient.  Otherwise, it does what it says on the tin, it works, generates G-code and the results would be very acceptable for desk or door name plates done in hardwood or plastic bicolor engraving laminate.
====G-code from Inkscape====
I've tested engraving paths generated in [[https://inkscape.org/ Inkscape]] using its built-in '''Hershey Text''' and '''Gcodetools''' extensions. Hershey Text (found under '''Extensions:Text''') allows you to convert text to a couple of single stroke fonts so you can engrave the center line of each stroke of the character rather than its inner and outer outlines.  Gcodetools generates G-code from selected paths.  Its UI sucks as parameters have to be entered in a succession of text boxes it dumps on your page when you use its '''Orientation Points...''' and '''Tools Library...''' functions, and when you select '''Path to Gcode...''' to generate G-code, it dumps a lot of cruft on the page, which it doesn't even group, that supposedly helps visualise the generated G-code, so save before doing this - you *WILL* need to revert.  It is *possible* to create a new layer and switch to it before generating G-code to make the cruft easier to remove, but that's scarcely convenient.  Otherwise, it does what it says on the tin, it works, generates G-code and the results would be very acceptable for desk or door name plates done in hardwood or plastic bicolor engraving laminate.


I've also been using hand-written G-code for various (test) milling operations and working on a parametric G-code operation generator for OpenSCAD to overcome GRBL's limitation of no macros and variables.  This will hopefully offer similar capability to various Conversational G-code generators, except by invoking modules for each desired operation, and adjusting their parameters, rather than by interacting with a wizard on the CNC controller screen. It will render the material to be removed as objects so the work can be visualised. It will not render the individual G-code lines nor will it generate toolpaths from existing geometry.  So far, I've made good progress with peck drilling.  ToDo:  Facing, pocketing, path milling
====G-code from OpenSCAD====
[[Ian M's OpenSCAD stuff|OpenSCAD]] is not G-code friendly as it can only output 3D meshes and 2D outlines and can't even output to a text file (other than the console log).  You cant interrogate existing geometry e.g. to generate a tool path to follow its surface.  However as I prefer coding my geometry to using a conventional parametric CAD program, I am working on a parametric G-code operation generator for OpenSCAD to overcome GRBL's limitation of no macros and variables.  This will hopefully offer similar capability to various Conversational G-code generators, except by invoking modules for each desired operation, and adjusting their parameters, rather than by interacting with a wizard on the CNC controller screen. It will render the material to be removed as objects so the work can be visualised. It will not render the individual G-code lines nor will it generate toolpaths from existing geometry.  So far, I've made good progress with peck drilling.  ToDo:  Facing, pocketing, path milling.


==Useful links==
==Useful links==

Revision as of 09:26, 15 June 2024

Back to Ian M's profile

Haysam's 3018 CNC

A friend recently acquired an older Mostics 3018 Pro CNC machine, with the optional 5.5W blue diode laser module, and standalone controller, and I got roped in to set it up. Here's a good review of exactly the same machine: https://www.homofaciens.de/technics-machines-cnc-3018Pro-Mostics_en.htm

Unfortunately the original owner had lost the assembly notes, but it did appear to be mostly assembled correctly. Mostics aren't particularly helpful for support as they purge old product pages from their site, and don't offer any support except through Facebook! "3018 CNC" is a very generic term used by many manufacturers and suppliers for their version of am entry level three axis milling machine or CNC router with a nominal 30 cm x 18 cm bed, so its often difficult to find machine specific stuff if the brand 'manufacturer' sucks. Fortunately its a direct knockoff of the Sainsmart Genmitsu 3018 Pro CNC, and Sainsmart are much more customer/user friendly. They've gained us as an actual customer.

Software

Not wanting to spend £££ on commercial CAD software and path to G-Code plugins, I've been learning G-code and investigating FOSS and freeware options to drive it. Using hand-written G-code for various (test) milling operations, is a PITA due to GRBL's lack of any macro programming or repeat cycle capability.

Candle G-code sender

Sainsmart's recommended G-code sender is [Candle] (formerly named grblControl). While it is an entirely adequate G-code sender and visualiser, it sucks for machine control on smaller screens as the preprogrammed and macro buttons, the spindle speed, speeds and feeds overrides and jog buttons are all in one vertical pane with a very thin scroll bar, sharing vertical space with the State (current coordinates) and Console panes, and worse, the feeds and speeds sliders and the jog distance and rate dropdown boxes grab the scrool wheel as you pass over them! However it is lightweight and quick to open compared to many alternatives, so I am still persevering with it. Its actually forcing me to learn G-code as its often quicker to jog numerically from the console rather than scroll to access the jog buttons!

G-code from Inkscape

I've tested engraving paths generated in [Inkscape] using its built-in Hershey Text and Gcodetools extensions. Hershey Text (found under Extensions:Text) allows you to convert text to a couple of single stroke fonts so you can engrave the center line of each stroke of the character rather than its inner and outer outlines. Gcodetools generates G-code from selected paths. Its UI sucks as parameters have to be entered in a succession of text boxes it dumps on your page when you use its Orientation Points... and Tools Library... functions, and when you select Path to Gcode... to generate G-code, it dumps a lot of cruft on the page, which it doesn't even group, that supposedly helps visualise the generated G-code, so save before doing this - you *WILL* need to revert. It is *possible* to create a new layer and switch to it before generating G-code to make the cruft easier to remove, but that's scarcely convenient. Otherwise, it does what it says on the tin, it works, generates G-code and the results would be very acceptable for desk or door name plates done in hardwood or plastic bicolor engraving laminate.

G-code from OpenSCAD

OpenSCAD is not G-code friendly as it can only output 3D meshes and 2D outlines and can't even output to a text file (other than the console log). You cant interrogate existing geometry e.g. to generate a tool path to follow its surface. However as I prefer coding my geometry to using a conventional parametric CAD program, I am working on a parametric G-code operation generator for OpenSCAD to overcome GRBL's limitation of no macros and variables. This will hopefully offer similar capability to various Conversational G-code generators, except by invoking modules for each desired operation, and adjusting their parameters, rather than by interacting with a wizard on the CNC controller screen. It will render the material to be removed as objects so the work can be visualised. It will not render the individual G-code lines nor will it generate toolpaths from existing geometry. So far, I've made good progress with peck drilling. ToDo: Facing, pocketing, path milling.

Useful links

CNC @ RML

3018 Specific

CNC Software

  • Programming - A summary of available software from the (defunct) Shapoko wiki.

G-code