[Plugin] RandomPushPull v2.5 20110709
-
Correct
-
Here's v2.1 http://forums.sketchucation.com/viewtopic.php?p=340452#p340452
It now uses the min/max range 'properly'... AND if the random value is actually ==min or ==max then it is used; the accuracy for using the actual max value is set at 1/1000001. On the incredibly rare times it matches exactly or it is exceeded very slightly then 'max' is used, as is 'min' when it's met exactly [rarely]. -
Maybe you could add option in input box for push-pulling on negative values too, or force positive.
EDIT: - i'm not sure (as I'm not a programmer), but this code doesn't pushpull between min and max.
mx
can have values much less than@ppmin
, sopp
can have very easy a negative value (ifrn
=10,mx
=@ppmax
* 0.0001; so what are the odds that between max and min to be a difference of 4 zeroes? In consequencepp
=mx
(very small) -@ppmin
(highly probable much larger) ==> negative value for pp ).rn=rand(1000001) if rn!=0 mx=@ppmax*(rn/1000000.0) if mx > @ppmax mx=@ppmax end else mx=0 end pp=mx-@ppmin face.pushpull(pp) if pp!=0
-
Here's v2.2 http://forums.sketchucation.com/viewtopic.php?p=340452#p340452
I think I've sorted the range AND allowed negative values too... -
@tig said:
Here's v2.2 http://forums.sketchucation.com/viewtopic.php?p=340452#p340452
I think I've sorted the range AND allowed negative values too...I'm not sure what you are trying to do there, but wouldn't be easier to force the pp value in v.2.1 to .abs? And...it still doesn't limit between max/min
-
Here's v2.3 http://forums.sketchucation.com/viewtopic.php?p=340452#p340452
It now works properly between the max/min range and allows +/-ve values...
I hope! -
Well, good news! It works like a charm
Thank you very much! -
My brain really hurt with the logic of it... but now it's too obvious
-
@tig said:
My brain really hurt with the logic of it... but now it's too obvious
My brain hurt too trying to "discover" the reason why you tried such complicated ways to do it. Especially because my programming skills are like the result of
rand
method (yes, between 0 and almost 1 ) and I try to learn something from what you do. -
So it was a true random result!
-
Always funny and robust!
re-apply on result with the all faces (top and lateral)
result is not too regular? (I took 1 and .1)Does it possible to keep the first selection? (top faces)
-
Unfortunately when you PushPull a face it disappears - the face that is at the new location isn't the same face - that's been deleted by Sketchup...
So... it's not easy to get a reference to the new face...
BUT you could do it... you know the plane of the picked face, you know its pt0=vertices[0].position, you know the pushpull vector, so you can offset the pt0 and then test for the new faces added since the pushpull was done and find the one with the same/reversed normal, parallel plane and coincident vertex at the offset pt0 location...
BUT I'm not going to code it
-
In this particular case same "top square"
I can use the Selected by aera by Sdmitch -
Except there might be faces with the same area that were not the ones you want - so then things like face.normal / plane becomes relevant too - BUT comparing areas IS a good 'outside-of-the-box' test idea
-
@unknownuser said:
Except there might be faces with the same area that were not the ones you want
As I had started from a sphere and took a minimum measure more large than the big edges on the surface's sphere
that can't be arrived
It was a very particular case -
Here's v2.4 http://forums.sketchucation.com/viewtopic.php?p=340452#p340452
The selection now passes to the newly pushpulled faces even though the original faces have been deleted by Sketchup... -
Seems selection are not keeping all the initial faces selected!
(tryed with some adjacents facets on a thick sphere )Does exist a Scale multiple ? (for each facets selected)
-
As I explained, the original face is lost with a pushpull so I need to find the equivalent new face... At the moment it matches area, face normal and face plane [offset by the pushpull distance] - even the slightest variance in the figures that Sketchup calculates will result in a mismatch - so I suspect that's why some faces are being ignored
Any ideas on a better way to spot newly pushpulled faces is invited... -
you can add a random move tool?
-
@tig said:
As I explained, the original face is lost with a pushpull so I need to find the equivalent new face... At the moment it matches area, face normal and face plane [offset by the pushpull distance] - even the slightest variance in the figures that Sketchup calculates will result in a mismatch - so I suspect that's why some faces are being ignored
Any ideas on a better way to spot newly pushpulled faces is invited...TIG,
Seems to work 100%, if you account for the tiny area difference of the new face. In line #64, I used "if face.area-e[0].abs < 0.000001" instead of "if face.area==e[0]".
Well, at least this worked on a 7 inch diameter sphere. Don't know if it will fail for other scales.
[Addition]
Ok, I had a chance to check if scaling would make the new area test fail. Looks ok so far. My sphere had 288 faces. Initially 7 inches in diameter. I've scaled it up to 70, 700, and 7000 inch diameter. And even with the larger areas, 0.000001 difference still worked to compare if the faces have the same area. The plugin still kept the selection on all 288 faces, in all the tests.
Advertisement