dynamic set angle between lines

dynamic set angle between lines

Anonymous
Not applicable
3,997 Views
17 Replies
Message 1 of 18

dynamic set angle between lines

Anonymous
Not applicable

I want to create a dynamic block where I can independently specify the angle between lines and adjust their length as well. I don't really care about the angle relative to the X or Y axis, just between the lines. And I want to rotate the lines together about their apparent intersection / common base point.

I've searched this forum but haven't found an answer.

Any suggestions?

0 Likes
Accepted solutions (3)
3,998 Views
17 Replies
Replies (17)
Message 2 of 18

Libbya
Mentor
Mentor
Accepted solution

The right rotate grip rotates both, the left grip changes the angle between them.  Two linear parameters with two scale actions each (one dependent and one independent for the other line/parameter) accomplish the line length change.  See attached.

Message 3 of 18

Anonymous
Not applicable

Thank you Libbya. I can use this concept for more tha one application. Clean and simple.

0 Likes
Message 4 of 18

Anonymous
Not applicable

Libbya, One more thing.

Can the anglular dimension arc be established at the associated line endpoints and made to move as line length is adjusted?

i.e. the arc follows as the line length changes.

 

0 Likes
Message 5 of 18

Libbya
Mentor
Mentor
Accepted solution

Like this?

Message 6 of 18

Anonymous
Not applicable

Perfect!

Thanks

0 Likes
Message 7 of 18

Anonymous
Not applicable

Libbya, I wish to add a hatch pattern, between the changeable lines and the the arcs at either end points, to vary along with the other elements. Seems that the last parameter/action modification you made would do the trick, if I could just add the hatch object to that selection set.

Is there a way to do that?

Would it work?

I've been studying your results and searching online but haven't discovered an answer. As much as I appreciate your quick and clean solutions, I'd really like to understand how all this works so I could do it myself. Thanks for your time and talent.

0 Likes
Message 8 of 18

Libbya
Mentor
Mentor

It's not exactly straightforward, because the dimension arc is not an appropriate hatch boundary.  By using construction lines and a circle of the same base/radius as the dim it works.  See attached.

0 Likes
Message 9 of 18

Libbya
Mentor
Mentor

Heres a more in-depth description of how this block works.  It is somewhat hard to explain.  Angle2 Parameter has Rotate1 associated with it.  Rotate1 rotates the two lines, the two construction lines, the three linear parameters, the two independent scale actions and the position1 point parameter.  Angle 3 is between the two lines and rotates the left line, the linear parameter that is with it (Distance1), and the construction line on the left.  The dim is associated with the lines so it automatically updates.  Distance1 has two scale actions associated with it.  'Scale' scales the left line.  Scale1 is independent with its base point moved to the bottom of the right line.  Scale1 scales the right line, the Distance2 parameter and the Position1 point parameter.  The Position1 point parameter is chained and has one stretch action associated with it which stretches the Distance3 parameter.  The Distance3 parameter is also chained and has one scale action associated with it.  That scale action (Scale4) scales the dimension, the construction circle and the two construction lines.  Distance2 has two scale actions associated with it.  Scale2 scales the right line and the Position1 point parameter.  Scale3 is independent with its base point moved to the bottom of the left line.  Scale3 scales the left line and the Distance1 parameter.  The hatch is associative and so it self-updates as the boundaries (construction lines, construction circle and the arc at the top of the base) are moved.  

 

The right rotate rotates almost everything except the two arcs that form the base.  The left rotate grip rotates only the left side items which includes the scale action that scales that left line.  The dim needs to scale from its base point as do the construction lines and circle.  To accomplish this, there needs to be a parameter that is the length of the distance from dim basepoint to dim arc (Distance3) which scales the dim.  In order to scale the dim the Distance3 parameter needs to be stretched the correct distance and so the chained Position1 point/stretch is used.  The Position1 point/stretch is moved by Scale1 action (when the left stretch grip is used) or Scale2 when the right grip is used.  

0 Likes
Message 10 of 18

Anonymous
Not applicable
I'm processing your detailed explanation. Will get back to you. Thanks for your time. Have a great weekend!
0 Likes
Message 11 of 18

Libbya
Mentor
Mentor

Attached is a better/simpler version.  In the attached version, there is only one linear parameter.  It stretches the line on the left in the proper direction with the angle offset of 60°.  The left stretch is also rotated by the Rotate2 action so that when the left line is rotated, the angle offset is also rotated to be correct.  I fixed the hatch dis-association issue that would happen with the previous block at angles smaller than 30°.

0 Likes
Message 12 of 18

Anonymous
Not applicable

I like the simpler version, and I've been playing with it for my purpose, but I've found an issue, and your block to perform the same way. When the block stretch point is changed the beyond 10', the hatch pattern inverts within the outer defining circle.

 

In the attached, if the left block is stretched to 121" the hatch inverts as in the middle block. In the middle block I find that if the stretch point becomes coincident with the rotate grip, then neither of them can be selected individually.

 

In the right block, I trimmed the outer defining circle to an arc between the lines and that seemed to fix the hatch inversion.

 

I would like the rotate grips to move along with the line endpoints stretch. I added the grip objects to the stretch selection sets, but they didn't move with the stretch.

 

Again, thanks for your time.

0 Likes
Message 13 of 18

Libbya
Mentor
Mentor
Accepted solution

I'm not totally sure why the hatch inverts or loses associativity at times.  Using an arc as opposed to a circle seems to eliminate the inversion.  There's no reason to make the arc match the angle of the hatch and good reason not to.  I found that with the right side block, it would lose associativity sometimes when the rotate actions were used.  I believe it was because any time the left rotate was stretched beyond 60°, the construction arc was no longer large enough to contain the hatch and the boundary was no longer closed.  Making the arcs larger (broken for just a few degrees at the bottom) solves that issue as well without re-introducing the inversion.  I also found that it would lose associativity if rotated too small.  Limiting it to 5° seems to solve it.  Also 180° would break the dim, so I limited the angle to 160.  Stretching below the smaller circle would also break the hatch so I limited the linear parameter to 12".

 

As far as making the rotate grips move with the stretch, that's fairly easily accomplished.  Make the rotate parameters so that their radius is the asme as the lines, then add them to the scale action.  The block on the right works.

Message 14 of 18

Anonymous
Not applicable

You've solved it again. Many thanks for the block and the explanations.

0 Likes
Message 15 of 18

Anonymous
Not applicable

hey randy,

 

i was looking for the same type of block as u used on the right. i am not able to figure out how the lines on the both sides are streched without changing the angle?? if you could manage few minutes to explain the process i would be very greatful 🙂

 

Thanks in advance.

0 Likes
Message 16 of 18

Libbya
Mentor
Mentor

The linear parameter is inline with the line on the right.  That linear parameter has a stretch action acting on that line.  There is a second stretch action associated with the linear parameter and that stretch action stretches the line on the left.  That second stretch action has an angle offset of 60 degrees so that it stretches the line the correct direction.

0 Likes
Message 17 of 18

Anonymous
Not applicable

thank you so much Libbya, u saved my headache 🙂 .  ur great 🙂

0 Likes
Message 18 of 18

Anonymous
Not applicable

I resume this thread cause i need to modify a little the Libbya job... but changing something the block does not works anymore....Smiley Embarassed

 

the best would be that someone with tons of patience could explain how the block (Hatch Version) works ... how the actions and parameters works together.... so i can understand it definitively.

btw i need to do what is explained in the attached file.
Thanks for the Help
Inteso

0 Likes