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

Rotation parameter make block loose shape

16 REPLIES 16
SOLVED
Reply
Message 1 of 17
wkobayashi
2587 Views, 16 Replies

Rotation parameter make block loose shape

Every dynamic that I made looses shape when I apply the round action. What am I missing?

 

sample_round_door.png

Wagner Kobayashi
AutoCAD 2014
16 REPLIES 16
Message 2 of 17
ojuris
in reply to: wkobayashi

That is because You add chained parameters in rotate action

Message 3 of 17
wkobayashi
in reply to: ojuris

Ok. I selected the drawings only, but there is a new thing. The stretch parameters continue in its original position, but they make block loose shape in another way. I attached the modification.

Wagner Kobayashi
AutoCAD 2014
Message 4 of 17
ojuris
in reply to: wkobayashi

This is problem with chained parameters - in one way they work as You expect, but in other not. And sometimes this is big problem like in Your case.

Message 5 of 17
Libbya
in reply to: wkobayashi

Your block seemed more complicated than necessary.  Here it is working.  I just used the two stretch actions and move and a scale.  The linework and parameters need to be in the rotate action, the actions do not.  Distance 2 needs to be chained.  Distance 1 does not.    

Message 6 of 17
wkobayashi
in reply to: Libbya

Thanks, but I forget to mention that the door thickness must be the same. So, that's why there are complexes parameters, cause the door thickness can't be scalable.

Wagner Kobayashi
AutoCAD 2014
Message 7 of 17
wkobayashi
in reply to: Libbya

The same happens with the attached block.

 

If I first rotate to any angle different from 0° and then stretch (making the door larger) the block looses shape.

Wagner Kobayashi
AutoCAD 2014
Message 8 of 17
ojuris
in reply to: wkobayashi

try this
Message 9 of 17
ojuris
in reply to: wkobayashi

Message 10 of 17
Libbya
in reply to: wkobayashi

Ah, rotating that single door while keeping the door thickness constant is a little more challenging.  Here it is fixed.  Door thickness remains constant.  Everything stretches and rotates as it should.

 

The issue you were seeing is a result of a stretch action linked to a rotated chained parameter whose basepoint is not at the basepoint of the rotation.  Interestingly enough (and thankfully), scale actions work fine that way, but stretch actions do not.  At the same time, once a stretch action is defined, its linear parameter can be moved to ANY location and it will perform the stretch action in the same way provided its angle and length remain the same and the window of the action controlling it is moved accordingly.  Also a chained stretch whose startpoint coincides with the basepoint of a rotation will rotate correctly. 

 

The attached file would be my 'simple solution'.  In that file I kept the chained linear parameter with scale action (distance2) at its previous location in order to scale the arcs properly.  I then created another linear parameter (distance 3) that initially had the same start and end points.  I added a stretch action to it with a window around the bottom edge of the door.  I change the distance multiplier to (distance from start point to center of that end of door)/(total length of parameter) and changed the angle offset to (startpoint to center of bottom end of door).  I then added a second stretch action with the stretch window around the other end of the door.  I changed the distance multiplier to (start point to center of top end of door)/(total length of parameter) and changed the angle offset to (startpoint to center of top end of door).  I then added a move action to the same parameter (distance3) for the center pivot of the door with a distance multiplier of 0.25.  At that point the block worked as it should until rotated.  I then used the move command to move distance 3 so that its startpoint coincided with the basepoint of the rotation.  Voila, it all rotates as it should.

Message 11 of 17
Libbya
in reply to: Libbya

Oh, one other quick thought, if it were my block, I would use a polar parameter and polar stretch in order to combine that right hand stretch and the rotate action, but that might be its own can of worms.

Message 12 of 17
wkobayashi
in reply to: Libbya

