Exclude pads from silkscreen needs work

Bug #1822161 reported by Hari nandhan
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
KiCad
Expired
Low

Bug Description

Hi,
Iam using kicad for past few months, When i uncheck 'Exlude pads from silkscreen' and export pdf or gerber i am not getting pads on silkscreen layer. I've also tried with other layout designs still same thing happens.

Application: kicad
Version: (5.0.2)-1, release build
Libraries:
    wxWidgets 3.0.4
    libcurl/7.61.1 OpenSSL/1.1.1 (WinSSL) zlib/1.2.11 brotli/1.0.6 libidn2/2.0.5 libpsl/0.20.2 (+libidn2/2.0.5) nghttp2/1.34.0
Platform: Windows 8 (build 9200), 64-bit edition, 64 bit, Little endian, wxMSW
Build Info:
    wxWidgets: 3.0.4 (wchar_t,wx containers,compatible with 2.8)
    Boost: 1.68.0
    OpenCASCADE Community Edition: 6.9.1
    Curl: 7.61.1
    Compiler: GCC 8.2.0 with C++ ABI 1013
Build settings:
    USE_WX_GRAPHICS_CONTEXT=OFF
    USE_WX_OVERLAY=OFF
    KICAD_SCRIPTING=ON
    KICAD_SCRIPTING_MODULES=ON
    KICAD_SCRIPTING_WXPYTHON=ON
    KICAD_SCRIPTING_ACTION_MENU=ON
    BUILD_GITHUB_PLUGIN=ON
    KICAD_USE_OCE=ON
    KICAD_USE_OCC=OFF
    KICAD_SPICE=ON

Revision history for this message
Rene Poeschl (poeschlr) wrote :

What? You select "exclude pads from silkscreen" but still expect pads on silk? There is a contradiction here.

The word exclude means remove, do not show, subtract from. It is the opposite of include.

---

In v4 the same feature was called "subtract soldermask from silkscreen" which might be a better description of what that feature actually does. (It really subtracts the soldermask cutouts from the silk layer ensuring no silk is printed where there is no soldermask. This is mostly done to ensure that no silk is printed where pads are located.)

Revision history for this message
Rene Poeschl (poeschlr) wrote :

Maybe the oxford dictonary definition makes it even clearer: https://en.oxforddictionaries.com/definition/exclude

Changed in kicad:
status: New → Incomplete
Revision history for this message
Hari nandhan (harinandhan) wrote :

I did not select 'exclude pads from silkscreen'. I've mentioned clearly, 'When i uncheck 'Exclude pads from silkscreen' and export pdf or gerber i am not getting pads on silkscreen layer'

Revision history for this message
Seth Hillbrand (sethh) wrote :

Hi Hari-

The "Exclude Pads from Silkscreen" is meant to subtract the pad area from existing silkscreen lines (to prevent solder failure). Are you saying that you have a silkscreen line that covers a pad but unchecking "Exclude Pads from Silkscreen" still doesn't plot the silkscreen over the pad?

Or do you mean that you want the pad area (additionally) printed on the silkscreen layer?

Perhaps an example board or images would help us to understand the issue and help you better.

Revision history for this message
Hari nandhan (harinandhan) wrote :

Hi seth,
I did not mean silkscreen line covers the pad.I meant i want the pad area to be printed on the silkscreen layer (for documentation pupose).

https://www.waldeng.com/s/cc_images/cache_17321910.jpg?t=1504029004

https://ayoqq.org/images/assembly-drawing-electrical-4.gif

In these images u can find the pad area or outline printed on the silkscreen layer, so unchecking the "Exclude pads form silkscreen" should eventually print the pad area on the silkscreen.
The problem is, pad area is not printed when "Exclude pads from silkscreen" is unchecked.

or

did i misunderstood the purpose of "Exclude pads from silkscreen"
Thanks in advance.

Revision history for this message
Jeff Young (jeyjey) wrote :

@Hari, yes you have misunderstood the purpose. I think Seth's comment points to terminology which would be clearer: we should rename the option "Subtract pads from silkscreen".

Changed in kicad:
status: Incomplete → Triaged
assignee: nobody → Jeff Young (jeyjey)
importance: Undecided → Low
milestone: none → 6.0.0-rc1
tags: added: gerber pcbnew plot
Revision history for this message
Jeff Young (jeyjey) wrote :

So the tooltip suggests it's supposed to do what the OP was looking for. It doesn't.

Seth and I had another theory about what it should do and suggested a terminology fix. Unfortunately, it doesn't do that either.

Revision history for this message
Jeff Young (jeyjey) wrote :

OK, so the code performs what the OP thought.

However, pads in many (most?) of the library objects don't have silk layers, which is why they don't appear.

If this is not the case, please post the board.

