Community
Dynamic Blocks Forum
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Simple Stretch with Distance Multiplier Problem

9 REPLIES 9
SOLVED
Reply
Message 1 of 10
graphtype
1889 Views, 9 Replies

Simple Stretch with Distance Multiplier Problem

Hi there!

 

I have a simple block which I want to make have a vertical exaggeration of 10x whatever distance I set as the distance parameter. For example, if I put in a distance of 2 for my distance attribute, the block should have a depth of 20. 

 

I added a linear parameter with a stretch action that has a 10x distance multiplier.

 

The problem is that my block ends up stretching to (distance-1)x10+1 depth instead of 10x depth like I want.

So at a distance of 4, my block ends up being a depth of 31 instead of 40 and I can't seem to figure out why.

 

Any help would be greatly appreciated! (Block attached). 

 

Thanks,

--Lawrence.
9 REPLIES 9
Message 2 of 10
steven-g
in reply to: graphtype

It does make sense, sort of, you start with a block that is 1 unit long and you stretch it to 2 units, but you are only stretching it 1 unit further, and it is that 1 unit that gets multiplied by 10 (so 10+1). The original part 1 unit long isn't altered. Try the attached version, the original is 10 units and the action only works on the last bit.

 

 

Message 3 of 10
graphtype
in reply to: steven-g

Thanks for the reply! This is what I'm looking for. I understand your explanation of how my block worked out that way, but I'm having a bit of trouble understanding how your block works for that. Now that it's 10 units, but the stretch distance only applies to 1 unit, wouldn't it be something like 10*1for the stretch +9 for the rest of the block to = 19? I probably misunderstand how the stretch applies to the block? Thanks again!

--Lawrence.
Message 4 of 10
Libbya
in reply to: graphtype

The stretch doesn't 'apply' to 1 unit, the stretch applies to the vertices or objects within the stretch window and with the distance multiplier of 10, it stretches them 10 units for every 1 unit the parameter is moved. The same stretch would apply even if the window enclosed 9.999 units of the linework.  

 

The linework in the updated block is initially 10 and the parameter is initially 1.  If the parameter is stretched 1unit with a distance multiplier of 10, then the linework is stretched 10 units.  Your initial issue is that your parameter and linework did not start with the 1:10 ratio and so it was off.  The updated block does start with that ratio and so it works.  

Message 5 of 10
graphtype
in reply to: Libbya

Great explanation! Thanks! 

--Lawrence.
Message 6 of 10
graphtype
in reply to: graphtype

I now have a slightly more complicated block where a part of the block height needs to be 10x exaggeration of a difference in heights.

 

I have a ground surface distance (meters above sea level.. let's say 800m) which I input, and then a Casing Height which I input (also measured in masl, let's say 800.5). I'd like my actual casing height to automatically adjust to 5m based on these distance parameters.(800.5-800=0.5;0.5*10=5m)

 

I created 2 distance parameters, a ground surface distance parameter which stretches the casing height parameter down to simulate sea level, and then my Casing height parameter stretches my casing. This works, except that my casing becomes a height of 10 (original height)+5, instead of just having a height of 5. How do I go about making my casing height the difference only?

 

Sorry for the bad explanation, block attached!

--Lawrence.
Message 7 of 10
Libbya
in reply to: graphtype

Your description/explanation was very confusing but I believe that the attached file gives the relationships you require.  You will have to adapt the concept to your needs.  Distance A and Distance B have grips and you can input their respective values.  Distance 'Diff' is always going to be the difference between them.  Distance '10X Diff' will always be 10X the difference between A and B.

 

 

Message 8 of 10
Libbya
in reply to: Libbya

I believe that the attached file is what you are looking for.  Once the values for 'Ground-Surface' and 'Casing-Height' are entered, the difference is shown as the upper cyan line and the height is 10X the units of the difference.  If the Casing-height is a larger number than the Ground-Surface, then the height is positive.  If it is smaller, the height is negative.  The dimension is added just as an easy visual check that it is working. 

Message 9 of 10
graphtype
in reply to: Libbya

Awesome! Thanks so much! That's exactly what I'm looking for but kept running in circles. with how to get it done. 

 

Thanks for all the help. 

--Lawrence.
Message 10 of 10
Libbya
in reply to: graphtype

Here's an explanation of the workings of the block.  The 'ground-surface' parameter operates a stretch action to move the bottom of the 'difference' parameter.  The 'casing-height' parameter operates a stretch action that moves the top of the 'difference'.  Because of this, the 'difference' parameter will always equal the difference between the 'ground-surface' and 'casing-height'.  The 'difference' parameter is chained so when it is stretched, any action that is associated with the stretched point is executed.  There are two actions associated with the 'difference' parameter.  The 'stretch 10x top' action is associated with the top point (which is moved by casing-height) with a distance multiplier of 10x.  The action's stretch window is around the top of the cyan linework.  The other action, 'stretch 10x bottom 180', is associated with the bottom point (moved by ground-durface) and similarly has a distance multiplier of 10X.  Its window also surrounds the top of the cyan linework.  It additionally has an 'angle offset' of 180 degrees.  The result is that when ground surface moves down (increasing the length of 'difference), the cyan linework is stretched up so that it also increases.  

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

”Boost

 

”Tips

 

”Services