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.
