Hello Philip,

I have been making too many objects in one of my libraries.  So I'm
attempting to split it into multiple technologies.

So far I'm failing to find an elegant way to do this

I have tried opening the big library, selecting objects, then
"shift-m" moving them to a different library page.  Doing this left
the object name in the original library page - and no name in the
new one.  Then when I saved the library, it was empty.

I tried with a text editor.  This worked, but was prone to errors
because I can't _see_ the object.  Maybe this means I need to name
my objects better...

What seems to be the best is:
  * use the filesystem and make a copy of the big library
  * open xcircuit
  * delete all the objects I don't want in a particular new technology
  * save the technology
  * use the filesystem to rename it as the new technology page
  * open the new technology page in emacs and change the name
    on line 3
  * do the whole process again, but deleting different objects

Is there a method I'm missing?

The (sort of) simple method that you're missing is that you can
organize technologies simply by changing the prefix name.  So if you
have a default object "transistor", this is equivalent to a null
technology prefix, therefore the same as "::transistor" (this is the
same method Tcl/Tk uses for namespaces).  If you edit the name in the
library (shift-e) and change it to "newlib::transistor", then you have
consequently removed it from the default technology and added it to a
new technology called "newlib".  Do likewise with all the objects you
want in a single new file.  Then bring up the window "File->Save
Technology".  Where it says "Save which technology:", the pop-down menu
should now include the technology prefix name "newlib".

Prior to using technology prefixes, xcircuit put all objects in a file
on one library page.  People who used the older versions of xcircuit
are therefore used to the library file = library page connection.  With
the technology prefixes, that's no longer true.  Normally, if you load
a library file, it will appear on a new library page with all the objects
on the same page, like it used to be.  But you can set up your personal
environment (the .xcircuitrc file) to have an arbitrary arrangement of
technology objects on arbitrary library pages.  Therefore "shift-m"
isn't doing anything to change what technology an object belongs to;
it only changes what library page it appears on.

There remain several issues with this method.  (1)  It's not particularly
well documented, especially for people familiar with the way xcircuit
used to work before technology prefixes;  (2) there's no method to
select a bunch of objects and change their technology prefixes all at
once;  (3) there's no easy way to tell at a glance what technology an
object belongs to.

The "library manager" (File->Library Manager) is probably the best
place to deal with these issues, although issue (2) can probably be
handled easily with a simple command option (select a bunch of objects
on a library page, then enter a new technology prefix name for all of
them).  Item (3) can be dealt with by choosing "Options->Show Library
Namespaces" except that the names are then rather long and tend to
overlap each other (therefore I need to fix the library display to
arrange itself according to the maximum width of either the object
or its name).  Color-coding by technology might be nice.  But I
think the whole thing would be better managed with a more comprehensive
technology manager that has, in addition to the existing "Source
Technology File" and "Target Library Page" (for loading files),
another view for "Source Technology File" and "Target Technology File"
that replaces the buttons "Load Selected" and "Load All" to "Move
Selected" and "Move All".

I also found an error that needs to be fixed;  by doing the name
change that I mentioned in the first paragraph, followed by "Write
All", the popup window says "No modified pages or technologies to
write", which is obviously false, since by moving an object from one
technology to another, both technologies have been modified and should
appear in the window.

                                                ---Tim

+--------------------------------+-------------------------------------+
| R. Timothy Edwards (Tim)       | email: t...@opencircuitdesign.com    |
| Open Circuit Design            | web:   http://opencircuitdesign.com |
| 22815 Timber Creek Lane        | phone: (301) 528-5030               |
| Clarksburg, MD 20871-4001      | cell:  (240) 401-0616               |
+--------------------------------+-------------------------------------+
_______________________________________________
Xcircuit-dev mailing list
Xcircuit-dev@opencircuitdesign.com
http://www.opencircuitdesign.com/mailman/listinfo/xcircuit-dev

Reply via email to