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

Variable Array of a Dynamic Block

52 REPLIES 52
SOLVED
Reply
Message 1 of 53
pascal_khattar
23494 Views, 52 Replies

Variable Array of a Dynamic Block

Dear all.
i hope to get some explanation not just the solution if someone was able to solve it.

the target is to be able to use the dynamic block (which is a mechanical support in my case) to be stretchable along the pipes (color red) with minimum value of 1000mm between the 2 supports, the problem i'm facing is that if i have a pipe with i.e. 2800mm length the third support will extend to outside of the pipes (multiple of 1000mm). i want to develop a block that puts two supports on each end and to divide (equidistantly) the remaining distance between those supports, 

please see attached file for the example.

thanks a lot
Tags (3)
52 REPLIES 52
Message 2 of 53
MMcCall402
in reply to: pascal_khattar

Have a look at the attached block to see if it fits your needs.

 

Its an Arraypath inside a dynamic block.  The length of the path a construction line with an Equal length constraint to another construction line with its length controlled by a Horizontal Constraint.  The array divisions value is a User parameter that takes the horizontal constraint distance, divides it by 1000, rounds the result up and adds 1 to arrive at the correct number in the array without exceeding 1000 mm.

Mark Mccall 
CAD Mangler



Hammer Land Engineering


Linkedin

Message 3 of 53
pascal_khattar
in reply to: MMcCall402

Dear MMcCall402

 

first thank you a lot for helping me with this issue

all is working perfectly just i need to make the width of the support flexible so i can drag and adjust it,

thanks for you effort 

Regards

Message 4 of 53
MMcCall402
in reply to: pascal_khattar

In an arraypath you can't dynamically change the item being arrayed.  However, you can array multiple objects of different sizes and then choose which size is visible with a visibility state parameter.  In the sample I posted there is a visibility state grip with 4 different sizes to choose from.

 

The visibility state selection could be done thru a linear parameter if that works better for you.

 

 

The array can be further adjusted with a couple of additional user parameters, one for the maximum distance between supports and another for a minimum distance before the second support appears.  Right now the max is 1000 and there is no minimum.

Mark Mccall 
CAD Mangler



Hammer Land Engineering


Linkedin

Message 5 of 53
Anonymous
in reply to: MMcCall402

I'm trying to make a dynamic block w/ phantom lines to use in some stair sections for the railing. I have the vertical posts arrayed at 48" but it doesn't add a line until I exceed 96". How can I make it so there is never a gap more than 48"? Whether the intermediate posts are centered or start from one side doesn't really matter. I just want to be able to select the start and endpoint regardless of the slope and have it add however many intermediate members. Please see file attached, thanks in advance!

Message 6 of 53
timothy_crouse
in reply to: MMcCall402

There is a way to define array spacing on-the-fly inside a dynamic block:

 

The trick to setting up variable array column spacing is NOT use a dynamic block array parameter set.

But rather place an ARRAY object inside the dynamic block.

 

Then use an attrubute to link to the array object parameter to a formula using a another parameter

as the driver to set the desired value

In the attribute:

Insert field type OBJECT then select the ARRAY object

be sure to select the correct property you wish to adjust on the fly via an equation or formula

Copy the info that appears in the lower pane THEN

Change the filed type to a formula.

Use the object data you copied and define the formula to obtain the desired results.

 

See the attached example:

 

Best Regards

Tim C.

Message 7 of 53
Anonymous
in reply to: MMcCall402

I really hope you see this reply as i have been trying to recreate your block for the past couple of weeks and i literally have no idea how it works!

 

Can you do a video or a step by step on how to do it please? 

 

No matter what i try i can only get it to put in an extra unit (one at the start and end of array) can not figure out where or how you put in the user parameter.

 

I know it was a long time ago but your help would be very much appreciated. 

Message 8 of 53
MMcCall402
in reply to: Anonymous

I'm not able to do any screencasts during working hours, however I can do a few screen grabs if that helps and I'll take a guess at where you may be having a problem.  There is a part of it that is sort of 'non-intuitive' where you need to type in the name of the user parameter as a value for the arraypath property.  When you type in the name of the parameter into the array properties it will change to the current value of the user parameter rather than hold the name. Once its enter there seems to be no evidence as to where the value comes from.  The red box in the image below comes from the user parameter "Spacing" in the dwg I attached in the prior post.

 

The value of the 'Spacing' user parameter comes from an expression, (ceil(d1/1000))+1   The expression uses the value of the d1 dimensional constraint parameter, divides it by 1000, rounds it to the next higher integer, and then adds 1  to arrive at the proper number of items to be in the array such that the distance between them never exceeds 1000 units.

 

image.png

Mark Mccall 
CAD Mangler



Hammer Land Engineering


Linkedin

Message 9 of 53
Anonymous
in reply to: MMcCall402

soon as I saw your notification I searched the net and found what you meant and was able to duplicate your block!

 

thank you for this help!

 

I am in the UK and my day of work is about finished but i was wondering if you could point me in the right direction with the attached block?

 

The piers either side are using your array you have described however... ideally i also would like the bit in the middle to also do its own array and fill in the between but go no further than the last pier. 

 

