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.

Reply via email to