Values OFF the print

My check prints (made with the Print icon from Pcbnew) always include the component values, whether the ‘values’ field in the Render tab is unchecked or not. This greatly clutters up the drawing to the point where things are unreadable. I believe this was addressed as a bug earlier but the issue remains, at least in my version 4.0.5. Contrary to earlier posts this behavior persists between Cairo and Standard canvases (my video card doesn’t support the minimum version of Open GL). A work-around might be to Plot using pdf, but this doesn’t work because I can’t figure how to coerce the plot into a single sheet, I get different drawings for each layer (applies to pdf, dxf, and of course Gerber). How can I get the values off he print???

Going to give you the short answer and hope you know enough about KiCad that you can do this without a step-by-step.

I moved all my “Value” entries onto the F.Fab layer.

If you need more guidance, just ask.

I saw this method mentioned in earlier posts, but I was hoping for an easier global solution. I went ahead and moved the values, but to the ‘dwgs user’ layer. I would like to have the outlines and orientation information appear on the fab layer, without the values. It probably took no more than 15 minutes to move all of the values on the board, tedious but doable. My philosophy is that values should only appear on the schematic and BOM, so if(when) changes and ECOs are made they only affect those two documents. Incidentally, it would really be great if there was some kind of macro for the repetitive commands. Such a tool would have saved 4 keystrokes/mouse clicks per change. This has probably been requested before…

It’s easy with a script:

from pcbnew import *

"""
To run from KiCad script console in pcbnew

1. Open the console, Tools->Scripting Console
2. type the following command in the console window

execfile ("c:/python_progs/test_pcb/move_text.py")

change "c:/python_progs/test_pcb/" to where you stored "move_text.py".

"""

def SetText(Filename = None):
    if Filename: 
        my_board = pcbnew.LoadBoard (Filename)
    else:
        my_board = pcbnew.GetBoard()

    for module in my_board.GetModules():
        print ("module ref %s %s" % ( module.GetReference(), my_board.GetLayerName(module.Reference().GetLayer())))

        # set layer
        module.Value().SetLayer (pcbnew.F_Fab)
        


# SetText("C:\\git_bobc\\bobc_hardware_live\\Smart_RGB_LED_AT85\\rgb_led.kicad_pcb")
SetText()
2 Likes

I open the file in Vi and do a one liner :wink::

:g/fp_text value/s/F.SilkS/F.Fab/

1 Like

Hi aaron,
please can you telling a bit more. What is Vi.
I am beginner in Kicad and I would like to learn more about this way.
Thank you for anybody’s answer.

A powerful text editor for linux.

Vi is a unix based text editor. The important take away here is that the files are text based so you can use your choice of text editors as long as they allow you to save without lots of added formating ‘glop’ like a ‘full fledged’ text editor.

Thanks for your answer Rene and hermit! Argh, yes I remember this powerful app… on Linux.
Great to remember me that’s a text-editing. I would be happy using notepad+. May I ask for the name of the file I could edit to… maybe, pointing out component to footprint?
Or a small tutorial that send me to the right path?

Yea in this case powerful really means “hard to use but when you learn it you will swear it is the best thing ever and everyone disagreeing just hasn’t seen the light yet”

The pcb_new file would be the file to edit. (If i understand the last two responses before your first question.) To be honest i have not fully read this thread so there might be better options to achieve the same.

(Isn’t there a tickbox in the plot menu for including value and reference fields? Just tested it in kicad 4.0.6: if i deselect “print values” they are not plotted.)

Thank you Rene,
your first answer was what I searched.
For the second part, that’s sound straight either.
Again, thanks ermite for your clear intervention.
Everything is awesome!
Have nice day!

That was too good to be that easy. Failed. Is there an specific manipulation I should complete in order to make Kicad recognize a change by editing the pcb_new file? The app does not show the effect of changing a layer. Thank you for any guidance.

While kicad is running it does not look at the file. It has an internal data structure that lives in your fast memory (RAM).

So when you manipulate a kicad file outside of kicad you need to do this while kicad is closed.

Description of File formats:
https://kicad.org/help/file-formats/

As a follow up. My Debian distro has “vimtutor”. It has most of the stuff you will actually need. I still run through it from time to time because I’m not a programmer so don’t really use most of the features regularly enough to remember them.

Hi Rene, thanks for your answer. Yes I saw the .bak and did the good process for the app be able to take the original file.

Thank you paulvdh, now I see why there is no effect if I change lines, I used voice_memory_keyer.kicad_pcb for my modifications. Now if I modify voice_keyer_footprint.pretty/xxx.kicad_mod files, yes the app take the change. That’s ok… But, I have to modify each component file, and that is not what I was in mind.
Is there any other “united-layer-reference file” I could use? Instead of doing a macro to look in every voice_keyer_footprint.pretty/xxx.kicad_mod files?

Thank you for you patience.

Edit: ok, instead of throwing a question I should have check in the manual this nice feature “search in the file” I was never noticed before today.
:#