Thanks... I'm still trying to process and understand what you did in the block. Despite the explanation, English isn't my first language and I have some issues to understand that. Anyway, thanks for explain.
Wagner Kobayashi
AutoCAD 2014
Message 13 of 17
Libbya
in reply to: wkobayashi

If there is anything I can explain in more detail, let me know.

 

I guess the trickiest part is the way I applied the distance multiplier and angle offset to Stretch1 and Stretch 2 which stretch the two ends of the door rectangle.  To do so, I clicked first on Stretch1 and then went to the properties palette and clicked on the distance multiplier field.  When you click on the field, the calculator appears at the right on the field, I clicked on it.  With the calculator open, I clicked on the ruler on top.  I then selected the point that is the startpoint of Distance2 and then clicked on the point that is the center of the bottom end of the door (also the end of the small arc).  That will then place that length value on the calculator (0.229610059).  I then entered "/" at the end of the value and hit the ruler again.  This time I clicked on the start point and end point of Distance2.  The calculator then said "0.229610059/1.2" and I hit apply.  It did the division and the distance multipier value was set as 0.19134172.  I then used the calculator again to find the angle offset.  Instead of clicking on the ruler I clicked on the angle symbol.  I then clicked on the points that are the two ends of the small arc to get an angle of 292.5 and hit apply.  I used the same approach for the distance multiplier and angle offset for Stretch2.  Once those two stretch angles were set up correctly, the rectangle that forms the door panel outline will stretch correctly. 

Message 14 of 17
wkobayashi
in reply to: Libbya

Thank you very much for the explanation about the door. I did understand how you did it... Now, I'm trying to understand why you did it that way.

 

I understood that the stretch actions for the door was based in 2 things:

a) the angle offset is the vector from the begining of linear parameter to the ends of door

b) the distance multiplier is based in the proportion of these vectors compared to the linear parameter

 

I think that I'm good with geometry and math, but I confess that I wouldn't get to this result by my self. Actually, I'm not shure why this works.

 

I did understand about moving the linear parameter basepoint to the same rotation basepoint after setup stretch and move actions of the door. Thanks.

 

I tried to replicate the rotation action with the Polar Stretch, doing the same thing about moving the linear parameter after setup the actions, but it didn't work. I don't know why.

Wagner Kobayashi
AutoCAD 2014
Message 15 of 17
Libbya
in reply to: wkobayashi

I did it that way in order to eliminate the additional two chained parameters with stretch actions.  It wouldn't be the first time I was 'accused' of alternative thinking.    

 

I also tried the polar stretch and similarly had it fail.  I knew that it would behave differently which was why I said it might be another 'can of worms'.  I may still play with that a little and see if I can get it to work.  I'll let you know if I get it working.  

Message 16 of 17
Libbya
in reply to: Libbya

I am very glad to be able to say that I've solved the polar stretch issue.  See attached file.  The reason I am happy about that has little to do with this particular block, but rather a lot to do with the reasons why it didn't work before and how I did get it to work.  I have had this particular issue come up in several blocks I've tried to make and to fully understand the issue and how to resolve it gives me great relief.

 

The issue in a nutshell is that you cannot apply two or more simultaneously acting polar stretch actions to an object and have it behave properly.  The reason is that the rotate action within each polar stretch act on their own and so multiply the rotation angle.  In other words, if you have two polar stretch actions applied to the two ends of a line and both actions act at the same time, for every degree of rotation to the governing polar parameter, the object (line) will be rotated two degrees and the linework with get wonky.  The solution is to place a chained point parameter and stretch action at each of the stretch point and then move the appropriate chained point parameters using the polar stretch angle.  Even though the object (in this case a rectangle representing a door) is effectively having two polar stretch angles act on it, they are really acting on the chained point parameters, each of which are only being acted on by one of the polar stretch actions, and so the rotation angle is not multiplied.    

Message 17 of 17
Libbya
in reply to: Libbya

Flips too?  Attached.

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

Post to forums  

”Boost

 

”Tips

 

”Services