[HN Gopher] I Revived 3-Axis CNC Mill G-Code Simulator
___________________________________________________________________
I Revived 3-Axis CNC Mill G-Code Simulator
Author : harvie
Score : 112 points
Date : 2024-09-16 10:45 UTC (3 days ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| chiffre01 wrote:
| Very cool project. what kind of post processors do you test with?
| WillAdams wrote:
| That's an excellent question.
|
| Also, how are tool definitions to be handled? Each program
| seems to have their own approach, though some will place the
| tool description in comments. CutViewer is notable for doing
| this, and is the example I have been following in:
|
| https://github.com/WillAdams/gcodepreview
|
| (which is quite a different project)
|
| EDIT: Note that the comment system which Cutviewer uses seems
| to be something of a de facto standard --- Carbide Create uses
| this same scheme.
| notpublic wrote:
| Nice and Thanks! Was looking for something like this with minimal
| dependency.
|
| By the way, changing options updates browser history every time.
| You may want a debounce. Also, you could remove jQuery and make
| it even more leaner.
| roamerz wrote:
| Very nice thank you!!
| leetrout wrote:
| This is awesome. I learned CNC & manual G-Code on a Rockwell 3
| axis in ~2000 and I am taken back tinkering with this.
| WillAdams wrote:
| The big problem for contemporary hobby CNC is that the G-code
| interpreters for small single board computers such as Grbl
| running on an Arduino are extremely memory-constrained:
|
| https://bengler.no/grbl
|
| which means:
|
| - no loops
|
| - no branching
|
| - no variables
|
| One work-around for that is:
|
| https://github.com/NRSoft/GSharp
|
| (I took a very different approach in my project linked
| elsethread)
| abakker wrote:
| Do you not consider Mach4/UCCNC/Masso/Centroid Acorn to be
| hobby? I've never encountered a hobby grade controller
| without loops.
| WillAdams wrote:
| They are the high-end/legacy-end of hobby CNC.
|
| The Grbl/Arduino stuff seems most prevalent/commonly sold.
|
| That said, I was remiss in not mentioning LinuxCNC, &c.,
| and as you note, they do have a more traditional G-code
| implementation w/ loops and variables and branches.
|
| But, I don't think that this simulator supports all of that
| --- could someone post a sample program which does that
| sort of thing and test it?
| abakker wrote:
| Yeah - I guess as a someone who considers my machining
| "non professional", I've never even really consider GRBL
| for a machine because "running G code" and "running a
| mill/router/lathe" feel like different categories. the
| lack of a reasonable GUI and access to the configurations
| and macros to handle things like tool changes etc. has
| never made me interested in GRBL. (I've only ever played
| with GRBL in the context of a router that needed to be
| run by UGS) and that felt so limited as to be useless.
|
| That said, I'm on the brink of converting both my mill
| and router from UCCNC to Centroid just to be into some
| software that is more "machine operator aware" meaning
| that it offers more features targeting making my life
| easier as an operator, rather than simply running gcode
| in a machine-agnostic way.
| dekhn wrote:
| I don't understand this comment- gcode never had loops,
| branching, or variables. And most folks use more capable
| controllers now based on ESP32 or whatever.
|
| Update: I guess gcode _does_ have loops, branching and
| variables: https://www.fictiv.com/articles/cnc-machining-
| macros-subprog...
| KeplerBoy wrote:
| To be fair those features are pretty irrelevant these days.
| They really are a relict of times when gcode was
| handwritten. A skill i learned not even 10 years ago in
| high school.
| Joel_Mckay wrote:
| Actually, in LinuxCNC dialect the gcode does have many
| features most machines will not understand.
|
| This is why these machines can drill and helical-tap plates
| with thousands of holes with ease. Also, some folks will
| cut gear-profiles with a slitting saw, and 4th rotary
| axis...
|
| https://www.youtube.com/watch?v=HI27vSoxCeo
|
| Trying to pull these things off in a CAD/CAM package is
| usually a fools errand the old guys prank kids with... oh
| that sounds easy... lol =3
| abe_m wrote:
| I used to have some machines with Fanuc 6 controllers circa
| 1981 - 1983. They had variables, macros, branching, etc. I
| haven't been able to find what processors were in those old
| controllers, but I'm certain the single board computers of
| the last decade have more ram, more flash, and way more
| processing power. If GRBL can't do it, it is a software
| issue, not hardware.
| buserror wrote:
| More importantly, what do you use for toolpath generation? I
| haven't found anything open source that really works...
| WillAdams wrote:
| Opensource options include:
|
| - Solvespace --- limited to 2D last I checked
|
| - FreeCAD has a workbench for CAM/toolpath generation
|
| - BlenderCAM is a plug-in for Blender which is well-regarded,
| and together w/ CADsketcher/BlenderCAD works well for some
| folks
|
| - Kiri:Moto
|
| - pyCAM --- a venerable option, it worked well ages ago when I
| used my son's gaming computer to make toolpaths.
|
| Rather rough (possibly outdated) list at:
| https://old.reddit.com/r/shapeoko/wiki/cam
| Joel_Mckay wrote:
| In general, FreedCAD has 3-axis tool path support, and I've met
| the kind local guy who started the original Path toolbox.
|
| For 2.5D there are several engraver options with the inkscape
| mightyscape plugins (scorchworks etc.)
|
| YMMV with the island-routing and surface probing routines:
|
| https://github.com/pcb2gcode/pcb2gcode.git
|
| https://github.com/pcb2gcode/pcb2gcodeGUI.git
|
| Also, we are currently evaluating: viaconstructor, inkcut, GCAM
| ( https://github.com/blinkenlight/GCAM.git )
|
| If you want 3D contouring operations, than you could also try:
|
| git://pycam.git.sourceforge.net/gitroot/pycam/pycam
|
| And note, if you patch CAMotics to compile on ubuntu 24.04.x it
| still has a number of Qt5 GUI problems (not entirely unexpected
| with Qt impact on LTS programs.)
|
| There are also direct gcode generator macros that support the
| LinuxCNC/emc language extensions. This is the most accurate
| methodology for turning and milling ops.
|
| Best of luck, =3
| alnwlsn wrote:
| FreeCAD. Or, if it's simple enough, I write it by hand and use
| Python to do loops. I've got a handful of Python scripts that
| can mill holes, make square pockets, write text in a vector
| font, etc.
| tekno45 wrote:
| has anyone tried making a mastercam/solidworks replacement?
|
| Mostly interested in looking at some code, not taking on the
| challenge lol
| WillAdams wrote:
| FreeCAD and its CAM Workbench?
|
| For the light version maybe Solvespace?
|
| I'm still amazed by Dune 3D: https://dune3d.org/ where the
| Github page has the footnote:
|
| >I ended up directly using solvespace's solver instead of the
| suggested wrapper code since it didn't expose all of the
| features I needed. I also had to patch the solver to make it
| sufficiently fast for the kinds of equations I was generating
| by symbolically solving equations where applicable.
| nraynaud wrote:
| https://nraynaud.github.io/webgcode/
|
| I made one too, a long time ago.
|
| https://nraynaud.github.io/webgcode/webapp/visucamTest.html
|
| I did some code generation too, but it's bit rotting.
| slt2021 wrote:
| what if I want to learn CNC programming as a hobby, where one can
| go and learn and practice, without purchasing CNC equipment? (in
| NorCal/bay area)
|
| lets say I want to emboss hello world on a piece of foam
| WillAdams wrote:
| Search term for that is "makerspace"
|
| Perhaps:
|
| https://www.humanmade.org/
| Animats wrote:
| 3x the price of Techshop. I miss TechShop.
| luma wrote:
| One thing I'll suggest - if you ever want to cut anything
| metal, you'd probably do well to learn how machining works in
| general and by that I mean on a manual lathe and mill. The
| coding part is going to be easy for you (and probably anyone
| else reading this), but knowing what you want the thing to do
| is a MUCH different task than being able to tell the machine
| what to do.
|
| Everything about how you move that tool through the work
| matters. Materials, workholding, spindle speeds, tooling,
| tooling coatings, feed rates, plunge speeds, all of these
| things need to be worked out and they all change when you swap
| a tool or a part etc. Speeds and feeds are dynamic, you need to
| learn about conventional-vs-climb milling, you'll need to know
| about cutter geometries and the materials the cutters are made
| of, when and how to deploy coolant, the list just never ends.
|
| GCODE is, by far, the easy part for a programmer. It's a very
| simple language that hasn't changed much in the past several
| decades. "Knowing machining" is that tougher hill to climb.
|
| My recommendation? Check your local community colleges/trade
| schools! I took a couple semesters of machining classes as a
| 40-something grown-ass dude and I learned a huge amount of
| stuff that would have been expensive or dangerous to learn by
| trying. You'll get hands-on access to big machines with someone
| over your shoulder helping to make sure you keep your limbs
| attached to your body.
| xupybd wrote:
| GCODE is not so easy in industry. Thanks to manufacturers
| having their own take on everything.
| LorenPechtel wrote:
| Second this. My work occasionally deals with Gcode files. The
| coding is simple, knowing what to do (or not to do!) is
| harder. My first foray into the world of Gcode I named
| "Smokey" because it was a quick fix for another program
| generating bad Gcode that quite literally caused smoking on
| the work surface and could have lead to a fire had the
| operator not been paying attention.
|
| And note that while Gcode is consistent it's meaning isn't
| always--is Z positive going into the work surface or going
| away from the work surface?
| michaelt wrote:
| If you _literally_ want to emboss hello world on a piece of
| foam, you can buy cheap CNC kits on Amazon like
| https://www.amazon.com/dp/B08HRLGL6C/ which will execute
| G-code.
|
| They're weak and imprecise _by the standards of CNC machines_
| but if you 're only looking to learn a bit and cut foam? That's
| a low price.
| robszumski wrote:
| I have a post-processed NC file from Fusion 360...which I think
| is just gcode. How can I transform that into something this can
| simulate? My hacky attempts have failed.
___________________________________________________________________
(page generated 2024-09-19 23:00 UTC)