Dynamic Block Help

Dynamic Block Help

jswisshelm
Contributor Contributor
2,298 Views
6 Replies
Message 1 of 7

Dynamic Block Help

jswisshelm
Contributor
Contributor

Steps 1-3 are just showing how the shape was made. I am looking for the simplest way to create a dynamic block that allows me to adjust the height (shown in green) while keeping some of the geometry (shown in red) fixed. By adjusting the height, the rest of the geometry (shown in magenta) will change. Any help would be greatly appreciated. I tried messing around with different parametric constraints and dynamic actions but always had at least one of my intended "fixed" restraints breaking.

0 Likes
Replies (6)
Message 2 of 7

Libbya
Mentor
Mentor

The simplest way is to use a linear parameter placed vertically, then associate two stretch actions with the top point and for their selection window to appropriately surround the corners that need to be stretched and select the linework that needs to move upward.  After the actions are added select one of them and go to properties to appropriately alter the angle offset and distance multiplier.  Do the same for the second stretch action.  That's all there is to it.  IMO adding any constraints would be a mistake.

0 Likes
Message 3 of 7

jswisshelm
Contributor
Contributor

I am not sure I am following. When I try this I am unable to keep the angle (88 degrees) from shrinking as I try and reduce the 1'-2" dimension. How can I stretch the top vertical line vertically while allowing it to expand horizontally (equally on both sides) while still attaching the 1/8" radius on each end? Attached is the updated file with my block attempt on the bottom row.

0 Likes
Message 4 of 7

Libbya
Mentor
Mentor
Accepted solution

You did not place the stretch selection windows appropriately and you did not adjust the angle offsets or the distance multipliers appropriately.  The stretch windows should each surround one of the two corners, not both (that's why you need two stretch actions).

 

The angle offset should be obvious.  2° for one of them and -2° for the other.

 

The distance multipliers are less intuitive.  Basically the distance multiplier defines the distance stretched per each unit that the grip is stretched.  Because the stretch is at an angle, the distance the corner needs to move for the horizontal line to match the parameter to grip movement is greater than 1.  I like to find the value by drawing a simple right triangle and then measuring the hypotenuse.  In this case the grip movement is vertical and so the vertical line of the right triangle would be 1 to match 1 unit of movement of the grip. draw a horizontal line from the top of the 1 unit vertical line you drew.  Next, from the starting point draw a line at the 88° angle.  Where that 88° line and the horizontal line intersect finishes defining the right triangle.  The  length of the hypotenuse (88° line) is the necessary distance multiplier value.  

 

Let me know if you need me to explain any of that more thoroughly.

0 Likes
Message 5 of 7

jswisshelm
Contributor
Contributor

That was helpful thank you. This has definitely gotten me the closest yet. I know I'm splitting hairs here but using that method is still slightly altering the angle (see attached image). I am guessing it is due to how AutoCAD is rounding the distance multiplier? Is there a way to get around this?

 

The new block is stacked on top of the example on the bottom right as shown in "..._TEST2.png".

0 Likes
Message 6 of 7

jswisshelm
Contributor
Contributor

Realized I wasn't using an expression for the angle and that threw it off. Thanks for the help @Libbya!

0 Likes
Message 7 of 7

Libbya
Mentor
Mentor

The issue is that you did not draw your examples with accurate 88° angles.  They are drawn at 87.95459151°.

0 Likes