KiCad9 -- "Plot References/Values" option

Hi All,
Up to version 8, there was an useful option to plot Refrence designators/Values on FAB layer. I’ve used it extensively for generating assembly drawings.
Now with V9, I can’t find it anymore. Is there alternative way of controlling what goes into which plot?
I’m using both RefDes and Value on my Fab layer, stacked one over another, and now can’t easily separate these.

It seems that the function is dropped with V9.
Well… not too happy about that.
Suggested workaround with global Enable/Disable visibility of RefDes and Values have its side effects (it works only as All On / All Off) so it’s not good for switching between including RefDes and values.
Possibility to quickly select these at the time of plotting was convenient. Not sure what reasoning went behind that decision.

Alternatively there is the Board2Pdf-Plugin which works really great and has some nice features.

Glad you like it, but unfortunately it relies on KiCads API for plotting so it will not help in this case.

Things like this is one of the reasons for using personal libraries.
You start with the parts in KiCad’s default libraries, then modify (silkscreen and other) texts, and other small things, and put the modified parts in your own personal libraries.

I don’t mind seeing the “plot on different layer” thing disappear. Managing texts so they don’t overlap on multiple different layers is a nuisance.

1 Like

Hm I see. This is really bad as my PCB manufacturer wants a PDF where one page only shows the references and one page only the values for double checking and I was happy that the Board2Pdf-plugin did this job for me with one click instead of some sketchy workarounds.

Then I believe that you have to put references and values on different layers from now on… You can probably make a script to move all references or values to a different layer. Either in KiCad or externally.

I’m on my private libaries. It was my decision to overlap RefDes and Value on the same Fab layer. I did so because for small components like SMD chips it’s convenient to have it’s associated information (RefDef/Value) printed within it’s courtyard and there’s no space within courtyard for two items. So I did either RefDefs or Values but not Both.
Managing the information up to V8 was easy. Now V9 breaks my workflow, and I don’t see a good reason for it.

Part of my Assembly diagram:

These are 0402s.

1 Like

