I would be in favor of us focusing on the kinds of outputs the vast majority of users actually need: Interchange formats with other software, not pen plotters.
On Wed, May 7, 2025 at 11:55 AM Jeff Young <[email protected]> wrote: > Hmmm… there are fundamental differences in the code between Plot Mode and > DXF’s outline mode. I’m not sure what they amount to (or if they’re only > historical). > > But I do not think we should be using Board Defaults for any of these > things. Those are only queried when creating new objects; they’re not > “hot” properties. > > Maybe this is all akin to fiducials, and should just be gotten rid of. It > is pretty hard to imagine someone using a pen-based plotter…. > > (And it would be great to get rid of Plot Mode, as there’s a lot of code > to implement it. We’d just need to keep the part for “sketch pads on fab > layers”, and then decide how (or if) to control the pen width there.) > > On 7 May 2025, at 13:29, Salvador E. Tropea <[email protected]> wrote: > > Hi Jeff! > On 7/5/25 08:54, Jeff Young wrote: > > Only DXF supports the general “sketch all items”. The GUI does not allow > setting the sketch line width. > > But Postscript and HPGL has "Plot mode" enabled, and you can select > "Sketch". > > Which makes me think that DXF should be more consistent and move its > option to "Plot mode" > > > Only HPGL supports setting the default line width in the GUI. > > > But here the concept is different. This is the physical size of the pen, > but you might want to make traces wider than this, which won't be achieved > changing this parameter. > > > It does not support “sketch all items”. > > > It allows choosing "Plot mode" == Sketch, which is really important here > because when you use a real plotter (I wonder if anybody still uses it) you > don't want to fill the polygons (wasting your pen too fast). > > > All formats now support sketching for pads. HPGL uses the default line > width; Gerber uses 0.1mm; all others use a hairline at 1200dpi (0.0212mm). > > > But this isn't what the code is trying to do, as I posted before. This is > what we get. > > > I’m not sure we need user control over it, but the discrepancy between > Gerber and the others seems quite large. > > > But KiCad already has a setting for this in File|Board Settings ...|Text & > Graphics|Defaults. The "Line Thickness" for "Fab Layers". > > This is what the code is trying to use, and failing as I explained. > > And this was added for this, as Seth referenced in the "issues" > > > (Note that the hairline at 1200dpi stems from algorithmic safety: one of > PS/PDF/SVG will blow up if you give it 0 line widths, though I can’t > remember which.) > > > BTW I remember that using this width made the printed stuff annoying > because this is too fine. > > > Regards, Salvador > > > > Cheers, > Jeff. > > > On 6 May 2025, at 17:57, 'Seth Hillbrand' via KiCad Developers > <[email protected]> <[email protected]> wrote: > > This setting is pretty deep into the weeds. If we do decide that we > should keep it (and make it work), I don't think that we should be exposing > it into the cli as a flag without defining our use case for it. > > Looking at the bug reports from where it was implemented ( > https://gitlab.com/kicad/code/kicad/-/issues/1885 and > https://gitlab.com/kicad/code/kicad/-/issues/2274), neither seems to > require setting the trace width. I'd suggest that we remove the > non-functional feature barring a well-defined need. > > Seth > > [image: KiCad Services Corporation Logo] > Seth Hillbrand > *Lead Developer* > +1-530-302-5483 > Long Beach, CA > www.kipro-pcb.com [email protected] > > > On Tue, May 6, 2025 at 5:59 AM Salvador E. Tropea <[email protected]> > wrote: > >> Hi All! >> >> I'm trying to make "kicad-cli pcb export PLOTTER" as functional as the >> Python API, which IMHO is needed before moving to the inter-process API. >> >> Two years ago I opened >> https://gitlab.com/kicad/code/kicad/-/issues/13957 as a suggestion by >> @craftyjon >> >> As some functionality remains unimplemented I'm submitting patches to >> fix them (PS and HPGL support already merged, scale setting waiting for >> approval) >> >> One missing functionality is the equivalent to SetSketchPadLineWidth, I >> have working code that implements it, but I'm having some doubts. >> >> Looking at the code I see it was intended to be useful, but from what I >> see it never worked. >> >> I tried it from the Python API using KiCad 6, 7, 8 and 9 without success. >> >> The code does: >> >> ``` >> >> if( aPlotMode == SKETCH ) >> m_plotter->SetCurrentLineWidth( GetSketchPadLineWidth(), >> &metadata ); >> >> ``` >> >> >> https://gitlab.com/kicad/code/kicad/-/blob/master/pcbnew/plot_brditems_plotter.cpp?ref_type=heads#L279-280 >> >> This in BRDITEMS_PLOTTER::PlotPad >> >> Then the code plots the pad calling FlashPad* but when you look at its >> implementation for the PS/PDF/SVG all these functions does something >> like this: >> >> ``` >> >> if( aTraceMode == FILLED ) >> SetCurrentLineWidth( 0 ); >> else >> SetCurrentLineWidth( USE_DEFAULT_LINE_WIDTH ); >> >> ``` >> >> >> https://gitlab.com/kicad/code/kicad/-/blob/master/common/plotters/PS_plotter.cpp?ref_type=heads#L147-150 >> >> Which defeats the caller intention. IMHO the else part should be removed. >> >> I removed them and I managed to make it work. >> >> The GUI dialog can't set it directly, but is controlled by: >> >> ``` >> >> m_plotOpts.SetSketchPadLineWidth( >> board->GetDesignSettings().GetLineThickness( F_Fab ) ); >> >> ``` >> >> So I see it was intended to work, but never tested. >> >> My questions are: >> >> 1. Should I try to fix it? >> >> 2. Should we change the drivers so USE_DEFAULT_LINE_WIDTH uses a default >> that can be set from the callers? Currently this default is driver >> specific and usually "the smallest possible" >> >> 3. What about other sketch modes? I.e. the plot dialog allows to set >> Postscript in sketch mode ... but the BRDITEMS_PLOTTER::PlotPad code >> currently assumes that SKETCH == SketchPadsOnFabLayers ... What about >> Postscript and HPGL? (BTW HPGL is full of bugs, some of them really >> complex to address) >> >> Regards, Salvador >> >> -- >> You received this message because you are subscribed to the Google Groups >> "KiCad Developers" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To view this discussion visit >> https://groups.google.com/a/kicad.org/d/msgid/devlist/3db8d9c0-428b-4e34-9b0f-5904395b5478%40inti.gob.ar >> . >> > > -- > You received this message because you are subscribed to the Google Groups > "KiCad Developers" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion visit > https://groups.google.com/a/kicad.org/d/msgid/devlist/CAFdeG-p9t-8pSK0Kc-rG4QjhKOfZqaG-rae6y7VwaL0-JPt7Xw%40mail.gmail.com > <https://groups.google.com/a/kicad.org/d/msgid/devlist/CAFdeG-p9t-8pSK0Kc-rG4QjhKOfZqaG-rae6y7VwaL0-JPt7Xw%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > > > -- > You received this message because you are subscribed to the Google Groups > "KiCad Developers" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion visit > https://groups.google.com/a/kicad.org/d/msgid/devlist/8D7D94DC-182E-4B42-829C-E3E53F67D78B%40rokeby.ie > <https://groups.google.com/a/kicad.org/d/msgid/devlist/8D7D94DC-182E-4B42-829C-E3E53F67D78B%40rokeby.ie?utm_medium=email&utm_source=footer> > . > > > -- > You received this message because you are subscribed to the Google Groups > "KiCad Developers" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion visit > https://groups.google.com/a/kicad.org/d/msgid/devlist/06e918ec-96d5-4200-b731-2b13934867ba%40inti.gob.ar > <https://groups.google.com/a/kicad.org/d/msgid/devlist/06e918ec-96d5-4200-b731-2b13934867ba%40inti.gob.ar?utm_medium=email&utm_source=footer> > . > > > -- > You received this message because you are subscribed to the Google Groups > "KiCad Developers" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion visit > https://groups.google.com/a/kicad.org/d/msgid/devlist/2C921F9A-74D8-451A-BAEA-4CAB44EC3B0F%40rokeby.ie > <https://groups.google.com/a/kicad.org/d/msgid/devlist/2C921F9A-74D8-451A-BAEA-4CAB44EC3B0F%40rokeby.ie?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "KiCad Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/a/kicad.org/d/msgid/devlist/CA%2BqGbCBmU%2BdGra4w3_EzVav8Vp5OF2gbymifjP7MUU6B1BBfPg%40mail.gmail.com.
