Replies: 5 comments 17 replies
|
I would consider an approach with make file. This way you can keep pure CLI for super simple things, make file for advanced stuff, and still the python directly if you want to have full control. Added bonus that the make file is easy to track in git. Also, thanks for the really useful tool! |
|
I would suggest making it a plugin for KiCad. This would of course mean the UI has to be designed but it would be much easier to use for users which are scared by CLI
|
|
I have a proposal for the new KiKit UI; I am happy to hear your thoughts. The problemCurrent KiKit UI is messy - everything is an option, some of the options take multiple numbers and it is really hard to guess what the number means. The naming of the options is often quirky in order to make them unique and thus, the options are often unintuitive. Also, it is not clear what parameter of the panel the options refer to. New options contribute to this mess. It is also not easily possible to reuse panel settings between projects as everything is captured in the command line arguments. The solutionPanel options can be easily grouped; e.g., we have options specifying layout, tabs, framing and cuts. We could specify all these options into a JSON file: {
"layout": {
"style": grid,
"cols": 3,
"rows": 4,
"spacing": "4mm",
"alternation": "none"
},
"source": { // Specify the source area
"style": "auto", // Could be also rect; e.g., polygon in the future
},
"tabs": {
"style": "normal", // Also, could be e.g., full width
"source": "auto", // Also, could be layer or annotation
"width": 3, // If no unit is specified, assume millimeters
"hcount": 1,
"vcount": 1
},
"framing": {
"style": "railsTb", // none, full, railsLr, frame
"railWidth": "5mm"
},
"tooling": {
"style": "3hole", // none, 4 hole
},
"cuts": {
"style": "vcut", // mousebites
"layer": "User.Cmt"
}
}KiKit could be then invoked via Basically, the preset is the source for the settings and then you can locally override the parameters via command-line options as key-value pairs. The options are named according to the groups. Note that every group has a KiKit could then ship with default presets; e.g., panelize with V-cuts, or panelize for JLC PCB SMT assembly. We could mark such predefined presets with leading The preset JSON should not be nested - it would make overriding the options complicated. If nesting is desired, we could emulate it with key values separated by The syntax for overriding the options is the following: it is a list of key-value pairs separated by a Why is this a good idea?
Why is this a bad idea?
Possible options
Please, express your opinions! |
|
Proposal to add placements of arbitrary footprints to arbitrary locations, something along the lines of: {
"tabs": {
"type": "normal",
"width": "3mm"
},
"framing": {
"type": "frame",
"frameWidth": "100mm",
"frameHeight": "100mm"
},
"footprints": [
{
"type": "./panel.pretty/fiducial_round_1mm_2.5mm.kicad_mod",
"x": "5mm",
"y": "5mm",
"layer": "F.Cu",
"angle": "0°"
},
{
"type": "./panel.pretty/fiducial_diamond_1mm_3.0mm.kicad_mod",
"x": "95mm",
"y": "5mm",
"layer": "F.Cu",
"angle": "0°"
},
{
"type": "./panel.pretty/fiducial_square_1mm_3.0mm.kicad_mod",
"x": "95mm",
"y": "5mm",
"layer": "B.Cu",
"angle": "0°"
},
{
"type": "./panel.pretty/pcb_part_number.kicad_mod",
"x": "45mm",
"y": "7mm",
"layer": "F.Cu",
"angle": "0°"
},
{
"type": "./panel.pretty/pcb_barcode.kicad_mod",
"x": "50mm",
"y": "95mm",
"layer": "B.Cu",
"angle": "0°"
}
]
}It may help with these: [ ] Implement tooling (#91, #123) Exact syntax may need some thought. |
|
#139 was merged to master. Please test it and report any problems you find. |
Uh oh!
There was an error while loading. Please reload this page.
Hello guys, I have a question for you.
Currently, I can think about many new features KiKit could do. However, I struggle with designing a suitable CLI for them. Currently, the panelize CLI is really clumsy and hard to get right on the first shot. There are so many options and I think more of them will come in the future.
So I would like to ask you for a help; to brainstorm. Consider the current KiKit CLI for panelization; what would you change? How would you redesign it to make it easier to use?
All reactions