Toolbox A2. Friendly interface for many plugins.
-
Hi guys!
I use really lots of plugins, but once I tired to operate them. I often forgot where to find the right tool, among heaps of panels.
So I made a toolbox with a structured user interface for the quick access.
I did it for myself, and now I want to share it with people. However, there is one problem. I do not know how you guys treat this. It may be necessary to agree on distribution rights for plug-ins.
Now I`m trying to mention everyone whose code I use, but is it enough? I do not very well understand in the intricacies of the free software:-)
So I need your advice.
-
Whoaa... what the hell is this? Looks like you made a great thing here!
-
How many listed ?
-
-
I could not get anything done in anything close to a profitable schedule without the incredible extensions so generously provide by the members of this forum. But I have the same problem.
Part of it is due to my often needing only one or two out of a whole string, so the others spend their time cluttering up the screen. The other part is trying to fine the one I know exists, but can't remember where.
I've solved a fairly significant part of the problem with my P.I. Engineering X-Keys with 60 programmable keys where I can group like-functions together.
That said, I heartily agree with:
@dem said:
I use really lots of plugins, but once I tried to operate them,I often forgot where to find the right tool, among heaps of panels.
So I truly hope you can work out the politics because it looks like you've created winner of an idea.
-
@dem said:
However, there is one problem. I do not know how you guys treat this. It may be necessary to agree on distribution rights for plug-ins.
Now I`m trying to mention everyone whose code I use, but is it enough? I do not very well understand in the intricacies of the free software:-)Hi Dem
Free to use doesn't mean free to distribute. Unless the extension include explicit statement that it's ok to distribute you need to contact each developer and ask for permissions.Personally I prefer not to have my extension distributed by anyone else. The reason for this is that it takes away my ability to quickly deploy updates. If I need to deploy a serious bug fix it's not good if there is another source which is out of date. That means bugged software remain alive for longer and that create more support burden on the developers as people don't realize they are not using the latest version.
However, for these types of organisational tools there is an alternative approach. Instead of embedding other third party extensions inside yours you can dynamically detect the extensions you support and add the appropriate UI if the user have installed that extension. The benefit here leaves the user better equip to install only the extension set he/she users - keeping the system lean and mean. This also address the problem of distribution, you don't have to worry about permissions because you don't bundle anyone else's code. It also allows extensions manager like Extension Warehouse and Plugin Store to update individual extensions as updates are pushed without you having to update your own. (Otherwise you'd have a massive maintenance burden.)
-
Fully agree with Thomthom here, but I was under the impression that this was only an "organizer" and would not "embed" the full extensions within wich as users poses also a lot of questions.
-
Waiting for such a tool to handle my Plugins. As thomthom suggested it was nice
to find another way, that lets user decide which Plugins can be emmbedded. So good luck and I hope you get it -
Apart from licensing questions, if you embed (properly namespaced) other plugins, you would be responsible to merge in every change of that other plugin, package a new version of your plugin and distribute it. I doubt tat effort of maintenance is feasible over longer time.
Take a look at existing UI plugins, they detect the availability of other (not embedded) plugins and allow to launch them. There are two starting points:
- You can either detect individual
UI::Command
objects inObjectSpace
. A "command" is a wrapper around one of a plugin's functions with metadata like icon and name.
- Or you can iterate SketchUp's extensions manager and check which extensions are registered. Some plugins may maintain a stable module names/methods to invoque their functionality.
I would enjoy if the plugin dev community would agree on a "standard" pattern to make their plugins' features detectable and callable through code, eg. for node editors etc.
You could then dynamically build your UI through code, or just hide the features the user has not installed.
Or if you want to avoid too much work, just present the user a list of what plugins he/she needs to install together with your plugin.
- You can either detect individual
-
@jql said:
Fully agree with Thomthom here, but I was under the impression that this was only an "organizer" and would not "embed" the full extensions within wich as users poses also a lot of questions.
This line seemed to be to indicate it was embedding:
@dem said:
It may be necessary to agree on distribution rights for plug-ins.
-
@thomthom said:
This line seemed to be to indicate it was embedding:
@dem said:
It may be necessary to agree on distribution rights for plug-ins.
That did cross my mind but I didn't think anyone would try such a thing as to redistribute plugins for their authors. So I immeditally thought it was only a matter of politeness and respect...
-
first...i´m not a Ruby-Dev
your idea follow the same concept like cinema4d.
realy good your implemetation. i have ever search this what i see, since Sketchup 5.
we have developer (Dev´s) here, TIG, Fredo6 and ThomThom, 3 of the big 10th or big 20th.
if you look in the Pluginstore here, or in the SketchupExtensionWarehouse...how many plugins the Devs have written.
however, keep in mind, that one Dev can not answer for an other. You can only ask for the rules.
some Dev´s have some times a bigger delay time to answer.
Some Dev´s look in your ruby code...how clean is the code.
Some Plugins, Tools or Extensions have find the way to "Plugins Quarantine". The List was longer before. this said.. the owner of the Plugin have clean up the code..or some Plugins was "died".
your plugin is a good implementation.. i wish good look for your plugin.
Is your textfile only an information?
on concept... add your favorite plugins with textfile would be cool.
or an folder inside your plugin structure need only a shortcuts to the "xyz.rb".. in the pluginfolder etc.
can the end-user change this by self?
Edit:
here a video tutorial to change the pallets etc in Cinema4dthis concept is the best i have seen ever. this is an inspiration.
https://www.youtube.com/watch?v=YnUgDraUD7EDean
-
@jql said:
@thomthom said:
This line seemed to be to indicate it was embedding:
@dem said:
It may be necessary to agree on distribution rights for plug-ins.
That did cross my mind but I didn't think anyone would try such a thing as to redistribute plugins for their authors.
There's been a few cases of this already - some initiated that without asking the authors first as well. "Plugin Bundles" pop up now and then. Intentions are usually good - but in the long run it's a big support burden.
-
then what about this text included in the lines of code?
"Permission to use, copy, modify, and distribute this software for
any purpose and without fee is hereby granted, provided that the above
copyright notice appear in all copies"? -
@glro said:
then what about this text included in the lines of code?
"Permission to use, copy, modify, and distribute this software for
any purpose and without fee is hereby granted, provided that the above
copyright notice appear in all copies"?that basically allows you to copy, modify, distribute your own version of a script...
but, you should only do so if you can also maintain it without burdening the original author with problems...
john -
@driven said:
@glro said:
then what about this text included in the lines of code?
"Permission to use, copy, modify, and distribute this software for
any purpose and without fee is hereby granted, provided that the above
copyright notice appear in all copies"?that basically allows you to copy, modify, distribute your own version of a script...
but, you should only do so if you can also maintain it without burdening the original author with problems...
johnOK, i understand
and this text: "Copyright 2009, ...All Rights Reserved"
doesn't allow you to copy, modify, nor distribute your own version of a script, i supposeso there is no question:
if the plugins included in the toolbox don't have copyright
dem should be able to maintain if asked, since he wrote this toolbox pluginor is there another limitation?
-
@glro said:
if the plugins included in the toolbox don't have copyright
this ones different, if they don't have copyright [at all] it's interpreted as all rights reserved in European Union law...
they need to give their copyright away to be completely safe...
for example, if I wrote 3 plugins, with 3 versions of copyright, 1: none, 2: give-away, 3: reserved...
if Trimble used all three, I could pursue them for 1 and 3 but not 2@unknownuser said:
dem should be able to maintain if asked, since he wrote this toolbox plugin
that requires knowing how they all work, big job...
@unknownuser said:
or is there another limitation?
some people will install the 'original' + the 'Toolbar version' and maybe even a third, different 'Toolbar Version'
unless these are all rewritten to separate them then it can cause very hard to find bugs...
most will complain to the original author...
john -
@driven said:
@glro said:
if the plugins included in the toolbox don't have copyright
this ones different, if they don't have copyright [at all] it's interpreted as all rights reserved in European Union law...
they need to give their copyright away to be completely safe...
for example, if I wrote 3 plugins, with 3 versions of copyright, 1: none, 2: give-away, 3: reserved...
if Trimble used all three, I could pursue them for 1 and 3 but not 2@unknownuser said:
dem should be able to maintain if asked, since he wrote this toolbox plugin
that requires knowing how they all work, big job...
@unknownuser said:
or is there another limitation?
some people will install the 'original' + the 'Toolbar version' and maybe even a third, different 'Toolbar Version'
unless these are all rewritten to separate them then it can cause very hard to find bugs...
most will complain to the original author...
johnthank you for taking the time to explain
so no mention of copyright is the same as a mention of copyright, in EU... good to know
so as i understand, unless it is clearly mentioned by a line at the beginning of the code, you should not distribute plugins
-
Dem
My plugins and many plugins posted in SCF have a Free usage but require the consent of the author for redistribution. Here is the header in the source code of my scripts:
# Permission to use this software for any purpose and without fee is hereby granted # Distribution of this software for commercial purpose is subject to; # - the expressed, written consent of the author # - the inclusion of the present copyright notice in all copies.
Anyway, for your toolbar, the real issue for me would be that you embed the scripts, mainly for the issue of maintenance highlighted by thomthom. It is better than there is one source for the plugins and that your toolbar just refer to the commands.
I would suggest that you display all icons as you designed it, but for plugins which are not present on the user computer, you display a message:
- either indicating that installation is required
- or proposing to install it, which you can do with the API to the SCF plugin store.
With this approach, you let the user decide while being informed, and he can take care of the upgrades of each plugin when required.
I will publish progressively a simple API to my plugins as some are not obvious to be launched from another script.
Fredo
-
Even if there is no explicit copyright notice the content cannot be freely distributed. The author/creator is still the lawful owner of the product. One isn't required to explicitly claim copyright as this is automatic - implicit.
Advertisement