If you open KiCad and than from the project tool the Schematic editor it* is not there.
If you open EEschema stand alone it* is there.
it* = Filemenu -> new / open / open last used
the difference is so you can’t get into problems with the project syncing between eeschema and pcbnew i think…
best thing would be to change the copy and paste behaviour to just use the systems clipboard…
but i don’t know how difficult it is to do this for all possible operating systems.
on past it would be good to have a option to clear or use the clipboard content annotation and original position on the page… (something like Ctrl+V = paste - hang on the cursor for placing; Ctrl + Shift + V = past on original place; and defaults to clear annotation and with modifier Alt pushed use original annotation)
This has always been a pain. I don’t know much about how the Windows clipboard or other OS’s “native” copy/paste commands are accessed from the code, but it is such a fundamental part of the normal Windows interface that it really stands out when it is missing. It would be at or near the top of the list of things I would vote for as an enhancement.
My workaround:
-Drag “yourSchematic”.sch from one project to another.
(At this point it will not show up in your kicad project)
-In new project create a new hierarchical sheet with the same name as the other sheet.
(A file named ‘yourSchematic.sch’ already exists. Do you want to create a sheet with the contents of this file?)
-Click yes
-Link up your libraries
(also still not showing up in my kicad project viewer)
I’ve found another workaround (I’m on KiCad 4.0.5 on Mac OS). eeschema has an option in the File menu, “Append Schematic”. It lets you select another Schematic (.sch file) from disk, and it basically pastes it right on top of your current work. So if I know I need to paste from another schematic before I start drawing the new one, I’ll just Append the source and block-delete everything I don’t need. If I’ve already got some components laid out, I’ll zoom way out, drag everything outside the page boundaries (the canvas is much bigger than the bounded area), Append, block-delete, and then drag everything back into the layout box.
This does seem to append page layout stuff like Title, Company, etc, so you may need to check that after appending.
Slight difference on Win10 and Version: (5.0.0-rc2-dev-44-gde6b32d23), release build
Drag box selects items, immediate applied default is place(move) (but image suggests duplicate, as two copies display, until screen redraws eg on zoom, a minor wrinkle)
Right click has choices of Place/Cut/Copy/Drag/Duplicate/Delete
Duplicate sightly differs from Copy, in that Duplicate is live, and Copy is ‘to clipboard’, which means you can switch sheets and paste later.
Seems good, but I do spot one bug - in Copy/Duplicate of a resistor network, the unit-number is dropped, and all selections become unit A.
Could be an artifact of the moronic R?A empty field default, whereby no attempt is made to tag ‘next available RefDes’ (aka auto-increment), a simple and very useful feature found in many/most? other tool chains.
Such discard of all information on copy, means a lot of manual checking/mouse moves and clicks to actually finish any copy. Auto-annotate tools will fail, if the unit number is lost.
I’m late to this discussion but I’ve just been trying to do this as well. I ended up using the hierarchical sheet method to append an existing schematic and then copied across the bits I needed. Perhaps what is needed is a way to save schematic blocks to a block library - I do a lot of design work with the same microcontrollers and always have the same power supplies, crystal sub systems and reset circuits (Usually with the same PCB components as well). Having a way of saving these schematic elements as blocks and then adding them like you would add a symbol would be great.
Tonight I read your suggestions before copying a schematic I created last week in order to replace one component with another.
But I haven’t yet figured out what blocks are. So I decided to try an easier way first to see if that might work.
My goal was to replace the PNP 2N3906 in
the PCB w/ A TIP120 Darlington PNP in order to drive 700 mA instead of 300 mA, leaving everything else in the schematic unchanged. But the bigger transistor had a different footprint and handled a larger collector current.
So I tried copying & saving a schematic, in the same way you would copy and paste text between two files, and it worked! YAY!
Here’s how I did it:
Created new project called CCS_700 & in a new child folder with that name, in the parent folder where my source project was.
Navigated to the previous project in kicad. I right clicked on schematic file & opened it w/ a text editor.
Copied everything from that source schematic file. (Ctrl-A, Ctrl-C)
Renavigated to the new directory in the new folder CCS_700 in kicad.
Right clicked on schematic file & opened it w/ a text editor
Deleted its 4 lines.
Pasted the contents of the previous schematic file that I had copied. (Ctrl - V).
Saved the schematic file.
Shut & restarted kicad.
YAY ! It worked! A complete duplicate of the source cct.
I then changed the component I wanted to, reassigned it a footprint, built my netlist, and laid out the new PCB to handle larger current.
I was having trouble copy+paste blocks in eeschema as well, so i found this thread.
Finally i figured out what was the problem:
You can not copy+paste between projects, if you open eeschema from inside the project manager, try to copy, and later try to paste using a different project, the clipboard will be empty.
What you CAN do: Open the STANDALONE eeschema, and open your .sch file manually, copy the block, open the destination .sch, and paste.
It will WORK!
Tried under linux (debian), V5.0.2+dfsg1-1 release
Thanks for your approach, it seemed to work her at first, only the copied block referenced the <old_project>-rescue.lib . Re-assigning the comonents is not a huge deal, but maybe I’m missing something and this shouldn’t happen?
Well if your old project relied on the rescue lib then your schematic is no longer really reusable. That is just how it is.
You have two options:
Fix the references and point them to the current equivalent symbol in the normal libraries.
temporarily add the old rescue lib to the project local libraries. Save the schematic. Remove the old rescue lib. Start the rescue dialog to get the old symbols into the rescue lib of the current project.
This all will go away with the new file format that is expected to be part of v6. (So about two years from now.)
OK, thanks Rene! Another important lesson learned!
Having said that, there is a rescue-lib in every project folder. So I would have to grep all the .sch files and check if it contains the *-rescue link? Just did that with one schematics file and it reported 49 cases (in 1533 lines).
If you want to go with option 2 then you really do not need to care how many symbols are used but only how many rescue libs are used.
Step one of adding the old rescue lib to the current projects list of libs and saving the schematic will copy all used assets into the cache library.
Step 2 of removing said rescue lib from the list of libs and starting the rescue dialog will create a new rescue lib in your current project where the symbols that now only existed in the cache lib will be copied.