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]> 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

KiCad Services Corporation Logo
Seth Hillbrand
*Lead Developer*
+1-530-302-5483‬
Long Beach, CA
www.kipro-pcb.com <https://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]
    <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]. 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.

Reply via email to