with @HiGreg 's help I learned how to filter selections and lock pads. Not to be satisfied with that … is there a way to lock the “Edge.Cuts” .
This feature request suggests it’s not possible. Note that Edge.Cuts are a drawsegment. However, maybe you could place Edge.Cuts in a footprint and lock the footprint.
You can not draw on Edge.Cuts in a footprint.
However, you can change the layer of any graphical object to the Edge.Cuts layer after it has been drawn.
Once graphics are in Edge.Cuts on a footprint they stay there, so HiGregs Idea is feasible , but needs a bit of fiddling to get it done.
I’ve played with different layers and objects. So far it seems the only object that can be locked are footprint pads. I was hoping that perhaps the drawing or ecox.user layer could be locked but no, or else I couldn’t determine how.
According to a comment in class_board_item.h only “modules and tracks can be locked.” I’ve traced through some of the source code, and the ability to be locked depends on SetLocked() and IsLocked implemented within the class_*.h file. (i.e. class_track.h and class_module.h).
Locking a track segment prevents “global deletion.” You can still move the track segment. To delete, you’d have to hit the delete key twice. The locked status is displayed in the bottom left of the GUI as “Status” and underneath “L”. Locking a module forces a popup before moving “Selection contains locked …Are you sure?”
The reason why tracks and vias need to be lockable is to ensure the shove router does not change them.
Footprint pads are generally locked in place (relative to the footprint) as this is how one expects footprints to behave. Being able to move pads without changing the footprint in the library is kind of a strange feature in the normal workflow.
All other things (including footprints as a whole) might benefit from locking only to avoid accidentally moving them. I kind of feel a lock on a per item basis might here be of limited interest. Per layer or per “item type” locking might be a of more use. (including removing the select ability to help on high density boards)
that’s a pretty important use when you have placements defined by mechanical requirements… I want to be able to “set and forget” those important locations at the start of layout, and not need to worry about accidentally moving something during routing.
After a bit of thought i realized i typically don’t care about absolute placement here but am very concerned about relative ones. So for me a grouping feature would be more useful than a per item or even per layer locking.
Both were discussed and are planned by the lead dev team. I think there are some open questions to resolve about exactly what locking means / how it works, but it was agreed that what we have today is not sufficient. Locking items (to avoid accidental editing) is common in other CAD tools, but what exactly is locked and other details of how it works varies, so we need to figure out what KiCad’s approach should be.
definitely. I have occasionally resorted to bastardized footprints to accomplish this, grouping would be much cleaner.
I agree with @halachal mechanical requirements are absolute (that is until the board can’t be laid out). Board outline, mounting features, keep out areas, low clearance areas should be able to keep locked in such a way that a global unlock either doesn’t effect or brings up a warning box.
Most of my career I’ve been designing circuits and farmed out the boards. The first thing I give the board designer is the layout (outline) drawing. To them the outline is as absolute as the circuit. If changes need to be made, we out formally change the layout drawing. Its been a while but I believe at l east one of the design houses used/uses Mentor.
Most locks in KiCad operate in “absolute” KiCad coordinates.
Pads etc. in footprints are locked relative to the footprint by default.
I find it kinda weird that you can lock footprints and track segments on the PCB, but not the PCB outline or any other graphic items for that matter.
As it is I started a PCB layout yesterday and I drew some measurements on Dwgs.User for both the PCB outline and pin 26 of a connector location.
At least this makes it easy to spot if the board outline has been moved accidentally.
This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.