Closed yaqwsx closed 6 months ago
ATM I can't open to check, but my guess is that is expected. UVtools take in account the pixel pitch in x and y, however that is not true when it deal with circular command aka arc. The circle function is using center and radius. And the problem is that radius only have one dimension. Same is happening with arcs where an ellipse is used with axis and angle. On those cases UVtools uses the largest pixel side to make the size. I should probably not allow that and trigger an error for printers with odd pixel size. As your pads are curvy I think that is the problem, I will take a look latter.
If you can try to export Gerber with disable all arcs commands and allow only linear movement, that way circles and arcs will turn into lines/dots which will work ok with odd pixels.
This is quite unfortunate. I understand the extra implementation effort. Do you think that a trivial approach with rendering to square pixels and then dumbly rescaling would hurt the quality too much (possibly with a warning this is happening)?
I can fix the circles to respect odd pixels, looks like that's the problem in your case:
I review the code and ellipses are also using the pixel pitch, however I can't confirm if they will raise problem or not
That looks great! Thank you very much.
Fixed
System
Printer and Slicer
Description of the bug
When using the PCB exposure for printers without square pixels, the generated image is distorted. For Saturn 3, the generated image should be 79% of the height (squished) when displayed in UVTools. This is expected. However, the generated image seems to weirdly scale the polygons. Look at what is expected and what I got:
The gaps between pads and polygons are smaller than they should be. Also, there are places where the gaps are OK and where they are smaller.
If I manually export SVG from the gerbers, make it 79% of height, rasterize, and import it via UVtools to the print file, I get the correct results.
How to reproduce
Files
printer_file_and_gerbers.zip