Array along a "path"

Array along a "path"

Colin-Pearson
Advocate Advocate
3,686 Views
17 Replies
Message 1 of 18

Array along a "path"

Colin-Pearson
Advocate
Advocate

Hello folks.  I've got a line in a block that connects two objects which can more with respect to one another via a Stretch Action.   This line is diagonal so its angle changes as you drag the two objects further/closer.  I'd like to set up an Array Action along this line and always have the array parallel to said line - is there a way to set this array up so it will change angle with the diagonal line?  Thank you!

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

Libbya
Mentor
Mentor

Post the block.

0 Likes
Message 3 of 18

Colin-Pearson
Advocate
Advocate

Work in progress.  The longer magenta chains on the left-hand view are the arrays in question.  There's actually two diagonal arrays needed but I know they will be set up the same way.

0 Likes
Message 4 of 18

Libbya
Mentor
Mentor

I don't think I understand.  It looks like the magenta chains on the left do array parallel to the centerline despite the angle of the centerline changing.  How would you like the behavior different from how it currently is? 

0 Likes
Message 5 of 18

Colin-Pearson
Advocate
Advocate

They are close, but they're a little wonky.  If you look at the two-link "seed" for the pattern while in the Block Editor, the centerlines of both link fall right on the cyan centerline that gets stretched.  Then in Model Space, if you look at the links, there is a slight rotation to them where the center of each top link is on the cyan line, the the two-link pattern is slightly rotated off that line.  I think it's something to do with the difference between the angle as originally drawn and whatever angle the cyan line ends up at based on how much you stretch the block.  In this example, it's relatively minor, but other sizes of these devices have some much steeper runs of chain where the bust will be noticeable.  

0 Likes
Message 6 of 18

Colin-Pearson
Advocate
Advocate

And thank you for looking!

0 Likes
Message 7 of 18

Libbya
Mentor
Mentor
Accepted solution

I see the discrepancy.  Yes, that is a troublesome situation that took me a while to figure out when working on another block a couple years ago.  Here's the required wizardry.  You need to use a chained linear parameter for the array.  You then need to use a chained polar parameter with a polar stretch action.  For the polar stretch action selection set you need to add the linear parameter to the items that will be stretched and you need to add the arrayed items to the selection set for the items to 'rotate only'!  You then need to remove the chained linear parameter from the main stretch selection set and add the chained polar parameter to it.  See screencast.

 

  

0 Likes
Message 8 of 18

Colin-Pearson
Advocate
Advocate

Well ... that is fantastic!  Thank you so much.  I had to sort out a couple other drafting errors I had made but was able to implement your solution this morning.  Indebted again!

0 Likes
Message 9 of 18

Colin-Pearson
Advocate
Advocate

Discovered a bit of lingering weirdness.  Any idea what might cause this behavior?  Array items are rotating and stretching strangely - both the "seed" of the array pattern and the actual displayed array.

 
 
 
 
 
 
0 Likes
Message 10 of 18

Colin-Pearson
Advocate
Advocate

additional screencast

c8c1d068-03e6-437a-bc3d-19b7074b8a30,640,620

 
 
 
 
 
 
0 Likes
Message 11 of 18

Colin-Pearson
Advocate
Advocate

oops, didn't post the second cast

 
 
 
 
 
 
0 Likes
Message 12 of 18

Libbya
Mentor
Mentor
Accepted solution

Ok, that rotation with the chained parameters definitely puts a bit of a wrench in the works.  I believe it is possible to fix it still using only the dynamic parameters/actions but I think it might be easier to go against my typical advice and use a method that requires a few constraints.  See screencast.

 

  

0 Likes
Message 13 of 18

Colin-Pearson
Advocate
Advocate

Thank you.  I'm as painfully ill-versed in constraints as I am in Parameters/Actions but I'm sure I can follow that.  I've got one of those annoying bits where the array needs to be jump-started (the middle length of 4 chain links) that I can't seem to get rid of again also.  The 4 links are actually the start of the array for the side view Visibility States.  Funny thing is there are actually only 3 links drawn in the Block Editor... I did it that kind of weird looking way b/c I like the look of having the side-view of the link at the top but I also wanted it to end with a side-view link at the bottom and that seemed to work.  Not sure why it show up as 4 links in Model Space, nor why the links show up at all in the Vis Stats that are supposed to only show the front views.  I tried stretching the chained parameter based on the "HEADROOM" length with distance multiplier set to 0.00 and tried a double lookup thing.  Gotta leave work to go pick up the kiddo; I'll definitely work through your constraint based solution in the AM.  Many thanks!

0 Likes
Message 14 of 18

Colin-Pearson
Advocate
Advocate

Hello @Libbya .   Just wanted to say thank you again.  I wrestled with weird behaviors literally all day yesterday and got nowhere.  I had them all listed here and was prepared to record a screencast to upload examples of all the unwanted oddities and have since worked all of the kinks out (I think, LOL).  Huge thank you for your continued patience, willingness to help and detailed explanations.; you've been an enormous help to me and many others.

0 Likes
Message 15 of 18

Libbya
Mentor
Mentor

I'm glad you got it sorted.  One thing that I alluded to in the prior screencast but didn't actually implement correctly is the fact that you can array the side view links and the straight view links separately so that each individual link appears at the appropriate that.  That requires two construction lines on each chain and each construction line needs to be of the appropriate length for use as the individual array path.  Let me know if you run into further snags or have additional questions.  

0 Likes
Message 16 of 18

Colin-Pearson
Advocate
Advocate

That is what I ended up doing though I did a slight change on your solution.  On the one chain, I want the overall length of chain displayed to start and end with a side view link.  That did not require any construction lines or constraints as I have the chain's centerline path drawn already.  The straight-on view needed to start its array as the second link and stop short so the side view could be the end - I did that with a construction line constrained to be collinear with the centerline but just added that construction line to the Stretch Action and got around needing any dimensional constraints.  The other side need to start with a strait-on link but end with a side view link so I wound up using two construction line paths - they had different end points as appropriate and were constrained to be collinear with the centerline.  These did not require dimensional constraints either.  Really happy with the way these turned out. 

 

That only took me like 4-5 days, now on to the next six sizes LOL!  Hopefully after another one or two they will go faster!

 

0 Likes
Message 17 of 18

Libbya
Mentor
Mentor
Accepted solution

If doing multiple sizes of the same object (chain) then be aware that you can actually scale the array object and path together and the space between the objects will scale accordingly (unlike the dynamic array action).  

0 Likes
Message 18 of 18

Colin-Pearson
Advocate
Advocate

Thank you - I don't think that the sizes scale linearly, but I'll look into it.  Initially I wanted this to all be controlled parametrically, but there's just too much fuss going on in this block for me to handle doing so.  I will however look for some places to cut the time down like this possibility you mention.  Cheers!

0 Likes