September 16th, 2024

I Revived 3-Axis CNC Mill G-Code Simulator

The CNC Simulator is a standalone 3-axis G-Code simulator for visualizing CNC machining, featuring offline access, animation, and future enhancements for improved functionality and tool support.

Read original articleLink Icon
EnthusiasmAppreciationCuriosity
I Revived 3-Axis CNC Mill G-Code Simulator

The CNC Simulator is a lightweight 3-axis G-Code simulator that enables users to load and visualize G-code files for CNC machining. Originally part of the discontinued JSCut CAM package, it has been modified for standalone use by developer Tomas Mudrunka. Key features include the ability to load G-code from files, pass settings via URL, support for arc commands (G02, G03, IJ), animation of the machining process, offline functionality, and V-Carving capabilities. The project aims to address several future improvements, such as fixing simulation issues, enhancing viewport handling, implementing 3D view zooming, and adding support for both metric and imperial units, as well as different milling bits and tool changes. The original JSCut project was initiated by Todd Fleming in 2014. Users can access the simulator and related projects through provided links.

- The CNC Simulator allows visualization of CNC machining processes using G-code.

- It was developed from the original JSCut CAM package for standalone use.

- Future improvements include enhanced simulation features and support for various units and tools.

- The project is accessible offline and supports animation of the machining process.

- Related projects include CAMotics, bCNC, and LaserWeb4.

AI: What people are saying
The comments on the CNC Simulator article reflect user experiences and suggestions regarding the tool's functionality and usability.
  • Users appreciate the simulator's capabilities but note performance issues with complex G-Code examples.
  • Suggestions for improvements include minimizing dependencies and implementing a debounce feature for option changes.
  • Some users seek guidance on converting NC files from Fusion 360 for simulation.
  • There is interest in open-source toolpath generation solutions and alternatives to commercial software.
  • Users express nostalgia and excitement about revisiting CNC programming through the simulator.
Link Icon 10 comments
By @notpublic - 27 days
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.

By @buserror - 27 days
More importantly, what do you use for toolpath generation? I haven't found anything open source that really works...
By @xupybd - 27 days
Very cool.

It seemed to struggle a bit with a more complex example.

  N30 PAN=1 ST1="16MMRH" L=PCUA
  N40 Z=PRK
  N50 X1846.942 Y1157.433 G42 F=1.0 S20000 VF=1.0 AX=X,Y,Z PRF=-12.7 TP=1 L=PON M55
  N60 G1 X1832.8 Y1171.575 Z=-LPZ+-12.7 F=1.0
  N70 G1 X1832.8 Y1187.575 Z=-LPZ+12.2 F=1.0
  N80 G2 X1807.8 Y1218.8 I=1839.8 J=1218.8 F=1.0
  N90 G1 X1.2 Y1218.8 Z=-LPZ+12.2 F=5.0
  N100 G1 X1.2 Y757.2 Z=-LPZ+12.2 F=5.0
  N110 G1 X1807.8 Y757.2 Z=-LPZ+12.2 F=5.0
  N120 G1 X1807.8 Y1218.8 Z=-LPZ+12.2 F=5.0
  N130 G1 X1799.0 Y1218.8 Z=-LPZ+12.2 F=5.0
  N140 G2 X1767.775 Y1243.8 I=1799.0 J=1250.8 F=5.0
  N150 G1 X1767.775 Y1243.8 Z=-LPZ+-12.7 F=5.0
  N160 G1 G40 X1778.481 Y1260.693 Z=-LPZ+-12.7 F=5.0
  N170 G0 L=PSU
  N180 X1846.142 Y1156.633 G42 F=1.0 S20000 VF=1.0 PRF=-12.7 TP=1 L=PON M55
  N190 G1 X1832.0 Y1170.775 Z=-LPZ+-12.7 F=1.0
  N200 G1 X1832.0 Y1186.775 Z=-LPZ+12.2 F=1.0
  N210 G2 X1807.0 Y1218.0 I=1839.0 J=1218.0 F=1.0
  N220 G1 X2.0 Y1218.0 Z=-LPZ+12.2 F=5.0
  N230 G1 X2.0 Y758.0 Z=-LPZ+12.2 F=5.0
  N240 G1 X1807.0 Y758.0 Z=-LPZ+12.2 F=5.0
  N250 G1 X1807.0 Y1218.0 Z=-LPZ+12.2 F=5.0
  N260 G1 X1798.2 Y1218.0 Z=-LPZ+12.2 F=5.0
  N270 G2 X1766.975 Y1243.0 I=1798.2 J=1250.0 F=5.0
  N280 G1 X1766.975 Y1243.0 Z=-LPZ+-12.7 F=5.0
  N290 G1 G40 X1777.681 Y1259.893 Z=-LPZ+-12.7 F=5.0
  N300 G0 L=PSU
  N310 G0 L=POFF
  N320 PAN=1 ST1="FINTOOL" L=PCUA
  N330 X1817.607 Y747.3934 G42 F=3.0 S18000 VF=1.0 PRF=-12.7 TP=1 L=PON M55
  N340 G1 X1807.0 Y758.0 Z=-LPZ+-12.7 F=1.0
  N350 G1 X1807.0 Y758.0 Z=-LPZ+12.2 F=1.0
  N360 G1 X1807.0 Y1216.5 Z=-LPZ+12.2 F=3.0
  N370 G3 X1805.5 Y1218.0 I=1805.5 J=1216.5 F=3.0
  N380 G1 X3.5 Y1218.0 Z=-LPZ+12.2 F=3.0
  N390 G3 X2.0 Y1216.5 I=3.5 J=1216.5 F=3.0
  N400 G1 X2.0 Y758.0 Z=-LPZ+12.2 F=3.0
  N410 G1 X2.0 Y758.0 Z=-LPZ+-12.7 F=3.0
  N420 G1 G40 X-8.6066 Y747.3934 Z=-LPZ+-12.7 F=3.0
  N430 G0 L=PSU
  N440 G0 L=POFF
  N450 G0 Z=PRK
By @nraynaud - 27 days
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.

By @robszumski - 27 days
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.
By @leetrout - 27 days
This is awesome. I learned CNC & manual G-Code on a Rockwell 3 axis in ~2000 and I am taken back tinkering with this.
By @slt2021 - 27 days
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

By @chiffre01 - 27 days
Very cool project. what kind of post processors do you test with?
By @tekno45 - 27 days
has anyone tried making a mastercam/solidworks replacement?

Mostly interested in looking at some code, not taking on the challenge lol

By @roamerz - 27 days
Very nice thank you!!