Variable Array of a Dynamic Block

Variable Array of a Dynamic Block

pascal_khattar
Contributor Contributor
34,835 Views
57 Replies
Message 1 of 58

Variable Array of a Dynamic Block

pascal_khattar
Contributor
Contributor
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
0 Likes
34,836 Views
57 Replies
Replies (57)
Message 41 of 58

j.palmeL29YX
Mentor
Mentor
Accepted solution

@alxptcsrl wrote:

 

it is very difficult to handle

 


Very difficult? 

 

 

Ok, after changing the width (d1) sometimes you have to wait a moment until the geometry reacts. But the duration of this delay depends on the maximum of panels you need. Therefore I asked how much panels you expect to need. The less the "smoother" the block will work. Unfortunately you did not yet answer this my question. 

I could imagine another solution (not yet tested) if you don't need to choose different height (d4). But I'm afraid then the block will be useless for you. 

 

 

Jürgen Palme
Did you find this post helpful? Feel free to Like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.

EESignature

Message 42 of 58

alxptcsrl
Participant
Participant

Hello

Thank you for the video it is very clear

Regarding your question, 10 panels are enough unfortunately (d4) I have to be able to modify it

Can you help me with some improvements for this block? this block also includes a door and sometimes a technical module, probably starting from this block I still need some variates or more blocks.

Thank

0 Likes
Message 43 of 58

j.palmeL29YX
Mentor
Mentor

Do you really need to put all the shown variants (and perhaps more?) in one block definiton?

It is already hard enough for the computer to manage this block with its currently 10 VisStates and about 430 constraints. Wouldn't it be better (or at least aceptable) to build separate blocks and then place theses side by side? I don't know a better suggestion.

 

 

Jürgen Palme
Did you find this post helpful? Feel free to Like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.

EESignature

Message 44 of 58

alxptcsrl
Participant
Participant
Hello, I don't want to put all the variants in one block. Help me make 4 blocks according to the drawing. What do you think? Does it work or is it too complex? Thank you.
 
 
 
0 Likes
Message 45 of 58

j.palmeL29YX
Mentor
Mentor

I'm afraid this will bee too complex. 

I'd suggest to create some different blocks and place they side by side. 

Jürgen Palme
Did you find this post helpful? Feel free to Like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.

EESignature

Message 46 of 58

alxptcsrl
Participant
Participant

Hello

I came back with better optimization represented in the drawing, the block can have 6 panels instead of 10

Please give me good news that it can be done.

Thanks

0 Likes
Message 47 of 58

j.palmeL29YX
Mentor
Mentor

@alxptcsrl wrote:

 

... better optimization represented in the drawing,


 

A first question: 

What shall happen with the dimensions "?" in the following image if you change d6 (30/35)? Are they constant?

 

Window_question.png

 

 

Second: Your examples are over dimensioned. E.g. the second - If the user chooses a value for d1.1, d1.2 and D7 then d1 will be sum the of these. Or the user must choose a value for d1 - which of the first three dimensions shall be the result of d1 minus two of the others? (The same question for the other examples).

 

Next: Have you tried it yourself? Did you understand how my first suggestion above works? At what point do you have problems/questions?

I'm not yet sure if it will be solvable at all, even I think/hope it can be possible. But I am afraid that this project is too complex for a comprehensive free help - I will give my best.  

Jürgen Palme
Did you find this post helpful? Feel free to Like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.

EESignature

Message 48 of 58

alxptcsrl
Participant
Participant

Hello Palmel

Thank you for the effort made, this community is very involved,

Keep it up!

I try to reduce as many variables as possible 🙂

d6 size can be constant 35 mm

size "?" is 50 constant

the user must choose a value for d1 - which of the first three dimensions shall be the result of d1 minus two of the others - Yes!

I haven't worked with constraints, I can't handle them, I've done some dynamic blocks with parameters.

Thanks

0 Likes
Message 49 of 58

j.palmeL29YX
Mentor
Mentor
Accepted solution

I would recommend and suggest putting the final project (a glass wall?) together from individual modules. 
In the attached file you find 5 different blocks, which you can assemble as you need. The glass_left and glass_right are similar to our first block above. Only the right and the left end is modified a little.
The glass_door and glass_tech you can drag to both sides to modify their width (and of course the height too).
The video shows how I would use these blocks:
Assuming you have a given width overall (here represented by a line). Place the glass_left and glass_right at the endpoints. Further you can place the door and/or the tech. module whereever you need and choose the needed width (drag or properties window). Next drag the outer blocks to fullfill the gaps between the modules. At last adjust the number of panels to get their width between 500 and 1000.
The advantage of this strategy is a maximum of flexibility. You can place each modul where you need, you can set each of the width to a given (needed) value or drag the width of each module to get it connected to its neightbor.
In the video I forgot to show how to change the height. Each of the modules has an appropriate grip. Even if you have to change the height for each module separate, that should be done in a handfull of seconds.

 

 

 

 

