Dot width adjustment don't work right

Dot width correction isn’t working for me in raster mode. It’s giving strange results and adding junk to the result.

This is a test pattern of lines of decreasing width and gap.

At 0 deg, I’m already seeing something odd. I expect the smallest (black cut) lines might disappear, because there is not enough room for the declared dot width to make a hole on that- or any line. This would be true for both horizontal and vertical. Lines are disappearing, but inexplicably not the smallest ones.

So, now rotate the raster angle 45 deg. The diagonal line in the lower right is breaking up randomly.

So, let’s do 45 deg autorotations for 8 passes (hiding the traversal moves for clarity). Now it’s ADDING a bunch of strokes between lines where it should NOT be firing.

Let’s back up and see what it 8x 45 deg increments does without DWC enabled. Looks correct on all orientations

But is this REALLY a DWC problem? This is confusing. I went back and- quick answer- the whole 3d slicing implementation is coded wrong.

Let’s say the spot size is 0.025mm, First, let me establish the scale. by making a small 0.025mm tall Fill rectangle off to the left. This isn’t part of the raster at all- just here to scale the BMP graphic where some bars/gaps will fit and some won’t.

OK, DWC turned off, let’s set the LI to half the dot size, which would be “very fine” but a horrible way to engrave because the heat of the prior line will overlap and can melt the surface:

OK, all looks good. Except we know the smallest cut lines will be smaller than the spot size, so they would overcut and merge together in reality. So let’s add a 0.025 DWC. This is the result:

The DWC isn’t working. It’s not doing anything I expected. Nothing at all that I can tell.

Let me see what the 3d slice mode is actually doing. First let’s turn off DWC and increase the LI to 0.025:

Well, that indicates a fundamental coding problem right there, hard stop. Why are some vertical bars missing at random points? I can guess why right now. The algorithm is only sampling on a 0.025mmx0.025mm square grid, and that’s going to produce errors all over.

What it needs to be doing:

The BMP was actually created from a SVG to begin with. I left it in SVG format and tried my best to match the scale of what I used here. Since it’s SVG solids, this is FILL operation here, with the same LI 0.025 no DWC:

OK, THAT is looking logical. It’s got no sense of beam dia though, so the thin lines are going to be too wide and merge. Thus DWC should shrink down the black bits where the beam is firing, so the outer radius of the dot’s cut fits within the area we told it to cut. Some of the smallest lines should disappear entirely. This would be the correct result- the width is below the spot size, so we can’t fit a spot there without overcutting.

(Still doing as Fill) Do we get what we expect from DWC=0.025? Actually, not exactly. it’s having some effect but not on the right scale

For reasons I can’t explain, let’s do DWC=0.050 and see what it gets (still Fill). OK, interesting. It is indeed skipping the vertical and diag lines it can’t fit a spot in. But the horizontal lines are al wrong, and the coding problem is obvious now: the DWC only tests in the scan direction. It’s not checking whether there’s enough room for a dot in the other direction, so it fails to correct this case, which is a pretty serious glitch

1 Like

Just to clarify my mind.
Are you willing to test by converting the lines to bitmap first?

Hmmm… what can I conclude here?

  1. DWC does not work for Fill or 3ds modes. Don’t use it.

  2. If it’s a Fill, just select everything and do “Offset Shapes” inward by half the dot size. That is effectively the correct implementation of DWC.

  3. 3Ds mode isn’t working with correct precision. The line interval should not be used to sample points within a line, that’s just wrong. And there’s no reason to even be doing this. It breaks everything for me due to differences in how the parameters need to work for a higher wattage MOPA (long story, but the bottom line is LB is broken here)

  4. Fixes: For Fill mode, DWC should just mean do an inward “Offset Shape” of 1/2 the dot size ahead of time, Delete Original Lines That’s it.

Fixes: for 3DS mode, the line width sampling is just wrong. Any sampling is wrong. All this needs to do is

  1. subtract the current iteration count from the greyscale value and make a copy of the bitmap as a mask for the current iteration

  2. Do a hidden “Trace” operation on each level mask

  3. If DWC is active, do a hidden “Offset” operation, 1/2 dot width Inward, Delete Original Lines, on each level mask

  4. Now just treat as a Fill. The raster line sampling problem is gone.

That’s what I did first! It’s being treated as a 3DS (3d Slice mode) even though it’s just a smooth 50% gray from the conversion. That’s ok, the testing wasn’t looking for how it changes with depth. Just slice this single 50% depth is fine.

The way it rastered across the bitmap was really confusing. Switching to Fill was necessary to understand what went wrong and how to fix it

Tthanks.
This got me confused:

After rereading, the first part was with bitmap and second with SVG.

(not on Galvo) Some fills I also use offsets Inward, cause in Line mode it´s way faster than scan.

I had a case of missing line in the preview but was on the output, did you try sending one problematic job to the machine and check with a microscope?