[Plugin] Scale and Rotate Multiple (UPDATED Dec 22, 09)
-
Hi Tig and Thom. Sorry I still haven't updated it. I've got the code all worked out, just not put into place. The issue is 2 fold - 2 different bugs at play. TIG your trick helped the part that faceme's components bounding boxes (
bounds.center
) no longer return the center of the component. The return center of entire range of motion. Which is not helpful. So I used your tip to make the faceme into a regular component, then grad the centerpoint and then I have the point to scale about. So it helps find the scale about point which is otherwise impossible since v7.1.The dancing and jumping is another bug. You can no longer use ANY of the uniform scaling transformations on faceme components. It sort of cheats, and just adjusts the 16th matrix element. So the 16th should always be 1, but if you use (which I did) a uniform scaling method, it will change that 16th element to act as an overall scaling factor, which freaks out faceme's in 7.1.
So if you want fix it Thom, you would need to change the faceme scaling method. And I don't have the code in front of me, but it should scale by something like this:
sf = (the scale factor, as a float)
t = Geom::Transformation.new(sf,0,0,0,0,sf,0,0,0,0,sf,0,0,0,0,1)That should scale a component uniformly by aplying the scale over the entire matrix, and not just adjust the 16th element.
Or I'll try to fix this later today (but it might be well after midnight in your neck of the woods Thom).
Chris
PS - I know very little about transformation matrices. So I apologise if I used incorrect terms or theories
-
No worries. I'm home now - and only have one day left before I take Christmas holiday.
Though, in my tests for uniform scaling of a faceme component 2x, the 16th turned into 0.5 and 13-15 also halved their values.
-
Woohoo! Thanks to lots of persistence by others asking me nicely to get this one fixed, and thanks to finding the problems by Thom and Edson, and some great solutions by TIG, Jeff99, and others - I think I can finally say that this script is updated and working with SU 7.1!
Well, hopefully. Please test it when you get a chance. I tried every combination of faceme and regular component scaling I could think of.
v2.5 - SU 7.1 compatibility fix
- Fixed scaling so that Face Me components don't freak out like they have been doing since SU 7.1 was introduced. Big Thanks to Edson and Thom for helping figure out what was breaking.
- Cleaned up some code - a big chunk thanks to a tip from TIG!
So if you have this script installed already, go back to the first post in this thread, and re-download. Then overwrite the existing file in your plugins folder. Thanks, and I hope this works now!
Chris
-
brilliant! another Christmas Present! thanks a lot, Chris
-
Wow thanks man, you are very creative with your scripts, they are very useful and easy to use. Thanks!
-
Ah! Finally I can adjust the size of my forest without it flying away!
oh - one last request? Make it remember the values used last?
-
chris,
a big THANKS for fixing this bug! this plugin is used by me so much that it feels like recovering from a broken leg. i just tested it and everything seems to be back to normal. i'll let you know in case there is any odd behaviour as i use it more.
-
@thomthom said:
one last request? Make it remember the values used last?
-
Great plugin! saved me so much tree rotation. Thanks Chris!
@plot-paris said:
@thomthom said:
one last request? Make it remember the values used last?
-
thank youuuuuuuuuuuuuu !!!!
-
Hey Chris - great plugin. I was thinking it would be useful to add space between components before rotate.
For example on this stone wall
your tool did a great job of jumbling the stones but turn more than a little and they intersect their neighbor. In this case it would be useful to add a 'gap.'
I'm sure there is probably another plugin that does just this, and this test project is easy enough to move by hand, but figured I'd suggest it anyway.
-
Amazing thanks a lot! Brilliant plug in, just made the landscape look so much better with random trees
-
Cool, glad it helped!
@Bupaje - not sure I'll be incorporating that into the plugin soon. This really is only made to modify components in place. It would be hard to figure out how to "add spacing" since spacing in that sense is a linear movement.
However, I also think you could do what you wanted with the tool in its current state. Select the blocks and do a uniform scale only on the x axis. That will effectively add a space between the blocks. Then do it again and add some random rotation. See if that is about the same effect,
Chris
-
Excellent tool, I can see a ton of uses for it. Great idea!
-
Thanks Chris. will give it a try when I get home tonight.
EDIT: tried this during my lunch break and works. Scaled the bricks, then hiit reset scale and that left the spacing. Thanks.
-
Chris,
Thank you so much for an excellent program. I have trees as images to be exported as proxy's or instances for Kerkythea. Is there a way to random rotate images? Perjaps not if they are faceme objects which they are. Would like to know how others deal with this delima.
Lapx
-
If they are face-me's then they will always face the camera in SU. I don't know how kerkythea handles proxy's, does it work with face-me billboards? I think other renders just end up exporting the geometry in the location it is when the export buttin is pressed. So the trees would all be facing the same direction. I'm not really sure that rotating them with this plugin will help fix any of these concerns though.
-
Hello,
this is great plugin I am using every day. I think it would be much more powerfull if there was a possibility to scale randomly by all axis. One would be able to randomize e.g. stones or 3D vegetation.Is this possible to implement?
Thanks.
coulteri
-
Hello everyone,
CAN SOMEONE HELP ME LOAD THESE PLUG-INS.
THERE ARE SEVERAL with the .rb extension that my Pc does not recognize. -
@unknownuser said:
Hello everyone,
CAN SOMEONE HELP ME LOAD THESE PLUG-INS.
THERE ARE SEVERAL with the .rb extension that my Pc does not recognize.
Sounds like you don't understand how Plugins work at all ?
A .rb file is a text-file - often called a 'script'.
If you put it into your Plugins folder and restart Sketchup it will auto-load the tool for you.
The only time you need to 'open' a .rb file is to actually 'read' its contents - and if you are so inexperienced you don't really need to do that [just yet]! However, if you use Notepad.exe to open a .rb file you will find it's readable text [always use a plain-text editor - never use a wordprocessor as that will mess up the contents big time!]...In the case of this specific tool... it's quite a simple one - so the .rb file just goes into the Plugins folder and you restart Sketchup; and the Usage: says
@unknownuser said:
Select the components and/or groups to be scaled and/or rotated. Run the plugin at Plugins>Chris Fullmer Tools>Scale Multiple> . There are two plugins found here. One will scale everything equally. The other will scale them randomly based on minimum and maximum provided values. NOTE: The scale factors are not percentages. They are factors. Which means if you want to scale something to be twice as large, you enter 2. If you want something to be one half the size, enter .5 . Entering 50 will not a result that is 50% the original, but will give a result that is 50 times larger than the original.
There's only one .rb file for this tool called '
clf_scale_rotate_multiple.rb
' - you download it and put it into the 'Plugins' folder and restart Sketchup to activate the tool...
So what "other" .rb are you referring to in your post ?More generally... Read the installation instructions that come with each tool - on their download page.
Some are in zipped sets and need extracting / installing into the Plugins folder, keeping the files in any subfolders etc so they work properly.
Also ensure you know how the tool is used - e.g. Some are Extensions that need activating from Window > Preferences, some appear as menu items - typically under the 'Plugins' menu... BUT some can appear elsewhere [like 'Tools' or 'Draw'], some are context-menu specific [e.g. appearing only if you select a particular type of object], some have a toolbar activated from View > Toolbars, a few are run by typing a command into the Window > Ruby Console...
Advertisement