also needs mounting holes (they can be anywhere, need at least 3)
it might not be a bad idea to get a 3d model for this but otherwise this looks pretty solid to me
M
Mustafa7
<@757706909351411845> is this correct? i told codex to create a hole but it created a cutout by looking at the datasheet: https://asav.dev/pmw3360/files/pmw3360-datasheet.pdf
its not routing, throwing this drc: `Component component overlaps with pcb_cutout [pcb_cutout_0]`
M
Mustafa7
this requires a new spec to fix right? <@757706909351411845>
Seve
isn't the cutout part of the footprint?
Seve
could be a tscircuit/checks bug- but you need to make sure the cutout is within the footprint
M
Mustafa7
Yea it was outside of footprint, will check by putting inside the footprint
M
Mustafa7
<@757706909351411845> Checked placing `<cutout/>` within the footprint, still throws drc.
How is this plan to fix it?:
```It needs changes in both `core` and `checks`, plus the `circuit-json` schema.
A checks-only fix would be unsafe because the generated `pcb_cutout` currently contains no ownership information. `checks` cannot distinguish:
- A valid sensor overlapping its own footprint cutout.
- An unrelated component accidentally placed over a cutout.
The correct implementation is:
1. `circuit-json`: add optional `pcb_component_id` to every `pcb_cutout` shape.
2. `core`: when a `<cutout>` is inside a footprint, populate that ID. This should mirror how [`Hole.ts`](/Users/mustafamulla/Desktop/tscircuit-repos/core/lib/components/primitive-components/Hole.ts:55) already determines its owning component.
3. `checks`: in `checkPcbComponentOverCutout`, skip the error only when:
```ts
cutout.pcb_component_id === component.pcb_component_id
```
4. Add tests ensuring the owner is allowed, while unrelated components still fail.
The autorouter and Gerber exporter should not need changes. Once the false placement error disappears, routing can proceed while the cutout remains a real physical routing obstacle.```
Sapphire
<:warning:892823499205406760> Please avoid using excessive mentions, as it creates unnecessary notifications and disrupts others — use mentions only when truly needed to keep the discussion focused and respectful; repeated misuse may lead to moderation action.
Seve
yea that looks correct
Want to add to the conversation?
Reply in Discord so your notes stay connected to the source.