The plinth (dimensioned) can be no more than 900mm and the balustrade in between should be max 3 per plinth and equal spacing's. 

 

is that a possibility all in one block or am i going to have to do the rest with different blocks? 

 

the example above in the attachment is what i am trying to achieve if this is possible?

Message 10 of 53
bfalconr2
in reply to: MMcCall402

Thank you very much for the block, I was trying to get the same result but for a railing panel pickets, by code railing pickets cannot be more than 4" from edge to edge (not center to center) I going to see if I can get the same result you got. but if you can help me out here, I'll fully appreciate it.

Thank you in advance,

Bruno

Message 11 of 53
MMcCall402
in reply to: bfalconr2

Happy to help if I can

Mark Mccall 
CAD Mangler



Hammer Land Engineering


Linkedin

Message 12 of 53
bfalconr2
in reply to: MMcCall402

Thank you Mark, I have a set of steel stairs for a school, wham I'm trying to make is a dynamic block which allow me insert post @ around 5 feet between centers, then another block to let me insert pickets between those posts with no mere of 4" clear between pickets, pickets can be 1/2" or 3/4". square or diameter, please see attached photo,

Thank you very much in advance for your help, it takes too much time figuring spaces for each railing.Screenshot 2021-03-08 121659.jpg

 

 

Message 13 of 53
MMcCall402
in reply to: bfalconr2

Does this need to be a dynamic block?   (are you going to use it over and over again?)

 

You could do this with a polyline thru the railing for alignment, draw in the first post and spindle, the ARRAYPATH those objects as two different arrays. You can then specify number of object in the array, that it should use the entire length of the polyline, and then keep an eye on the spacing it creates such that it doesn't exceed you maximum spacing.

Mark Mccall 
CAD Mangler



Hammer Land Engineering


Linkedin

Message 14 of 53
bfalconr2
in reply to: MMcCall402

Yes a dynamic block is what I'm looking for, I do this for each set of
stairs, the total length varies all the time it can be only two posts, but
very often is three to fours post but never same total length, I've being
doing manually, when I saw the sample you did for the ceiling hangers, I
tought I can do the same for the railing but honestly I completely lost, I
don't know where to start I know how dynamics block work, but yours seem to
be something different, at least in my knowledge. I was hoping you can ma a
sample that I can follow

Thank you
Message 15 of 53
MMcCall402
in reply to: bfalconr2

Sorry for the delay, my silly day job keeps getting in the way.

 

The attached file has 2 blocks with it. One for the railing post and another for the spindles

 

The one for the posts has an Arraypath of the posts along a construction line. The length of the construction line is controlled my a linear constraint.  A user variable has a formula calculates how many posts should be in the array by dividing the value of the linear constraint by 60 (inches), rounding it down to one integer, then adding 1.  The arraypath uses this user parameter as its value for the number of objects in the array.

 

The Spindle block works in a similar manner except that one needs to account the there not being a spindle at the beginning or the end of array. (as there is a post there)  Two user parameters calculate the values needed for the array path.

 

 

I was hoping to get enough time to combine these into one dynamic block but it was going to take a little more time to solve the issue of intermediate spindles coinciding with posts in the middle sections of the railing.  This could be handles with a simple wipeout included with the post array. Not elegant but would get it done.  In the meantime you could insert the two blocks, select them both and pull the grip(s) both at the same time.

Mark Mccall 
CAD Mangler



Hammer Land Engineering


Linkedin

Message 16 of 53
bfalconr2
in reply to: MMcCall402

Wow I really want to thank you for all you do to help us I'll share some
tips I learned so I do the same you are doing

Thank you again

Bruno Falcon
Message 17 of 53

Posted this one accidently, sorry about that.

Message 18 of 53
mertkarademir
in reply to: MMcCall402

Thanks Mark. This thread looks exactly like what I needed. I tried your method on my problem, but having trouble to imply it correctly. Can you please check my thread too if you have some free time? Thanks in advance

 

Here is the link to my thread: https://forums.autodesk.com/t5/dynamic-blocks-forum/stretch-and-array-problem/td-p/10209289

Message 19 of 53
bfalconr2
in reply to: MMcCall402

Hey Mark how you doing? Sorry to bother again, the formula you mentioned "A user variable has a formula calculates how many posts should be in the array by dividing the value of the linear constraint by 60 (inches), rounding it down to one integer, then adding 1.  The arraypath uses this user parameter as its value for the number of objects in the array"

How can I edit it or make a new one, where is it located? Can you share that, and talk more about this formulas?

 

Thank you,

 

Bruno Falcon

Message 20 of 53
MMcCall402
in reply to: bfalconr2

Sorry for the delay. I'm embarking on a job switch and my last day is tomorrow.

 

Access to creating User Parameters is within the block editor.  On the ribbon there is a Parameters Manager.  It will show you all the parameters within the block. From there you can create and edit the User Parameters.

 

image.png

Mark Mccall 
CAD Mangler



Hammer Land Engineering


Linkedin

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

Post to forums  

Autodesk Customer Advisory Groups


”Boost