Hello! Inkscape is really spectacular, and may once and for all rid me of my chronic dependence on Illustrator. The 0.39 sources compiled on my debian box with minimal hassle, and I'm quite happily using clones right now.
But what I'd really like : ) would be some way of storing the original source for a clone in a file. I use Illustrator / will use inkscrape almost exclusively to diagram the internal guts of digital systems, with lots of symbols for flip-flops and the like. Thus it would be great to have a system-wide "register.svg" file that I could use as a base for the clone objects. I'm somewhat familiar with SVG and XML, and realize that this might not be possible.
Has anyone else wanted this sort of feature, and if so, has there been any thought as to how to implement it? I'd be willing to try and hack on it (I've got some gtkmm background) if I wouldn't be stepping on anyones' toes ,and someone could point me in the right direction.
Thanks again for making such a spectacular piece of free software! ...Eric Jonas
But what I'd really like : ) would be some way of storing the original source for a clone in a file. I use Illustrator / will use inkscrape almost exclusively to diagram the internal guts of digital systems, with lots of symbols for flip-flops and the like. Thus it would be great to have a system-wide "register.svg" file that I could use as a base for the clone objects. I'm somewhat familiar with SVG and XML, and realize that this might not be possible.
This is relatively easy to do from SVG perspective. The hard part is creating a widget for such a symbol library. The widget must show a scrollable resizeable table with previews (generated on-the-fly, with settable sizes) and names, and should support folders and drag-n-drop. When we have such a widget we will use it for markers, patterns, gradients, masks, and symbols. In each case the widget will show both those items defined in the current document and the items from a library that comes with Inkscape, and you will be able to move document items to the library or delete library items.
If you know where we can borrow something like that for GTK (maybe somewhere in GIMP, I haven't searched much yet) that might help. Of course if you can code it from scratch that would help too :)
Right now we might implement a symbol library using menus with previews, similar to the marker menus in Fill&Stroke, but those menus are rather clunky. They also cause unpleasant delays because all previews must be generated before the menu can be opened.
This is relatively easy to do from SVG perspective. The hard part is creating a widget for such a symbol library. The widget must show a scrollable resizeable table with previews (generated on-the-fly, with settable sizes) and names, and should support folders and drag-n-drop. When we have such a widget we will use it for markers, patterns, gradients, masks, and symbols. In each case the widget will show both those items defined in the current document and the items from a library that comes with Inkscape, and you will be able to move document items to the library or delete library items.
This sounds doable (I didn't -really- want to work on my thesis this week) but I'm not entirely clear how the libraries would work, I guess. Would they be a valid SVG document where each top-level group represented an item ? I'm not sure which of the two options would work better (or even if they're both possible -- again, SVG newbie here):
1. Keep a copy of each library object used by a document in each document itself. Thus, the document will be editable, but you could (say) open a library and "update" the linked objects. Some of the EE CAD programs I've worked with (Like protel) behave this way. The nice thing is that you don't have to find / access the library to edit the lib object -- it essentially keeps a local copy. The downside is the explicit update step.
2. Keep the library files separate. This means that to view/edit a document, you'd need to be able to access the libray, and the document would have to know how to find the library.
My bias (does it show :) ?) towards option 1 arises from the way I generally keep everything in version control, with separate directories for libraries and subprojects -- it's nice to not require the developer to check out the entire project tree or force them to use a certain directory hierarchy. user
Then again, this could totally be my vision being clouded by the tools I've used previously, and I'm sure there are lots of other ways to do this. What do people think?
Again, inkscape is so spectacular, I never dreamed such a tool would exist as Free Software. Can I buy the developers a beer?
...Eric
Oh, and should we move this to the dev list instead?
This sounds doable (I didn't -really- want to work on my thesis this week) but I'm not entirely clear how the libraries would work, I guess. Would they be a valid SVG document where each top-level group represented an item ?
Not quite, each item in the library will be defined exactly as it is in a normal document, i.e. inside <defs>. Take a look at share/markers/markers.svg.
- Keep a copy of each library object used by a document in each
document itself.
Yes.
Thus, the document will be editable, but you could (say) open a library and "update" the linked objects.
Updating a symbol from the library is not implemented but can be done easily using inkscape:stock_id attribute for matching.
is that you don't have to find / access the library to edit the lib object -- it essentially keeps a local copy. The downside is the explicit update step.
Yes, and this is the only way to make SVG editable/viewable outside of your system.
- Keep the library files separate. This means that to view/edit a
document, you'd need to be able to access the libray, and the document would have to know how to find the library.
I'm not sure this option is workable with SVG.
exist as Free Software. Can I buy the developers a beer?
Sure, if you can catch us - we're scattered around the globe :)
On Mon, 21 Jun 2004, Eric Jonas wrote:
Hello! Inkscape is really spectacular, and may once and for all rid me of my chronic dependence on Illustrator. The 0.39 sources compiled on my debian box with minimal hassle, and I'm quite happily using clones right now.
Good to hear; note that the 0.39 sources are actually a pre-0.39 development copy, so keep your eyes out for bugs and report.
But what I'd really like : ) would be some way of storing the original source for a clone in a file. I use Illustrator / will use inkscrape almost exclusively to diagram the internal guts of digital systems, with lots of symbols for flip-flops and the like. Thus it would be great to have a system-wide "register.svg" file that I could use as a base for the clone objects. I'm somewhat familiar with SVG and XML, and realize that this might not be possible.
It definitely is feasible. For example, all of the stroke markers (aka arrowheads) are defined in /usr/local/share/inkscape/markers/markers.svg, and are 'use'd into the document.
The question is whether Inkscape currently supports use-between-documents, in a fashion that would allow linking to your digital_symbols.svg. If not, you could probably look at how the markers.svg is hooked in, and come up with a general purpose mechanism for symbols.
Has anyone else wanted this sort of feature, and if so, has there been any thought as to how to implement it? I'd be willing to try and hack on it (I've got some gtkmm background) if I wouldn't be stepping on anyones' toes ,and someone could point me in the right direction.
Yep, this is definitely a direction we've been aiming for. Nobody is working on this feature specifically, but there is some efforts in this general area (markers, gradients, patterns, etc.) So you will want to coordinate with folks on general approach, but you can also get some direction from those efforts.
Also, along these lines but from an orthogonal direction, we've got an open clipart project collecting this sort of content, that we package and deliver for use with Inkscape and other SVG-enabled tools. This is at http://openclipart.org/. Eventually, I'm hoping that Inkscape will be able to seamlessly load up things like symbol libraries, etc. from these packages.
Bryce
On Mon, 21 Jun 2004 19:36:01 -0700 (PDT), Bryce Harrington <bryce@...69...> wrote:
The question is whether Inkscape currently supports use-between-documents, in a fashion that would allow linking to your digital_symbols.svg. If not, you could probably look at how the markers.svg is hooked in, and come up with a general purpose mechanism for symbols.
No, use-across-documents is not needed, nor would it be feasible (the document would be unportable). Instead we have a function called get_stock_item which takes a stock_id and returns an instance of the corresponding object; if it does not yet exists in the current doc it will be imported from the library. This is used for markers now and will also be used for libraries of patterns, symbols, etc.
Quoth Eric Jonas on or about 2004-06-21:
But what I'd really like : ) would be some way of storing the original source for a clone in a file.
This may be a dumb idea, but why not make the PNG inclusion method work for SVGs? I was playing with this recently while trying to composite icons via a script, and I couldn't work out a way to simply say
<g transform="..."> <image source="....svg" /> </g>
I instead had to transcribe the whole file (except the <?xml> header).
Is this allowed in the spec? It seems a simple way to build complex images out of component sub-images.
-trent
participants (4)
-
Bryce Harrington
-
bulia byak
-
Eric Jonas
-
Trent Buck