Only DXF supports the general “sketch all items”.  The GUI does not allow 
setting the sketch line width.

Only HPGL supports setting the default line width in the GUI.  It does not 
support “sketch all items”.

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).

I’m not sure we need user control over it, but the discrepancy between Gerber 
and the others seems quite large.

(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.)

Cheers,
Jeff.


> On 6 May 2025, at 17:57, 'Seth Hillbrand' via KiCad Developers 
> <[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
> 
> 
> Seth Hillbrand
> Lead Developer
> +1-530-302-5483‬
> Long Beach, CA
> www.kipro-pcb.com <https://www.kipro-pcb.com/>    [email protected] 
> <mailto:[email protected]>
> 
> On Tue, May 6, 2025 at 5:59 AM Salvador E. Tropea <[email protected] 
> <mailto:[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] 
>> <mailto:devlist%[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] <mailto:[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.

Reply via email to