Replies: 24 comments
-
I think you should mark them as virtual components, they aren't components, just pads in your PCB. |
Beta Was this translation helpful? Give feedback.
-
If this works for you please close the issue. |
Beta Was this translation helpful? Give feedback.
-
@set-soft |
Beta Was this translation helpful? Give feedback.
-
Hi @mdeweerd !
Variants are in fact schematic centric, the PCB is "consequence".
Nope, you just need to exclude them, not make them DNP. You can exclude virtual components, you can also use other criteria for the filters. I usually like to use a distributor code. When defined as Take a look at the |
Beta Was this translation helpful? Give feedback.
-
I'll see if these options can make a difference. |
Beta Was this translation helpful? Give feedback.
-
I made a test case for this:
tc5_01_20211224__header/
Other observation: tc5.csv is generated at the output root - I do not think this is requested for one of the targets, I think it's related to the pre-flight BOM XML generation. So in summary:
|
Beta Was this translation helpful? Give feedback.
-
Hi @mdeweerd ! The tarball doesn't include the Schematic, PCB and KiBot configuration. |
Beta Was this translation helpful? Give feedback.
-
Most outputs support variants, and variants support exclude filters. So you can apply a dummy variant containing the filter. The internal BoM is a special case where you have both options. This is because this was the first place where variants and filters were implemented. |
Beta Was this translation helpful? Give feedback.
-
Aargh! This should be better: tc5.tar.gz . Also available at https://github.com/mdeweerd/kibot-testcases . I haven't thought that completely through, but I think its not possible with a single run, and there are side-effects with multiple runs. The limitation of creating a separate variant is that the outputs can not all be generated from the variant provided on the CLI as it requires one variant with the exclusion filter and another without the exclusion filter, and so for each global variant. Running the generation twice, with different variants also creates different base directories. |
Beta Was this translation helpful? Give feedback.
-
This is documented, take a look at the KiCost output docs it says:
If you wonder why: the mechanism used by KiCost is quite complex and supporting it means applying the variants to the netlist. Which isn't currently possible. But you have two options:
I'm adding some magic here that could help. |
Beta Was this translation helpful? Give feedback.
-
The above patch is passing the header variant to KiCost. This could help. BTW: How do you exclude the QR* and TP* components in the KiCost output? (I mean using KiCost alone) |
Beta Was this translation helpful? Give feedback.
-
Is this Here I got J1001 and QR1. I think QR1 shouldn't be there, but this is an error in the PCB. This component isn't marked as virtual.
Position for virtual components? This isn't the use of a position file, I guess this could be useful for testing. If this is the case think the best is to create a special variant for it. Something like |
Beta Was this translation helpful? Give feedback.
-
My currentmethod is to tag them all as DNP but that crosses them out, which was the reason for this "issue". |
Beta Was this translation helpful? Give feedback.
-
I have QR1 as well (overlooked it). So that is effectively too much too.
I will test the patch and add something for the testpoint generation. |
Beta Was this translation helpful? Give feedback.
-
I figured out that virtual components can't be part of the P&P file. So now I added an option to include them. I added the following filter: - name: 'test_points'
comment: 'Get the test points'
type: generic
invert: true
exclude_refs:
- TP* And the following output: - name: 'position_test_points'
type: position
dir: "+PCBA"
extends: 'position'
output_id: '_test_points'
options:
variant: 'test_points'
include_virtual: true This generated
|
Beta Was this translation helpful? Give feedback.
-
Ok, after looking at the examples:
|
Beta Was this translation helpful? Give feedback.
-
Yes, this is a side effect of the XML generation. Now is removed. |
Beta Was this translation helpful? Give feedback.
-
Added some experimental code, KiCad 5 only. It generates an XLSX with just J1001 (after adding the |
Beta Was this translation helpful? Give feedback.
-
I think you need to create a "default" variant, perhaps using an empty |
Beta Was this translation helpful? Give feedback.
-
Then I added it as a variant to try, but I got, so it's definitively a filter that you meant:
I also noticed that the targets are not executed in the order they appear: kibot -c designs/tc5/tc5.kibot.yaml -b designs/tc5/tc5.kicad_pcb -e designs/tc5/tc5.sch \
-g variant=$i position_test_points schematic_color schematic_bw bom ibom position gerbers gerb_drill excellon pcbtop_img pcbbottom_img pdf_pcb pdf_pcb_fab step render_2d_top_black render_2d_bottom_black render_3d_top_black render_3d_bottom_black allpads_pcb allpads_drill allpads_position allpads_zip kicost I expected position_test_points to run first, but it didn't. The log: |
Beta Was this translation helpful? Give feedback.
-
OK, I could repeat that. Note: (sorry for closing/reopening - I have to revert to an older computer for the moment and the keyboard is not "great") |
Beta Was this translation helpful? Give feedback.
-
You need the following variant: - name: 'test_points'
comment: 'Only the testpoints'
type: kicost
file_id: _test_points
variant: ''
exclude_filter: 'test_points'
They are executed in the order they are declared in the file. I'll add an optional mechanism for CLI order |
Beta Was this translation helpful? Give feedback.
-
Hi @mdeweerd : Is this question solved? |
Beta Was this translation helpful? Give feedback.
-
Same as some other "open issues": I will check it but not in the very near future. The test points are a bit harder to setup & test. |
Beta Was this translation helpful? Give feedback.
-
I mark my testpoints as "DNP" because they are not actual components and should not appear in the BOM - they exist on the board.
It's however "annoying" that they are crossed out in the schematic.
Example: P30 is a test point:
What's the best approach with regards to this?
Beta Was this translation helpful? Give feedback.
All reactions