Can dynamic components' min/max size be dictated, and then repeated at a certain distance?

I want to make frame and panel construction for cabinets. The materials that I will be utilizing are only available in 36"x 26" dimensions. Can I create a dyanmic component where the maximum panel width not exceed 26"?

To press this even further: can the component then place dado’d stile 1/2"-into the maxed-out panel? I’ve built a dynamic component ladder so I imaging this function can be achieved by creating a custom “spacing” function. But I’m unsure how to go about that dado business.

you can use

=Smallest(26,largest(lenx,12))

for a range from 12 to 26, where lenx is the width
if you want this to be part of the current scaling range then for lenx

=Smallest(26,largest(current("lenx"),12))

note for those using metric, convert from inches using

=Smallest(66,largest(current("lenx")*2.54,30))

yes, a dynamic panel can be created of all different shapes.
one way (common) is to divide the object into many solid parts that move dynamically. Another is to add shapes that can later be cut using solid tools (can be simpler).
The concept is at a certain point when the design is finished, its simplified so parts become one, this can be done manually or better with a customised ruby script, it is easily reactivated with a swap with its original definition if required.

Are you suggesting

  1. Create stile body as a dynamic component, with lenx/y/z controlled by options
  2. Draw a second box for the mortise as a second dynamic component. with lenx/y/z options controlled.
  3. Make a parent component of the pair, then hide/smooth the mating edges of each to make it seemless?

Thanks for responding! This is my first go around with these functions, my mind isn’t grasping why I would use smallest as 26" with largest as 12" nested in.

why would I need to specify current? Is an alternative to control this metric in the options?

Yes, making sure all parts are solid. you can use groups on this lowest level, then they have no residue when union. (in fact you do no need to hide the faces or lines as they will be lost in the union or outer-shell. The parent that holds these groups will remain. (so manually you would do this inside the component or pick them using outliner) I

you could use swappable members, these have an extra level that can hold the formula, work with the current values and contain the instructions for the script to simplify. Hence the parent contains the data and input. and all other levels union, or deleted if hidden option,…or whatever task required

the smallest function would pick the smallest in a list of values, and the largest the largest
by nesting one in the other you are restricting them to a range

current is only required if you using the restrictions directly in the len attribute, it restricts the scale from sizing outside these limits
the current formula gets the current value, holds it, does whatever operation and then replaces it without repeating, freeze until a redraw

Capture

for metric users, because the current formula like facearea formula returns inches regardless of the unit selection, one has to multiply the result with 2.54 and 6.4516 respectively

will take to help and 3D warehouse examples

I had no idea that I could group together at the lowest level, gather groups into a component, and have functionality throughout! That is neat!

I am imagining ‘residue’ as a sort of redundant information in the file when the user creates components at every level down through the dynamic component (union)? Is this accurate?

Editing because I just remembered about Solid Tools Union. Is this relevant here?

I watched the Skill Builder Dynamic Components playlist, Aaron drove home the concept of creating components from raw geometry to nesting objects. Is your opinion that this method balloons the file size or is there a different reason for doing your method? I guess I’m looking for a comparison between the two thoughts, or looking if there are more schools of thought on this topic that you could direct me to because I’m not familiar enough with navigating through this community yet.

=Smallest(6,largest(current(“lenx”),3))

I feel like I grasped your concept, just double checking.

I appreciate you taking time to discuss this in depth

that is correct, another method is to use if and greater, less than (equal) symbols, again nested

=if(lenx<=3,3,if(lenx>=6,6,lenx))

maybe easier to read / understand, the choice may be more dependant on the number of variables and conditions like adding or/and statements to cover more options as suggest in the title

Components are more stable than groups when used dynamically, so that’s why Aaron played safe. If you use groups then only on the lowest level with their sizes connected to their parent or fixed. Using DC groups at other levels requires greater care and sometimes impossible to control.
Why consider groups? well components retain a definition in the file, even when all instances are deleted. They have to be purged to remove them, usually having a back up definition is a good thing, as it saves loading, so a template may have some ready to use. However DC sub parts like your mortice / tenon have no meaning after the union operation and clutter the home component browser, so a group definition for these parts makes sense. But again its your preference.

There are many concepts that can be considered in your DC development, once figured what suits, a base unit / template can be used to develop the other elements so save repetition.

Questions
how involved is this project, are doing a few or creating a company workflow?
DC building involves a lot of time, so for one or few its unpractical, better to concentrate on the basics and get the speed with technique and practice.

Just to understand and a hobby? then can help you without any structure otherwise…

do you wish to use the report writer to create a list and/or schedule?
is there some other method that evolves extensions like Cutlist, Profile Builder…?
how you expect notation in layout? notation in sketchup?
and …

Question:
Why is this feature set to (the complicated system with) inches when there are only three countries using this system?
Why is this feature not set to the current system used so it would suit both (metric and the complicated one) systems?
Somehow it doesn’t feel logical :exploding_head:

1 Like

I believe this software is developed in a country where inches are their system and we are fortunate to be able to use it. However these short falls and bugs should be addressed, but there seems no priority for this. Dynamic Components really does need a make over, but it would seem we have to put up with Live Components as the alternative, if or when the authorised version comes.

I would like to create a company workflow. I’m decent with speed and as I progress I’m getting used to SU.Rhino3D was used for my Furniture Design BFA, there are many similarities between Rhino and SU. I have some experience with Grasshopper (Rhino’s parametric equivalent to DC) and a few computer science classes, thus coding isn’t a complete mystery to me.

That’d be cool. I didn’t realize scheduling could be achieved in this instance, but definitely list population is an avenue I’d wish to pursue.

Profile builder sounds intriguing but I’m not familiar, I have that OCL extension and find it exceedingly useful.

My workflow is to create in SU, utilizing group/DC description to notate, then I bounce the project to Layout and copypasta details from the model. There might be better ways to do it but I’m not smart enough to figure it out yet, but I’ll get there.

Which is so weird because we here in the US officially utilize metric for our weights and measures, however colloquially we use imperial. I worked in a shop that used both and, boy, we had a ton of waste due to communication breakdown.