Linear move, rotate basepoint, visibility state, and lookup table

Linear move, rotate basepoint, visibility state, and lookup table

GPnmulder
Advocate Advocate
855 Views
2 Replies
Message 1 of 3

Linear move, rotate basepoint, visibility state, and lookup table

GPnmulder
Advocate
Advocate

I am attempting to build a dynamic block that makes use of a lookup table to move elements in conjunction with a visibility state. I have attached the block but will try to also explain the desired behavior.

 

The block represents a device that can be wall mounted or not wall mounted; the symbology being slightly different for each. A 'foot' indicates it is wall mounted and 'no foot' indicates it is not. It contains a rotate control to rotate geometry but not attributes when the foot is visible. It also contains a basepoint parameter so that rotating also rotates the basepoint so that it will still scale appropriately with annotation scaling. It has 4 visibility states. This all works.

 

I then added a linear move to depict the non-wall mounted use, which works. I added a lookup table to control the move parameter based on selected visibility state. This too works. Then, to account for rotation, I added this linear move to the rotate parameter. I added the rotate to the linear move. The problems begin when switching back to non-wall mounted; how do I get the rotate parameter to move with the linear move and vice versa, without creating a circular reference?

 

Any help appreciated.

0 Likes
Accepted solutions (1)
856 Views
2 Replies
Replies (2)
Message 2 of 3

Libbya
Mentor
Mentor
Accepted solution

'Circular references' only occur when you have two chained parameters within a block and they each have an action that changes the other parameter in a way that activates that chained parameter's action.  You have no chained parameters in your block so there is no risk of creating a circular reference regardless of what actions are added...  

 

All of that said, I don't think you need to add any other actions to correct the errant behavior you are seeing.  The issue is that you have the 'basepoint' linear parameter rotated, and then you also shrink it to a 0 distance using the lookup.  At 0 distance, it loses its angle information and so when it is enlarged again to 11/64, it does not move the objects in the desired direction.  The easy solution is to increase the distance of both states by the same amount, e.g. instead of shrinking to 0, shrink it to 1/16 and make the distance of the other state 15/64.  That way it will 'remember' the angle it is rotated to.  See attached.  

 

If you want to be able to rotate in any state, then make the rotate parameter visible.  

 

0 Likes
Message 3 of 3

GPnmulder
Advocate
Advocate

I wouldn't have thought of that solution...I was certain I was not using a parameter correctly. It works as I was hoping. You've helped me before on a dynamic block issue. You're a DB master.

 

Thanks!

 

 

0 Likes