Ok, so then it will be ok to control it from the CLI, no?
It should be clear this is just the sketch width, not just for pads, right? On 15/5/25 19:42, Jeff Young wrote:
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]> 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]> 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]> 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, SalvadorCheers, 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/1885and 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/13957as 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 [email protected] <mailto:devlist%[email protected]>. To view this discussion visithttps://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 [email protected]. To view this discussion visithttps://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 [email protected]. To view this discussion visithttps://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 [email protected]. To view this discussion visithttps://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 tothe 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 theGoogle 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 <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 theGoogle 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/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]. 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]. 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]. 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 <https://groups.google.com/a/kicad.org/d/msgid/devlist/9A85A268-D280-44B1-933E-7C7499A9395F%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/b2d157f2-b1b9-4768-b515-65047ee713a2%40inti.gob.ar.
