Number Of Legs (Integer) Max Spacing (Length) Auto Spacing (Yes/No) Spacing Calc (Integer) ((Width - (Leg Offset * 2)) / Max Spacing) Number Of Legs Calc (Integer) if(Spacing Calc Adjust, (Spacing Calc + 1), Spacing Calc) Number Of Legs Actual (Integer) if(Auto Spacing, Number Of Legs Calc + 1, if(Number Of Legs < 2, 2, Number Of Legs)) Spacing Calc Adjust (Yes/No) ((Width - (Leg Offset * 2)) / Max Spacing) > Spacing Calc How It Works If #Auto Spacing# is on (checked), the family will perform a calculation to evenly space legs, with a user-chosen maximum spacing (#Max Spacing#). If it is not, the family will place as many legs as the user chooses (#Number Of Legs#). #Spacing Calc# divides #Width# (minus #Leg Offset# times two, to get the actual distance between the end legs and not the overall width) by #Max Spacing# to get an integer. Due to rounding when using an Integer parameter, we need to check if #Spacing Calc# is rounding down. #Spacing Calc Adjust# checks to see if #Spacing Calc# is smaller than #Width# divided by #Max Spacing#. If it is, #Spacing Calc# is rounding down. #Number Of Legs Calc# calculates the number of legs needed. If #Spacing Calc Adjust# is true (checked), then it adds 1 to #Spacing Calc#, if false (unchecked) it uses #Spacing Calc#. #Number OF Legs Actual# is the parameter used in the legs array. If #Auto Spacing# is checked, it uses #Number Of Legs Calc# + 1 (the +1 is to account for the end leg). Otherwise, it uses #Number Of Legs#, if #Number Of Legs# is not less than 2. If #Number Of Legs# is less than 2, it uses 2 (less than 2 will break the array). These formulas could have all been placed in one parameter (#Number Of Legs Actual#), they have been broken up for clarity and ease of use.