Changed in kicad:
status: Triaged → Incomplete
Revision history for this message
Jeff Young (jeyjey) wrote :

(BTW, if the above is the case and you want to produce assembly drawings, then just edit the pad definitions to include the silk layers you want them on.)

Revision history for this message
Rene Poeschl (poeschlr) wrote :

Including the silk layer in pads is complete none-sense (according to IPC which is kind of the authority with regards to footprint handling.)

They even specify a minimum required clearance between exposed copper and silk of at least the silk line width. (Well having the pad on silk clearly violates this. No clearance is definitely less than silk line width)

This is why it is strictly forbidden for any pad of the official lib to include any layers other than [copper, paste, mask or adhesive] Adhesive pads are not allowed to have any other layer active and are not allowed to be placed on top of exposed copper. It is allowed to have mask or paste pads without copper. Such a pad is not allowed to have a pin number. Such pads are only allowed if it is really necessary.

---

Additionally: Silk is not meant for printed documentation. Nor is it meant for assembly drawings. This is what the fab layer is there for (This is why every official footprint must include an outline, polarity mark, reference and value on the fab layer). Silk is meant to be printed onto the PCB (typically the white graphics and text on top of the soldermask film.) Silk has many restrictions that do not apply to fab (fab has no minimum width, clearance, minimum text size, ...)

How does one then get pads shown in the documentation? Well right now there is no nice option to do it. You could violate IPC and add pads to the fab layer and use that. (Much saver than using silk but still in violation of standards! -> Mostly because standard conform documentation does not show pads. But i get why some people want it included. Not everything needs to follow standards.)

I therefore suggest to open a wishlist bug requesting the option to include pads in printouts as a separate entry (The print dialog can right now select copper layers which will include pads. But not pads as an independent entry. Might be a good addition.) This leaves this bug open for better wording of the current option.

If this is for helping with manual assembly then i suggest https://github.com/openscopeproject/InteractiveHtmlBom (Much better than a static printout. -> Has the option to not only show pads + fab but also to highlight pad 1 for even easier polarity identification.)

Revision history for this message
Jeff Young (jeyjey) wrote : Re: [Bug 1822161] Re: Problem over generating output file

It’s not nonsense if you want to generate assembly drawings from the silk layer.

You can exclude the pad silk layers when plotting with the “Exclude pads from silkscreen” option.

Revision history for this message
Seth Hillbrand (sethh) wrote : Re: Problem over generating output file

@Jeff- Wow, I completely misunderstood what that option does.

I think there's a legit reason to have an option that automatically removes silkscreen from pads. I also agree with with Rene here that we shouldn't be putting pads on the silkscreen layer. While it may facilitate assembly drawings, those shouldn't be on the silkscreen layer either.

Really, we need to know why this was added in the first place before we change it. Maybe JP can shed some light?

Revision history for this message
jean-pierre charras (jp-charras) wrote :

In fact this option has changed over the years and commits from contributors.

The initial purpose was "Force pad outlines to be always plotted on silkscreen", to create documentation (The fab layer did not exist at this time).
Moreover pads on silkscreen were plot only as outline, not solid polygons. Outlines give a better look for doc.

Over the years, as I said, it was modified:
- on silkscreen layers pad are plot as solid polygons
- and the option is "remove pads on silkscreen, even they are on this layer.

This is the opposite of the initial purpose, and this option is not useful, in its current state.

Revision history for this message
Seth Hillbrand (sethh) wrote :

Thanks JP! What do people think about the following course of action:

- Add option to plot pads onto a technical layer (from a dropdown)
- Add option to remove silkscreen from soldermasked areas.
- Remove current option.

Revision history for this message
jean-pierre charras (jp-charras) wrote :

- Option to substract soldermasked areas from silkscreen already exists (in Gerber format)
- Add option to plot pads onto a technical layer (from a dropdown) to replace the current option looks good to me.

Revision history for this message
Wayne Stambaugh (stambaughw) wrote :

This seems like a valid solution to me. At least it will be clear as why you would want to use it.

Revision history for this message
Jeff Young (jeyjey) wrote :

+1

Changed in kicad:
status: Incomplete → Triaged
Jeff Young (jeyjey)
Changed in kicad:
assignee: Jeff Young (jeyjey) → nobody
summary: - Problem over generating output file
+ Exclude pads from silkscreen needs work
Seth Hillbrand (sethh)
Changed in kicad:
assignee: nobody → Seth Hillbrand (sethh)
Revision history for this message
Jeff Young (jeyjey) wrote :
Revision history for this message
KiCad Janitor (kicad-janitor) wrote :

KiCad bug tracker has moved to Gitlab. This report is now available here: https://gitlab.com/kicad/code/kicad/-/issues/1885

Changed in kicad:
status: Triaged → Expired
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.