Same with me. We are having a small discussion with Seth in the corresponding issue on Gitlab if you also want to make your point: No way to select Values or References when plotting gerber (#20163) · Issues · KiCad / KiCad Source Code / kicad · GitLab

I’ve already took part in the discussion with Seth there. I’m asking for the rationale behind the decision, and while maybe not having >1k items in my private libs, it’s still tedious work. If KiCad was clear to communicate we need to separate Reference designators and Values on different layers, it would be OK. But the feature to plot them at Plot dialog seemed it was a “legitimate” design choice to which we have adhered with our library standards.

3 Likes

I went ‘a bit’ into the rabbit hole in this one and I found the commit where the dialog was changed

Jeff added support for DNP but he also left this commit comment behind.

Also removes the plot-fp-refs, plot-fp-values and
plot fp-text overrides from the GUI, but leaves
them as job arguments.

(Note that the job arguments also separate out
sketching DNP graphics and plotting the ‘X’, which
the GUI does not.)

That I understood that it is still possible to choose both options but only from a jobset, so I went a try a PDF Plot jobset (sorry, I’ve not use them until now) and the resulting file looks like this:


{
  "jobs": [
    {
      "description": "",
      "id": "3ee37d73-5162-4ac7-a960-31afcb86cc05",
      "settings": {
        "back_fp_property_popups": true,
        "black_and_white": false,
        "color_theme": "",
        "crossout_dnp_footprints_on_fab_layers": true,
        "description": "",
        "drawing_sheet": "",
        "drill_shape": "full",
        "front_fp_property_popups": true,
        "hide_dnp_footprints_on_fab_layers": false,
        "layers": [
          "B.Cu",
          "B.SilkS",
          "B.Fab",
          "In30.Cu",
          "In29.Cu",
          "In28.Cu",
          "In27.Cu",
          "In26.Cu",
          "In25.Cu",
          "In24.Cu",
          "In23.Cu",
          "In22.Cu",
          "In21.Cu",
          "In20.Cu",
          "In19.Cu",
          "In18.Cu",
          "In17.Cu",
          "In16.Cu",
          "In15.Cu",
          "In14.Cu",
          "In13.Cu",
          "In12.Cu",
          "In11.Cu",
          "In10.Cu",
          "In9.Cu",
          "In8.Cu",
          "In7.Cu",
          "In6.Cu",
          "In5.Cu",
          "In4.Cu",
          "In3.Cu",
          "In2.Cu",
          "In1.Cu",
          "F.Cu",
          "F.SilkS",
          "F.Fab"
        ],
        "layers_to_include_on_all_layers": [],
        "mirror": false,
        "negative": false,
        "output_filename": "",
        "pdf_gen_mode": "all-layers-separate-files",
        "pdf_metadata": true,
        "plot_drawing_sheet": false,
        "plot_footprint_values": true,
        "plot_pad_numbers": false,
        "plot_ref_des": true,
        "single_document": false,
        "sketch_dnp_footprints_on_fab_layers": true,
        "sketch_pads_on_fab_layers": false,
        "subtract_solder_mask_from_silk": false,
        "use_drill_origin": false
      },
      "type": "pcb_export_pdf"
    }
  ],
  "meta": {
    "version": 1
  },
  "outputs": [
    {
      "description": "",
      "id": "a082c36c-db99-4210-9188-58da51578ba5",
      "only": [],
      "settings": {
        "output_path": "TPR_Tiles"
      },
      "type": "folder"
    }
  ]
}

This two options are set by default as TRUE, but you can have one jobset for each of the checked values and you will get your output as wished

        "plot_footprint_values": true,
        "plot_ref_des": true,

Values Jobset:

RefDes Jobset:

I hope this helps

1 Like

That’s even more weird, if these stay as Jobset params (so still consider adding these to the output as “legal”), then why remove them from the GUI?

Probably to de-clutter the GUI, making it more user friendly.

This means also that @albin would be able to use this options in his plugin if he so chooses, as they are part of the KiCAD API

I’m not sure if removing useful features to “de-clutter the GUI” is a right design choice. If that’s the only reason, I’d actively ask to bring these back.

True. Especially if I just could simply check the box while creating the jobset since it opens the dialog where the checkbox used to be :smiley:

I’ve tried editing my *.kicad_Jobset file and Kicad seems to ignore my settings.
Even if I set “create_gerber_job_file”: false, it still outputs *.gbrjob

My version:
Application: KiCad x64 on x64

Version: 9.0.1-107-g13cbdda586, release build

Libraries:
wxWidgets 3.2.6
FreeType 2.13.3
HarfBuzz 10.2.0
FontConfig 2.15.0
libcurl/8.11.1-DEV Schannel zlib/1.3.1

Platform: Windows 11 (build 26100), 64-bit edition, 64 bit, Little endian, wxMSW
OpenGL: Intel, Intel(R) Iris(R) Xe Graphics, 4.6.0 - Build 32.0.101.5972

Build Info:
Date: Apr 6 2025 05:44:15
wxWidgets: 3.2.6 (wchar_t,wx containers)
Boost: 1.86.0
OCC: 7.8.1
Curl: 8.11.1-DEV
ngspice: 44
Compiler: Visual C++ 1942 without C++ ABI
KICAD_IPC_API=ON

Locale:
Lang: en_GB
Enc: UTF-8
Num: 1,234.5
Encoded кΩ丈: D0BACEA9E4B888 (sys), D0BACEA9E4B888 (utf8)

There is an option to implement this through text properties. For example, all the reference values of the top layer should be moved to the user layer and disabled during plot. But this is just a workaround that may help for a while. Because in previous versions, this feature was implemented and worked perfectly. The right way out is to get her back at all costs. But I’m just a stupid user, I don’t even know how to communicate with the GNU license developers to get this important message across.

If you share the jobset that you are trying to run, I may be able to try and reproduce the problem, it may be that you have found a bug.

This is a workaround that have it’s side effects. Basically it changes your design which is not optimal in some cases. I agree the previous feature was useful and don’t understand why it has been removed from V9. If you think it should be restored, try to upvote the request there:

If the developers will see enough users asking for getting this feature back, it may change something.

My simple Jobset (the only one I have, at the moment):
I have experimented with the following options:
create_gerber_job_file
plot_footprint_values
plot_ref_des
My RefDefs and Values reside on F.Fab layer, and I’ve included F.Fab+Edge.Cuts for the Jobset.
Strangely the Jobset also included In1…In30.CU which are nonexisting in the project.



{
  "jobs": [
    {
      "description": "",
      "id": "847d6821-422f-4823-8a53-a77f2443c5f1",
      "settings": {
        "black_and_white": true,
        "create_gerber_job_file": false,
        "crossout_dnp_footprints_on_fab_layers": true,
        "description": "",
        "disable_aperture_macros": false,
        "drawing_sheet": "",
        "drill_shape": "full",
        "hide_dnp_footprints_on_fab_layers": false,
        "include_netlist_attributes": true,
        "layers": [
          "In30.Cu",
          "In29.Cu",
          "In28.Cu",
          "In27.Cu",
          "In26.Cu",
          "In25.Cu",
          "In24.Cu",
          "In23.Cu",
          "In22.Cu",
          "In21.Cu",
          "In20.Cu",
          "In19.Cu",
          "In18.Cu",
          "In17.Cu",
          "In16.Cu",
          "In15.Cu",
          "In14.Cu",
          "In13.Cu",
          "In12.Cu",
          "In11.Cu",
          "In10.Cu",
          "In9.Cu",
          "In8.Cu",
          "In7.Cu",
          "In6.Cu",
          "In5.Cu",
          "In4.Cu",
          "In3.Cu",
          "In2.Cu",
          "In1.Cu",
          "F.Fab",
          "Edge.Cuts"
        ],
        "layers_to_include_on_all_layers": [],
        "mirror": false,
        "negative": false,
        "output_filename": "",
        "plot_drawing_sheet": false,
        "plot_footprint_values": false,
		"plot_ref_des": true,
        "plot_pad_numbers": false,
        "plot_ref_des": true,
        "precision": 5,
        "sketch_dnp_footprints_on_fab_layers": true,
        "sketch_pads_on_fab_layers": false,
        "subtract_solder_mask_from_silk": false,
        "use_drill_origin": false,
        "use_protel_file_extension": true,
        "use_x2_format": true
      },
      "type": "pcb_export_gerbers"
    }
  ],
  "meta": {
    "version": 1
  },
  "outputs": [
    {
      "description": "",
      "id": "1be3d8e6-7abc-44fe-af72-9c41828e2d1a",
      "only": [],
      "settings": {
        "output_path": "LCDSLHUB"
      },
      "type": "folder"
    }
  ]
}