As I gain knowledge (and use features I haven't used before), I occasionally make a new discovery. I think that is the case this time.
In Eagle, I can create design variants:
* Eagle Schematic | Edit | Assembly Variants...
And then create a new variant or two and select a few parts to not be included in each.
In a recent case, I had two different battery holders. They overlaid on the PCB, so of course only 1 can be populated at a time. With the eagle variant feature, the schematic shows a big X over top of the part that is not in that variant. In the pcb, the holes/pads are there, as they should be, but the other aspects of the non-variant part are not shown (tdoc, etc.).
In the brd file, populate="no" is the attribute of interest. If that attribute does not exist (as with most parts), then it should be shown, or it could have a "yes" value. Only if it is "no", I think FreeCAD-PCB should skip the part and not show it.
So close now - it shows the copper pads, but it also shows the tPlace. Mariusz, you are so responsive I hate to ask for more... Ideally: copper pads visible, tPlace not shown.
Hi,
I can't wait to see this new feature.
My two cents : tPlace need to be shown on not mounted parts because this is what you will get on you fabricated PCB and it will be easier to identify missing part.
Best regards.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
SeB30 makes a very good point to ponder.
* As noted, an assembled PCB would typically have both tName and tPlace, just the part would not be installed.
* Eagle's representation removes both tName and tPlace, which makes it more obvious, particularly in hand assembly of the first prototypes. And my last comment was, perhaps blindly, focused on "it's not like Eagle".
My perspective today is that this version is a definite improvement by not rendering the component, while showing the pads. Whether it would be better to add the tName back in, or remove the tPlace, or stay as shown; I can accept any of those alternatives.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi,
yes, for hand assembly, it's good to have only what need to be mounted. But for machine pick and place, the BOM say what need to be mounted or not following the variant needed. Time for a check box ?
Nevertheless this is effectively a great improvment and thanks a lot for it !
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi Marni,
As I gain knowledge (and use features I haven't used before), I occasionally make a new discovery. I think that is the case this time.
In Eagle, I can create design variants:
* Eagle Schematic | Edit | Assembly Variants...
And then create a new variant or two and select a few parts to not be included in each.
In a recent case, I had two different battery holders. They overlaid on the PCB, so of course only 1 can be populated at a time. With the eagle variant feature, the schematic shows a big X over top of the part that is not in that variant. In the pcb, the holes/pads are there, as they should be, but the other aspects of the non-variant part are not shown (tdoc, etc.).
In the brd file, populate="no" is the attribute of interest. If that attribute does not exist (as with most parts), then it should be shown, or it could have a "yes" value. Only if it is "no", I think FreeCAD-PCB should skip the part and not show it.
FreeCAD renders both parts into the model. I went on a search for why, but I'm not sufficiently python skilled to figure it out.
In eagle.py, I see:
it appears to be picking up that attribute with
'populated': self.translateBoolValue(i.getAttribute('populate')),
Then in PCBpartManaging.py, I see:
So this looks like the area where it might additionally check the populated field and return before it does any work.
I tried injecting the following in there, but it always shows "false" and doesn't do what I expect.
Can you help me out?
Hi,
check file from attachment (PCB\formats).
That almost works - the part is included/excluded properly. The "almost" part is that the pads for the part are also shown/not shown.
Hi,
it should be ok now.
So close now - it shows the copper pads, but it also shows the tPlace. Mariusz, you are so responsive I hate to ask for more... Ideally: copper pads visible, tPlace not shown.
Last edit: David Smart 2024-04-11
Hi,
I can't wait to see this new feature.
My two cents : tPlace need to be shown on not mounted parts because this is what you will get on you fabricated PCB and it will be easier to identify missing part.
Best regards.
SeB30 makes a very good point to ponder.
* As noted, an assembled PCB would typically have both tName and tPlace, just the part would not be installed.
* Eagle's representation removes both tName and tPlace, which makes it more obvious, particularly in hand assembly of the first prototypes. And my last comment was, perhaps blindly, focused on "it's not like Eagle".
My perspective today is that this version is a definite improvement by not rendering the component, while showing the pads. Whether it would be better to add the tName back in, or remove the tPlace, or stay as shown; I can accept any of those alternatives.
Hi,
yes, for hand assembly, it's good to have only what need to be mounted. But for machine pick and place, the BOM say what need to be mounted or not following the variant needed. Time for a check box ?
Nevertheless this is effectively a great improvment and thanks a lot for it !
Hi,
check version from attachment.