I’d like to get some feedback if my idea is sound, and if so create a feature request with my idea and your input.
The brush tool was the only thing I liked about the old Eagle and I think it would be a nice addition to KiCAD.
How does it work:
When you select the tool, you choose, what to apply to the brush. For example “Set value to 10k”. Now everything you click on, which has a “Value” property, gets its value set to “10k”. The advantage: you don’t have to edit every single resistor in the schematic where you want to set the value to “10k”, you just select the tool and click on every resistor. Another example: “set visibility to false” lets you quickly click on all text items in the schematic you want to hide. Same thing in the SymbolEditor. Tell the brush tool to “Set pin type to output” and bam! You click all pins where you want to set the pin type to output, job done. I would also be a nice addition for PCBNew. Select “Via size = xxx” and click, click, click, the vias have the new size. “Move to layer …” and easily move graphical items to another layer and so on. What do you think? I know everything is doable without this tool but it would make life a bit easier in my opinion
Proposed tool functions (at least what comes to my mind now):
Symbol Editor:
Set pin name
Set pin number
Set electrical type
Set Graphic style
Visibility
EESchem:
Set Value
Set Footprint
Set Visibility (Text)
Set Do not populate
Set Alignment (Text)
Set Netclass
PCBNew:
Set Visibility (Text)
Set Alignment (Text)
Set Fillet/Chamfer (Zones)
Set Layer (graphical items)
Set Track Width
Set Via Size
Set Pad Connection (thermals)
Set Pad Clearance
This seems like a good idea until you look into it.
The Symbol Editor:
You are only ever working with one symbol at a time.
When you create pins, you number the first then use the “Insert” key which keeps creating pins with new numbers. The E hot key then gives access to each pin automatically starting with the name. The other pin characteristics are there in front of you to set as you wish. Every pin will be different, so I can’t see the purpose of the “brush” function here. I haven’t even mentioned the pin table.
Schematic:
Again, there there are the hotkeys. Most symbols will have a different name.
The footprints are often easier to scroll through to select the correct one. It is generally easier to recognize a footprint name and click, than try to remember the exact spelling and type.
Netclasses are set beforehand.
PCB is much the same. Hotkeys and shortcuts for most functions. eg. track width, via size, layers, text visibility.
With respect to your original example of 10K resistor: why not plan and create ten 10K resistors when first drawing the schematic?
To me; in many instances, you set up the brush, then use that function; whereas, with Kicad, you use the hotkey, then set up the result. Same outcome, just opposite , but equal in work.
In principle yes, but with the first select, then do something (kicad approach) you have to first carefully make your selection. This requires far more planning and concentrated work. If you do the selection not right you double your work (with writing the parameters you want to change).
The eagle approach (brush tool) can be used far easier - set the command, then click many times. Easy to correct false clicking (CTRL+Z), easy to repeat on forgotten items. Whereas correcting selection mistakes in kicad requires again more clicking plus the added steps of opening again the properties dialog and write again the new settings.
So I understand the wish from enrico, but I think we have two different usage strategies and I’m unsure if it’s useful to mixup the two systems.
background to judge my answer: I have worked ~28years with eagle, but use Kicad since 2 years 4 years (time goes by…) for all my projects (privat & professional). From this history I’m selfconfident enough to compare the two programs.
I just created a symbol with 254 pins. I wrote a script to assign the pin names but wanted to set the pin type manually to double check. And double clicking every pin instead of just clicking once to assign a different pin (like 50 output, 80 N/C, …) type makes me nuts. The pin table isn’t too much help there either since you have to close it to save you changes and undo undoes all last changes.
Many designs I do have 500+ components. And in my workflow I don’t mind the exact values of passives that much until I’ve finalized the first draft. Afterwards I calculate the critical values and “fill the rest up” with 100nF, 10k, … . Sure I can edit every single resistor or use the symbol fields table, but again in my case just being able to set the values of some components I have in mind feels just more natural for me.
But the strongest case for me is bulk setting the visibility of text fields (comments, placement, attributes, …) which is really cumbersome the other way round.
But thanks for your feedback, thats why I wanted to ask around before posting a request!
I see the charm of wanting to do this, but I also guess it will be useful on relative rare occasions only. How often is it you want to bulk edit some property?
I also wonder whether is it possible to invoke a python script in the PCB editor from a hotkey?
Then you could hover the mouse over some object, press the hotkey and run the script.
Scripting for the Schematic editor is apparently planned too, but it will take some time (years?) to get there. There are so many things to do, and only a limited number of developers for KiCad…
The bulk-editing will get easier with the added properties panels (footprint editor + symbol editor + schematic editor) in the v7.99/v8 versions.
Albeit the properties panel currently doesn’t shows all parameters (visibility of symbol fields can’t be set at present) it’s a good start, and adding more parameters later will be possible.
sidenote: as I played with the symbol editor (regarding bulkediting of visibility) I discovered the next bug - so even if you don’t get the brush tool the discussion helped to improve kicad
Sure, I use the duplicate function for this all the time. But if you have already placed some stuff on the PCB and change the values of a couple of caps it doesn’t work too good. But sure, it’s not too complicated the way it is
I wasn’t condemning the brush idea outright. I think you need to choose where it would be appropriate or if another hotkey would suffice.
I just replied to another thread about removing text in schematics. Hover over text and use delete key removes from schematic, unticks “visible” in the symbol properties, and still leaves the text in the properties.
Would the “Brush” improve this?
What type of names you have that you need script to assign them?
I place pin, give it a name (i.e. “A0”), give it a number (i.e. “7”). Then I use 15 times Ins key to get pins A1…A16 with numbers 8…
Of course if pins are not in exactly that order you have to do it partially.
In a similar way as @Piotr indicated (specifically, setting a value of ‘7’ to enable changing only those desired, I show these alternative’s… only One-Click to change All the specified Values…
#1) In most any Text-Editor, do a ‘Find and Replace’. Can do ‘All’ or march-down through the file and change those desired.
#2) Create a Script or Code/App to do it in a manner of ways, including by Mouse-Selection
Clever concepts of doing this in Code can enhance capability/flexibility.
I created an App to do it for my needs (at the time I did it) and I did Not include Mouse-Selection. Thus, without this selection ability, my code will change All Values (in the same or, in Multiple files) that the Same Text.
I avoid blindly changing unintended items by being Clever about the Text I want to Find…
Example shows Schematic with multiple columns of Resistor-Types I’ll change by the script-App. It has a Pull-Down for selecting items but does not include Value’s (I coded pull-down for something else…). So, I Copy&Paste. Need to do only one and all the ‘Same’ text will be changed.
I forgot to include the Result in video so, below is a Snippet of result…
It’s a SMARC module so tons of interfaces like multiple LVDS, GBE, USB, CSI and many more. And the pin names are in a specification document for reference.