In the GUI sketch DNP components is tied to “Cross-out” under “Indicate DNP on fabrication layers”. There’s no independent control.
And yes, it uses SketchPadLineWidth. I’d be inclined to expose SetSketchPadLineWidth somewhere, but I don’t feel strongly. Cheers, Jeff. > On 15 May 2025, at 15:24, Salvador E. Tropea <[email protected]> wrote: > > Hi! > > Looking at the current code I see: > > 1. HPGL is gone > > 2. Full sketch is gone (only sketch pads) > > My remaining doubt: What about SetSketchPadLineWidth? Will be added to this > dialog to avoid using a global (and hidden) option? > > Also: the command line can "sketch" DNP components ... should this also use > SetSketchPadLineWidth? Which is the GUI counterpart for this option? > > Regards, Salvador > > On 7/5/25 14:07, Salvador E. Tropea wrote: >> Hi Jon! >> >> PS output is handled by the same code as PDF and SVG (is the base class), Is >> this correct? >> >> Also: A lot of laser printers has native PS support and still working, >> transferring toner to a PCB using heat is a popular DIY mechanism, and >> avoiding PDF -> PS manipulation to send the PS directly to the printer is >> better. >> >> About HPGL (real pen) the driver is hardly broken, the code assumes you can >> draw a pad and then draw its hole as a white object, which is conceptually >> wrong when applied to the HPGL driver ... well ... unless you add pen >> control and include a liquid paper pen in your plotter :-))) >> >> Regards, Salvador >> >> On 7/5/25 13:50, Jon Evans wrote: >>> For the sake of argument, I would propose removing pen-plotter specific >>> stuff in V10 and putting no effort into supporting it in CLI and API in V9. >>> >>> I would be open to hearing about why this is actually important to people, >>> but for the moment it just seems like an extra burden on development for a >>> tiny fraction of users, and I've never heard of HPGL or PS formats actually >>> being used in industry when it comes to PCB design software exports. Users >>> who *do* have a pen plotter also probably have other software that can >>> convert one of our actually widely-used formats (like DXF) as required. >>> >>> -Jon >>> >>> On Wed, May 7, 2025 at 12:27 PM Jeff Young <[email protected] >>> <mailto:[email protected]>> wrote: >>>> To the extent that you’d be willing to remove an existing feature? (Which >>>> is what I’m suggesting.) >>>> >>>> Or just to not bother fixing the current warts? >>>> >>>>> On 7 May 2025, at 17:00, Jon Evans <[email protected] >>>>> <mailto:[email protected]>> wrote: >>>>> >>>>> 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] >>>>> <mailto:[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] >>>>>>> <mailto:[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]> <mailto:[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] >>>>>>>> <mailto:[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] >>>>>>> <mailto:[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] >>>>>> <mailto:[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] >>>>> <mailto:[email protected]>. >>>>> To view this discussion visit >>>>> https://groups.google.com/a/kicad.org/d/msgid/devlist/CA%2BqGbCBmU%2BdGra4w3_EzVav8Vp5OF2gbymifjP7MUU6B1BBfPg%40mail.gmail.com >>>>> >>>>> <https://groups.google.com/a/kicad.org/d/msgid/devlist/CA%2BqGbCBmU%2BdGra4w3_EzVav8Vp5OF2gbymifjP7MUU6B1BBfPg%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] >>>> <mailto:[email protected]>. >>>> To view this discussion visit >>>> https://groups.google.com/a/kicad.org/d/msgid/devlist/286C2A32-8A05-42F4-9022-00926C14AAF8%40rokeby.ie >>>> >>>> <https://groups.google.com/a/kicad.org/d/msgid/devlist/286C2A32-8A05-42F4-9022-00926C14AAF8%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] >>> <mailto:[email protected]>. >>> To view this discussion visit >>> https://groups.google.com/a/kicad.org/d/msgid/devlist/CA%2BqGbCA7Ts_kmqJ5MLkbatvda%2By2uprdV7cUnvNOT9AJ_xDWYg%40mail.gmail.com >>> >>> <https://groups.google.com/a/kicad.org/d/msgid/devlist/CA%2BqGbCA7Ts_kmqJ5MLkbatvda%2By2uprdV7cUnvNOT9AJ_xDWYg%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] >> <mailto:[email protected]>. >> To view this discussion visit >> https://groups.google.com/a/kicad.org/d/msgid/devlist/5804b8f7-186e-4f61-a30f-7155af1855e0%40inti.gob.ar >> >> <https://groups.google.com/a/kicad.org/d/msgid/devlist/5804b8f7-186e-4f61-a30f-7155af1855e0%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] <mailto:[email protected]>. > To view this discussion visit > https://groups.google.com/a/kicad.org/d/msgid/devlist/a9245660-6f20-41b2-9efc-b04b8f75c81b%40inti.gob.ar > > <https://groups.google.com/a/kicad.org/d/msgid/devlist/a9245660-6f20-41b2-9efc-b04b8f75c81b%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/9A85A268-D280-44B1-933E-7C7499A9395F%40rokeby.ie.
