turdusmerula / kipartman

Kicad parts manager and BOM extension tool
GNU General Public License v3.0
6 stars 2 forks source link

[FEATURE] Realtime Update Kicad Eeschema fields with design data in kipartman #18

Open auphofBSF opened 6 years ago

auphofBSF commented 6 years ago

As discussed in #4 We can now successfully populate kicad fields from kipartman data in realtime kipartman17w50b21 HD MP4 version of above GIF @ https://vimeo.com/247526685

This Enhancement is in prototype so is immature (not fully developed) but stable for component Properties Edit, Kicad Eeschema. This enhancement at present will only work in a Windows environment, . As such I think it should stay on a development branch. It will expand, mutate and change, I will sync it with master periodically. For the moment I have published to my Fork https://github.com/auphofBSF/kipartman/tree/FEATURE17W48-KICADlink-Eeschema.

The python classes I am using are developing for linux as well, and MSW specific functions are separated. The method to do the integration with kicad is using the UIA (User interface Accessibility) interfaces to monitor for window/dialog s ,to then parse and automate there field manipulation. This enhancement adds multi-process and threads to improve and isolate functionality for smooth UI processing between Kicad and Kipartman

TODO:

Handle corner cases, Kicad not running and Kicad Eeschema (Schematic) , fields not defined Kicad Eeschema add component to schematic - Automate Dialog from Kipartman Kicad Eeschema schematic Component Table View - Automate Dialog from Kipartman

Wishes

Ideally there should be better API and extension support in eeschema,

Items to explore:

see: http://docs.kicad-pcb.org/doxygen/v5_road_map.html#v5_sch_plugin

turdusmerula commented 6 years ago

Well done.

On my side I'm working on improving the support for footprints and models handling associated to parts. I will soon be able to have a quick graphical preview inside kipartman from a kicad_mod file and lib fie. This will be another step to improve interaction with kicad when using kipartman as part manager.

auphofBSF commented 6 years ago

Yes, I saw those commits relating to mod and lib happening and that looks fantastic,

Whilst improving the import #6, I am getting a better understanding of importing and selecting footprints, possibly something needs to change slightly in the API as well.

This is what I am considering which will fit with your visualization work very well.

  1. Lookup up both in SNAPEDA and KICAD a. If Footprint described as {pretty}:{size} ie: Resistors_SMD:R_0603 then it should look for the KICAD {pretty} folder located where the environmental variable KISYSMOD points to.
    • Then locate the file {size}.kicad_mod (Need to decide how to handle "_Handsoldering" variants of the footprint)
    • in MSW this is KISYSMOD=C:\Program Files\KiCad\share\kicad\modules
    • Parse the file, the 3D details can be found at (model ${KISYS3DMOD}/Resistors_SMD.3dshapes/R_0603.wrl
turdusmerula commented 6 years ago

I was thinking as well that a break in the API has to be made.

Here is what I'm thinking about, and it is compliant with your vision:

Points that needs further thinking are:

auphofBSF commented 6 years ago

The footprint./model views sounds perfect. That synchronization via a git server has merit as the obvious choice, as kicadlib is git based. However I have no idea of pro's con's ? Unfortunately no idea on the 3d shapes other than they are standarized and there must be a python handler for them?, even only a single 2d viewer

turdusmerula commented 6 years ago

I'm prototyping a new view for footprints. There is several possible approaches and with some tests I may find a straightforward one. Git is just an idea amongst other. The difficulty here is that we have on kicad side some files that can be randomly added/modified/moved/deleted by user. On kipartman side we need to be able to track each footprint or model precisely in database to enable the multi-user capability. I'm searching for the right way to have a strong link.

auphofBSF commented 6 years ago

I have moved this into this repository under branch https://github.com/turdusmerula/kipartman/tree/FEATURE18-KICAD_EESCHEMA_LINK

I believe it should run under linux ( the Kicad Eeschema Link) will be disabled, but these additions are now merged with branch part_manager, and under windows can be enabled from the configure Dialog.

If all looks ok, maybe at some point both branches can be put into a ReleaseCandidate or Dev Branch. and dead branches pruned.

There are many TODO's none specifically raised as issue's or features yet. I want to test in real life usage and develop some priorities