is there a way to create a new symbol from an existing schematic?
It happened to me more then once, that after I created a particular part of my design, that I wanted to save it as a symbol to my library so I can reuse it in other designs.
I don’t want to design it all again, to get it into my library.
If there is no such conversion, what would be the best way to reuse certain parts of a schematic for new designs?
Example: If I want to do some raspberry pi shields I don’t want to design the pin headers over and over again.
Might help if you could create and upload a sample schematic and cache.lib.
Not quite sure why after you created the symbol it isn’t saved in your custom library. If you right click on the symbol in your schematic click on properties and then edit properties. This should show where that symbol is located. In picture I did this on the pump symbol and it shows symbol Pump_Sprayer and it is located in my custom library which is named Mendy.
I don’t understand why you are writing about designing pin headers over and over again. You should define it once as a library element and just use if needed.
Thank you, your answer cleared up my confusion. Thought question referred to an Eeschema schematic which is only module I use, never designed a board. Did find the library and symbol from the template you mentioned.
The Raspi Pinheaders just have been an example I thought everybody could grasp easily. @paulvdh I found the template, thanks for that.
Since I have a little fussy workflow sometimes, I thought it would be nice to extract parts of an schema into a symbol, without the need to do this specific part again in the symbol editor.
@Piotr I’ll give your solution a try.
Ok, feeling stupid right now, how do you actually copy from a schematic into another. I can “ctrl + c” my selection and paste it in the same schematic file, going to the destination project, it gives a “nothing to paste” message.
Unfortunately there isn’t a level of grouping between symbols and a sheet in a hierarchy. I’ve often thought it would be nice to have subcircuits that could be inserted and the right thing would happen with references and the BoM when instantiated in a larger circuit. They could have associated footprints and 3D models. But it takes a lot of infrastructure in the code to make something like this possible. Right now I’m just hanging out for v6 so that we can reach the next plateau, then start dreaming of the future.
This has been discussed before with respect to having a library of existing, vetted, sub-circuit designs (power supplies, amplifiers, etc with all the parts pre-chosen and values pre-calculated).
One method would be to have your own library of schematics that you can copy and use as a hierarchical sheet. I haven’t tested it, but I would think that if all the symbols used are found in your global symbol library list (either the parts that come with KiCad, or your own personal libraries that are configured in the global library table) then you should be able to get away with only copying the schematic file to your project folder and then linking a hierarchical sheet to the schematic file. It would need to be verified that the symbol cache file would be updated with the new symbols used in the new schematic file just by opening it.
I just verified Piotr’s method of using Eeschema in “stand alone mode” to copy stuff between schematics and it works.
Normally, when working on a project, you open Eeschema from the project manager, and the left top corner of Eeschema looks like:
When you open Eeschema in “standalone mode” (Directly from your OS, so not from the “Project Manager”.
Notice the 2 extra icons for creating a new schematic or opening an existing schematic.
In a similar way you can open multiple PCB’s in Pcbnew with: Pcbnew / File / Append Board
This can be used for example as a primitive panelisation tool.
At the moment this is very limited though. I do not know of a way to keep the PCB and schematic synchronized with each other when working this way.
It definitely needs “more work”.
@Piotr ok now I got it. A little clunky but exactly what I was looking for.
Doing this on Linux, but works exactly how you wrote. I can confirm that it is just working if you close the first schema and than open up the destination schema.
@kenyapcomau Totally understand that this takes some more effort to implement, so lets dream together and see whats coming next