You should be able to refine the block as your need, e.g. restrict the width of the door and the tech. module to given values (add a list), or suppress the visibility of the reference dimensions (to control the with of the panels) or ... what you need.

And, it will be easy in the future to add additional modules (besides the current door and tech. modul).

 

 

Jürgen Palme
Did you find this post helpful? Feel free to Like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.

EESignature

Message 50 of 58

alxptcsrl
Participant
Participant
Hello,
Your recommendation is good, it works well
I appreciate your involvement and all the advice
Thank you for your help, if I have any more "impossible missions", I know where to turn
Keep it like this !
0 Likes
Message 51 of 58

alxptcsrl
Participant
Participant

Hello

Can you help me with a small change, I marked it in red on the drawing

Thank you

0 Likes
Message 52 of 58

j.palmeL29YX
Mentor
Mentor
Accepted solution

The "small change" (13 -> 10 for glass_left anf glass_right) is done in the attached dwg (I hope it works as you expect). 

 

Additional I did some more small modifications (in hope to increase the performance a little): In each of the visibility states you added a horizontal and a vertical dimension for the width and the height over all. I deleted these dimensions and replaced by only one vertical and one horizontal dimension, which are visible in all visibility states.

I hope this solution is acceptable for you.

Jürgen Palme
Did you find this post helpful? Feel free to Like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.

EESignature

Message 53 of 58

alxptcsrl
Participant
Participant

Hello

It works perfectly and is what I wanted

I'm impressed how you know autocad, especially with the constraint function.

Thank you!

0 Likes
Message 54 of 58

LeoManu
Contributor
Contributor

Hi, I cant figure it out how you make the polyline invisible (the path for the array), and i dont understand why its an Equal constrain, can you explain?

 

thanks!

0 Likes
Message 55 of 58

j.palmeL29YX
Mentor
Mentor
 how you make the polyline invisible 

 

The both lines were converted into Construction Lines (using the BCONSTRUCTION command). Such construction lines always are invisible in block references. 

 

ConstructionsLine.png

 

 


why its an Equal constrain,

 

Mark decided (I don't know why) to use two different lines to solve the problem: A lower line to have an object for the Horizontal Constraint Parameter  and an upper line as path for the array. The equal constraint ensures that the path always has the same length as the parameter. 

IMHO you don't need two lines. You need only one line, whose length is driven by the Horizontal Parameter and the same line can be used as path for the array. Perhaps @MMcCall402 can tell us why he used two different lines. 

 

 

 

Jürgen Palme
Did you find this post helpful? Feel free to Like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.

EESignature

0 Likes
Message 56 of 58

MMcCall402
Mentor
Mentor

Hmmm,  I'm not sure why either.    I might have started something where I was going to array the top and bottom parts as two separate arrays and then use another constraint to control how far apart those two lines were and appear like it was stretching the object vertically.   I should have cleaned it up before posting.

Mark Mccall 
CAD Mangler


EESignature


VHB - Vanasse Hangen Brustlin, Inc.


Linkedin

0 Likes
Message 57 of 58

mattcubex
Community Visitor
Community Visitor

Hi @MMcCall402 

 

I've had a good read through this thread as this is almost exactly what i'm after. In fact the very first solution gets me about 90% of the way there. I've tried editing it to fit to my requirements, but for some reason i can't find the parameters manager in the block editor, (could be my old version of autocad -  2014 LT).


Anyway, what i'm hoping to create is a dynamic block for a glazed panel with uprights. I'd like to be able to stretch this out with uprights on each end, and new uprights added in between with a max of 1200mm between the upright centres. Glass to unfill between the uprights.

Upright depth needs to be editable. Depths to be 50mm, 75mm, 125mm, 175mm and 200mm

If possible a viability state selection to switch between single and double glazed. Though if this is to much for one block, i'm happy to have these as two separate blocks.

 

Example attached

0 Likes
Message 58 of 58

MMcCall402
Mentor
Mentor

Unfortunately the objects used in this type of array can't be edited once they're part of the array.

 

However, you can array more than one at a time, one for each of the 5 sizes, ad then use visibility states to choose between them.  Visibility states could handle the single vs double gazed as well.  You would need 10 total states.  To make selecting the desired visibility state you could incorporate a Block Properties table and a couple User parameters to make a branching selection menu.       or, have the block table use a linear parameter and a value from a Lookup to make the block properties table selection for the correct visibility table.

 

 

Mark Mccall 
CAD Mangler


EESignature


VHB - Vanasse Hangen Brustlin, Inc.


Linkedin

0 Likes