Next steps with my refresh project

A quick note; I have a list (on paper, a full page…) of things I wanted to do with LW, it’s 80% crossed out now. I just triaged it.

Before I PR anything I want to:

  • Fix the spurious ‘no XXX ports detected’ warnings n the console.
  • Add generic Marlin1, Marlin2 and RepRap profiles
  • Line segmentation has some weirdness, it’s not properly propagated to all operation types as far as I can see; I need to test and fix if necessary.
  • A Big fix: I just spent a couple of hours testing this to confirm what I can see in the code:
    There are two options Gcode Generator and Intensity Separate Line that confuse and conflict.
    For a start they only affect Laser operations, Mill operations do not use them at all.
    The Intensity Seperate Line option only affects Laser Cut operations, it is not respected by Laser Raster.
    The Gcode Generator option affects both Laser Cut and Laser Raster operations.
    I plan to remove the Gcode Generator option and make Intensity Seperate Line effective for All Laser and Mill/Lathe operations (it’s not that difficult, you do it in post-processing, the Laser Cut code shows me the way.
  • A big fix related to the above, there is a post-processor that is run after the line separation has been applied, and only on raster jobs, which comments out all lines that begin with an S or G0 F.
    This will severely mess up raster operations if the user selects ‘marlin’ as the generator.
    I’m going to remove it, unless somebody can provide me with a very good reason why I should not…

Going Forward: I have a little hit-list (in increasing order of complexity)

  • Vertical Rastering (and reverse diagonal), very handy for reducing line effects when lasering plastics etc.
  • A-Axis knife cutter support for mill cutting
  • Path generator; allow in-app generating of very primative SVG shapes which can then be directly injected into the documents list and positioned, resized, rotated and mirrored in the document editor window just like any other document path.
    The SVG module currently used in LW is capable of generating paths and has shape drawing functions. It should be possible to add a dialogue (like the vector generator one) that lets you generate circles, squares, paths, text etc.
    This, to me , is LaserWeb’s single biggest weakness compared to many other tools; It would be great if it can become an ‘all in’ tool for making signs, nameplates and cutouts from scratch without first needing to run Inkscape or whatever.
  • Upgrade Node modules, remove unused ones, generally triage the list. Make sure we can build with node>10.
  • Fix the React depreciation warnings seen on the browser console, upgrade to a modern react version. This is the one I dread.

[I wanted to write this down for my own reference, and to see if anybody has any thoughts, additions or subtractions]


Marlin - LaserWeb / CNCWeb is relevant here & I think it explains what I see in the code a bit better. I wont blindly strip out the Marlin generator without making sure equiv functionality can be selected in options.


Sounds good. Let me know once you have something ready for testing, my local hackerspace has a Lasersaur running LW4.