[Plugin] Components manager plugin
-
There are errors when:
-component name include special characters
-file path include special charactersFirst one generate javascript issue => should be easy to repair
Second one involve issue in ruby coding : harder to solve... But I found a solution on this forum : I will try to correct using it. -
Hello,
Just update the new version that solve special characters issue (thanks to a TIG script).
Other improvments :
Added: Number of instances are written in italic blue to make it different from definition name
Corrected : Bug when component or path have a special characters inside
Corrected : Move Win32API in BGSketchup folder not to interfer with other plugins
Corrected : Simplify reload definition script, avoid error when Group is selected
Corrected : add to_java function to format string to reach javascript standardPlease make trials in your models and tell me if it corrected issues you had.
I'm glad to see people happy of this function. May some of you push "Donate" button when it will be published, a little contribution to allow me buying a 3D printer (my dream).
Also, if some improvment are missing from your point of view, please tell me.
-
New version 1.6.0 :
Added : Window can be resize
Corrected : Avoid graphic issue when selecting different line in the list
Optimized : Simplify CSS file (removed un-used data)
Optimized : Buttons are now centered in window -
Excellent update, I'm going to test it and I'll try to say something later!
-
@jql said:
Excellent update, I'm going to test it and I'll try to say something later!
Some bugs actually... Selected lines are not highlighted. Color bug in list. List size error when uploading the list.
I will correct this tonight.
I will add a function to manage levels of components in file name ex:"toto ind 2.skp", to upload only last level. -
That level management is a very good idea for nested xrefs...
-
@jql said:
That level management is a very good idea for nested xrefs...
Yes ! It would be very useful for me !!
I already code the script to check if other files exist in a path with different level. (You will see, in version 1.7.0 in "options", that options are implemented but not active)So the idea will be, when updating a component definition from a file, to check if other file exist with the same "base" but with different level. Ex :
"c:\toto\drawing.skp"
"c:\toto\drawing ind2.skp"
"c:\toto\drawing ind3.skp"Then the plugins will update only the highest level : "c:\toto\drawing ind3.skp"
Therfore, you will be able to keep history of your component by saving it in a different level each time you modify it !Of course the level idenitificator (" ind" here) will be changeable in options).
Also, this options can be activable or not in options too.Just pending for me to implement the script at correct places and that's it !
I hope to complete this by Thursday (yes, tomorrow start the sales in France...and my TV is broken down...sniff )
So version 1.8.0 will have this useful function ! Just wait a bit...New version update (1.7.0) , with following changes :
Added : New red color to distinguish file newer than definition with file older than definition
Added : New option to choose if the brightest red color means file newer or older than definition
Added : Add refresh time in window bottom when updating the list
Corrected : Number of component instances in a branch was wrong
Corrected : Restore highlightning of selected item (come back to previous script...)
Corrected : Number of instance in same style that item to avoid double item selection error
Corrected : Avoid to have unlinked components text in the same color than previous list item (CSS)
Corrected : Options were still saved in model (even if not used) -
Oh I see now! What you mean by levels is revisions.
So if you save a lot of revisions or versions of the same component the latest version will be the one the plugin finds to reload. Though that is not what I thought it is, it is useful indeed!
Best regards,
JQL
-
does this script work on mac version? thx
-
@greatoe said:
does this script work on mac version? thx
Hello Greatoe,
not sure it work on Mac, as I don't have one, as system is different...Maybe the best is to try and tell me if it's works...
I will try later to understand how Mac file system works and update, if required.JQL, what yours thoughts were exactly ? Maybe I can implement !
-
I thought you where refering to nesting levels inside Xrefed components.
Just to clarify, even if I'm sure you're familiar with the concept of Xref there might be someone else not familiar with it. A Xref is a .skp file that has been referenced as a component inside a model (TIG is also able to reference .dwg files with his Xref Manager plugin but that's not the scope of your plugin).
So imagine a model of an house that has 2 floors:
- The house might be a component that you can "save as" to a file, Xrefing it.
- But inside the house there might be many other components like the 2 floors, kitchen, bathrooms, closets, etc...
- All of those components might be Xrefed too so you get a lot of Xrefs with other xrefs inside. This can be called nested Xrefs
- With your plugin it's very easy to "reload" or "save as" multiple components at the same time;
- It's also easy to choose specific components to "reload" or "save as" and it tells wich ones need to be updated, wich is excellent;
- What I thought you were talking about was the ability to auto update only the components that were more deeply nested inside other components that needed an update, without having to update all components above.
Example:
- Inside house component there's 1st floor component;
- Inside 1st floor there's the kitchen component;
- Inside kitchen there's a counter with a sink component;
- All of this components are xrefed;
- You changed the sink component in the file and all of this nested Xrefs are outdated;
- If your plugin would be able to automatically detect that the sink component was the only component interfering with this "outdate" status, and would be able to update all only by reloading the sink component, this would be a wonderful time saver.
That was what I was thinking of, but it might be a bit complex.
Best regards and thanks again,
JQL
-
Hello,
Thank you for explainations. (I'm not familiar with Xrefs)
Change wouldn't be so long, actually the plugins always upload file, even if the definition is update to date, so just by check before that file date = definition date, then issue is solved.
Also, I was thinking that plugin is also purging all definitions each time it upload a definition : this cost a lot of time too. I will also change this to purge only and updating end.
Also I will add these options :
- Avoid the window to open each time you open Sketchup (in case you don't want to use it)
- Add toolbar to quickly open/hide window
- To avoid list updating when model is openned, in order the model to load faster (in case of big file), may be just refresh component names, but not check files dates.
I'll try to implement this for version 1.8.0
Planned updates for version 2.0.0 (you can let me know you wishes) :
- Options in Html form (for better look)
- Add a model/component history text input, to allow writing your model improvments and components improvments.
The idea would be to have an host window which can accept different sub-windows from different plugins. Each plugin could be loaded separately but when you have installed the host window (host plugin), every other plugins (made by me, of course) will fit in the same window (you would be able to change from one to the other by clicking an icon). Then it keep clear your workspace !
So additionnal function like "model/component history" still stay in the same window.
Good idea, no ? -
Hello,
new TV bought ! ;o)
Just update version 1.8.0, with following improvments :
Added : Revision level management option added !
Added : Option to start or not automatically the manager (default=no)
Added : Option to refresh or not the list when start automatically the manager (default=yes)
Optimized : The return of the update progress in Sketchup state bar !
Optimized : In all definitions reload, component definition are reloaded, from file, only if different from model definition.
Optimized : Simplify refreshing date display script -
@inteloide said:
@greatoe said:
does this script work on mac version? thx
Hello Greatoe,
not sure it work on Mac, as I don't have one, as system is different...Maybe the best is to try and tell me if it's works...
I will try later to understand how Mac file system works and update, if required.JQL, what yours thoughts were exactly ? Maybe I can implement !
Hi inteloide,
No the script does not work on a Mac.
After install, as an extension or unzip, no error message, but also no menu.
Then after a restart of Sketchup, the following error window shows.
-
@inteloide said:
Change wouldn't be so long, actually the plugins always upload file, even if the definition is update to date, so just by check before that file date = definition date, then issue is solved.
I don't really understand what you mean by this...
Also, when you refer to upload you mean saving to file (on sketchup it's called "save as" on the context menu) or getting the definition updated from file into model (wich is called "reload" in component context menu).
In the previous context "upload" looks like "save as" but in this next context "upload" seems to be "reload".
@inteloide said:
Also, I was thinking that plugin is also purging all definitions each time it upload a definition : this cost a lot of time too. I will also change this to purge only and updating end.
@inteloide said:
- Add a model/component history text input, to allow writing your model improvments and components improvments.
If it is very simple to add those notes and simple to read them, it could be useful.
@inteloide said:
The idea would be to have an host window which can accept different sub-windows from different plugins. Each plugin could be loaded separately but when you have installed the host window (host plugin), every other plugins (made by me, of course) will fit in the same window (you would be able to change from one to the other by clicking an icon). Then it keep clear your workspace !
So additionnal function like "model/component history" still stay in the same window.
Good idea, no ?Yes it's a good idea if all plugins share related objectives, otherwise, it might be confusing to have a window that has two completely different uses. It's not very Sketchup like.
@inteloide said:
Just update version 1.8.0, with following improvments :
Added : Revision level management option added !
Added : Option to start or not automatically the manager (default=no)
Added : Option to refresh or not the list when start automatically the manager (default=yes)
Optimized : The return of the update progress in Sketchup state bar !
Optimized : In all definitions reload, component definition are reloaded, from file, only if different from model definition.
Optimized : Simplify refreshing date display scriptI'll try to implement this for version 1.8.0
Seems to be a nice update... Thanks!
JQL
-
I have some little feature requests for you to consider:
1 - Would it be possible to find a component in the list by clicking it in the model? Just like outliner...
2 - Would it be possible to change component's names directly on the list?
3 - Would it be hard to double click or click an icon on the list and the file/component that is selected would open in a new Sketchup session for editing and then reload when saved, like editing a texture in external image editor? (there's a plugin that does this already but breaks file path association. It's called Component Edit Window.)
4 - Would it be possible to creat filters on the list that would only show updated components or outdated or components that were associated with a file or whatever other options you have. Tick on a box and you only see green icons, tick other box and you only see blue, click on both and you see both icons on the list.I hope you find this interesting, thanks and best regards,
JQL
-
@greatoe said:
Then after a restart of Sketchup, the following error window shows.
Hello Greatoe,
Just post version 1.8.1 which should correct the message you had.
After that...mistery... ;o)
Please send me further errors (you can start ruby console in parrallel to see any error you may have).About version 1.8.1 version, few modifications actually :
Corrected : Add option for MAC user, should help tp start the plugin, pay attention when saving files.
Optimized : Simplify access to tool through Plugins menu -
JQL, first thank you for your ideas
To answer you :
1 - Yes, it's not easy to find in the list a definition name, but... I'll try
2 - Yes, good simple idea ! I vote for ;o)
3 - Good idea again, should not be so complex.
4 - Humm...some programming hours below that...I'll tryAlso, more traduction could be add if users help me to translate (all texts are in Plugins\BGSketchup\Composants\Rb\Localization.rb)
Inteloide
-
I can help you with Portuguese translation:
Here is the file: I also took the chance to checke the English translation and made some changes that you should only consider as suggestions for a more intuitive aproach to your plugin if you think they're worse, please disregard them. (I think I didn't mess with code or the spaces you had).
The main suggestion on translation are as follows:
1 - I believe most sketchup users have no idea of what are definitions but (almost) everyone knows about components so I replaced "definitions" with "components" on all strings.
2 - I simplified some strings to make them similar to usual english strings in most software. The less words the best people understand them immediately.I hope this helps and thanks for all your hard work.
JQL
EDIT: Sorry forgot the file, here it is saved as UTF-8 without BOM:
-
Hi JQL,
Thanks for English and Portuguese translation. Your English is definitevely better than mine !! It's true that I used words that may not be easy to understand for somebody else than ...me, I should correct my French translation too ! hΓ© hΓ© ;o)
About your proposal, I implented (using Jquery javascript) a right click function, with actions like save, upload, edit. Edit open a new Sketchup instance openning the component definition. I can make sketchup to wait the new sketchup window to close (to know if component was modified), but the old window looks freeze until new window is not close... Maybe an option could be good for user to decide not to freeze the sketchup window which start the new sketchup window.
Thank you for your support.
Advertisement