horizon-eda / horizon-pool

The pool for the horizon EDA package
Other
30 stars 71 forks source link

Parts for screw holes #266

Open nellump opened 2 years ago

nellump commented 2 years ago

AFAICT, the only option for placing holes in a board are the * Hole padstacks in the pool (via the place hole tool). Parts for a variety of screw holes would be handy: no need to look up the correct clearance hole size for a given thread; handy keep-out markings on the silkscreen; etc. Of course, it also means creating symbols, entities, packages and parts for each thread, and placing a symbol for each desired hole on the schematic.

Is there another reason such parts don't exist, other than "not a priority"? I'd be happy to take it on.

carrotIndustries commented 2 years ago

Good point. I initially though to cover this with the hole padstacks placed by "place hole" but lateron came to the same conclusions as you did. So I definitely think there's value in having parts for them.

There's no need for specific symbols, unit and entity as all holes are identical from an electrical view. So we'd need a generic unit/symbol/entity and a package/part for each hole. Make sure to set the skip Pick&Place and skip BOM flags on the parts.

frmdstryr commented 2 years ago

Would it be easier to have the place hole dialog have a combo box to pre-fill standard sizes?

nellump commented 2 years ago

On Sun, Jan 30, 2022 at 12:05:00PM -0800, Lukas K. wrote:

There's no need for specific symbols, unit and entity as all holes are identical from an electrical view. So we'd need a generic unit/symbol/entity and a package/part for each hole. Make sure to set the skip Pick&Place and skip BOM flags on the parts.

That's exactly the approach I took when I made a few test parts yesterday. Thanks for the tip about the flag settings.

nellump commented 2 years ago

On Sun, Jan 30, 2022 at 12:40:03PM -0800, frmdstryr wrote:

Would it be easier to have the place hole dialog have a combo box to pre-fill standard sizes?

That's a possibility, but I don't see support for silkscreen layers on padstacks currently. And the software would need to include tables of standard hole sizes. I think that sort of data is best kept in the pool, but that's a decision for the developers.

nellump commented 2 years ago

I've created example parts for M3, M4, and M5 screw holes. They're available on the screw_holes branch of my fork of horizon-pool. (Is there an easier way to share these changes short of a pull request?)

A few comments about the packages:

  1. Used the Circular mechanical hole padstack.
  2. Added a "keep-out" line circle to both the top and bottom silkscreen layers.
  3. Added matching line circles to the top assembly and courtyard layers.
  4. Added a $RD designator to the top silkscreen, and $RD and $VALUE designators to the top assembly layer (mostly to keep the rules check happy).
  5. Added reference dimensions for both the hole and the keepout circle.
carrotIndustries commented 2 years ago

Is there an easier way to share these changes short of a pull request?

Just point me to the branch name. Other than that, a WIP/draft pull request works as well.