Hi all (mostly Jorge),
The Library Duplicate function, new in 7.3, has a number of issues.
First, one incidental note: Duplicate doesn't appear to be in the manual, nor in the in-app Help.
Second, it seems to have some bugs.
Bug 1: Eagle uses the wrong file path for the target file (which should be the same as the source file!)
Eagle should use the path to the existing library file, not go searching for a same-named file elsewhere in the file system. Not only will Eagle often not find the current library file, instead sometimes it might well find a library file of the same name in the path, and perhaps stick the copied component into that other existing file. This is an accident waiting to happen.
Repro:
- I created a new library CopyTemp.lbr, and copied into that library the *741 device (which brought its two Packages and one Symbol). I saved the new library.
- In this new library, TOC view, I right-clicked on the device
- From the pop-up menu, I selected Duplicate
- Dialog Duplicate device set > Enter new name: I entered "MyOpAmp", hit OK
- Error message: "Can't open "CopyTemp.lbr" No such file or directory
Using Sysinternals ProcMon I can see that the reason for the error is that Eagle is attempting to open the wrong path. Eagle searches within the first directory in the Libraries path, and apparently if the new library is not there, Eagle gives up.
Bug 2: Bad error message (or possibly more serious bad code):
On one trial, I accidentally didn't change the name of the device (leaving it as "*741"). In that case I got an error message that there was already a "Package" named that. OK, it was good that I got an error message, but the message is wrong -- there's already a Device by that name, not a Package.
Bug (or at least problem) 3: In order to test the Duplicate feature at all, I moved my CopyTemp.lbr file to the (incorrect) directory where Eagle actually looks for it. This allowed Eagle to complete the Duplicate process.
Now, when Duplicating a Device, Eagle does not duplicate the Packages and Symbols. It only creates a (renamed) copy of the Device per se, and leaves it referring to the existing Symbol(s) and Package(s). So actually this does not achieve the effect desired, and potentially lures users into editing the supposed duplicated Symbols or Packages, only to find that they've messed up the existing Device.
Yes, it would be possible to Duplicate the individual Packages and Symbols, then create a new component that references them, and then make all the pin-pad connections.
But that's more tedious and error prone than my hillbilly method of copying the device (in one step) to a new library, just renaming each item, and then copying the new device back.
-- Graham