Now that I've solved the problem of automatically placing and spacing connection points on a shape, I'm looking to constrain re-sizing the shape.
I can set up constraints using a BOUND function, like this:
BOUND(,0,FALSE,2*User.CnxnXOffset,2*User.CnxnXOffset,FALSE,2*User.CnxnXOffset+User.CnxnSpacing,2*User.CnxnXOffset+User.CnxnSpacing,FALSE,2*User.CnxnXOffset+2*User.CnxnSpacing,2*User.CnxnXOffset+2*User.CnxnSpacing,FALSE,2*User.CnxnXOffset+3*User.CnxnSpacing,2*User.CnxnXOffset+3*User.CnxnSpacing,FALSE,2*User.CnxnXOffset+4*User.CnxnSpacing,2*User.CnxnXOffset+4*User.CnxnSpacing,FALSE,2*User.CnxnXOffset+5*User.CnxnSpacing,2*User.CnxnXOffset+5*User.CnxnSpacing,FALSE,2*User.CnxnXOffset+6*User.CnxnSpacing,2*User.CnxnXOffset+6*User.CnxnSpacing)
My question is this: Is there a shorter or better way to do this? And my reason for asking is that I need to extend this capability out to the equivalent of 30 "segments:
That is, up to "...FALSE,2*User.CnxnXOffset+30*User.CnxnSpacing,2*User.CnxnXOffset+30*User.CnxnSpacing," and that just seems to be an overly unwieldy function.
I think the bound function requires this approach. It might be possible to do something with mod function to mathematically generate points without having to hard code each one.
Never tried.
Wapperdude
Generate points? The points are already taken care of. As the subject indicates, I'm trying to constrain how the shape re-sizes, based on the User-defined CnxnOffset and CnxnSpacing. Right now, the shape Width is governed by
=BOUND(,0,FALSE,2*User.CnxnXOffset,2*User.CnxnXOffset,FALSE,2*User.CnxnXOffset+User.CnxnSpacing,2*User.CnxnXOffset+User.CnxnSpacing,FALSE,2*User.CnxnXOffset+2*User.CnxnSpacing,2*User.CnxnXOffset+2*User.CnxnSpacing,FALSE,2*User.CnxnXOffset+3*User.CnxnSpacing,2*User.CnxnXOffset+3*User.CnxnSpacing,FALSE,2*User.CnxnXOffset+4*User.CnxnSpacing,2*User.CnxnXOffset+4*User.CnxnSpacing,FALSE,2*User.CnxnXOffset+5*User.CnxnSpacing,2*User.CnxnXOffset+5*User.CnxnSpacing,FALSE,2*User.CnxnXOffset+6*User.CnxnSpacing,2*User.CnxnXOffset+6*User.CnxnSpacing,FALSE,2*User.CnxnXOffset+7*User.CnxnSpacing,2*User.CnxnXOffset+7*User.CnxnSpacing,FALSE,2*User.CnxnXOffset+8*User.CnxnSpacing,2*User.CnxnXOffset+8*User.CnxnSpacing,FALSE,2*User.CnxnXOffset+9*User.CnxnSpacing,2*User.CnxnXOffset+9*User.CnxnSpacing,FALSE,2*User.CnxnXOffset+10*User.CnxnSpacing,2*User.CnxnXOffset+10*User.CnxnSpacing,FALSE,2*User.CnxnXOffset+11*User.CnxnSpacing,2*User.CnxnXOffset+11*User.CnxnSpacing,FALSE,2*User.CnxnXOffset+12*User.CnxnSpacing,2*User.CnxnXOffset+12*User.CnxnSpacing,FALSE,2*User.CnxnXOffset+13*User.CnxnSpacing,2*User.CnxnXOffset+13*User.CnxnSpacing,FALSE,2*User.CnxnXOffset+14*User.CnxnSpacing,2*User.CnxnXOffset+14*User.CnxnSpacing,FALSE,2*User.CnxnXOffset+15*User.CnxnSpacing,2*User.CnxnXOffset+15*User.CnxnSpacing,FALSE,2*User.CnxnXOffset+16*User.CnxnSpacing,2*User.CnxnXOffset+16*User.CnxnSpacing,FALSE,2*User.CnxnXOffset+17*User.CnxnSpacing,2*User.CnxnXOffset+17*User.CnxnSpacing,FALSE,2*User.CnxnXOffset+18*User.CnxnSpacing,2*User.CnxnXOffset+18*User.CnxnSpacing,FALSE,2*User.CnxnXOffset+19*User.CnxnSpacing,2*User.CnxnXOffset+19*User.CnxnSpacing,FALSE,2*User.CnxnXOffset+20*User.CnxnSpacing,2*User.CnxnXOffset+20*User.CnxnSpacing,FALSE,2*User.CnxnXOffset+21*User.CnxnSpacing,2*User.CnxnXOffset+21*User.CnxnSpacing,FALSE,2*User.CnxnXOffset+22*User.CnxnSpacing,2*User.CnxnXOffset+22*User.CnxnSpacing,FALSE,2*User.CnxnXOffset+23*User.CnxnSpacing,2*User.CnxnXOffset+23*User.CnxnSpacing,FALSE,2*User.CnxnXOffset+24*User.CnxnSpacing,2*User.CnxnXOffset+24*User.CnxnSpacing,FALSE,2*User.CnxnXOffset+25*User.CnxnSpacing,2*User.CnxnXOffset+25*User.CnxnSpacing,FALSE,2*User.CnxnXOffset+26*User.CnxnSpacing,2*User.CnxnXOffset+26*User.CnxnSpacing,FALSE,2*User.CnxnXOffset+27*User.CnxnSpacing,2*User.CnxnXOffset+27*User.CnxnSpacing,FALSE,2*User.CnxnXOffset+28*User.CnxnSpacing,2*User.CnxnXOffset+28*User.CnxnSpacing,FALSE,2*User.CnxnXOffset+29*User.CnxnSpacing,2*User.CnxnXOffset+29*User.CnxnSpacing,FALSE,2*User.CnxnXOffset+30*User.CnxnSpacing,2*User.CnxnXOffset+30*User.CnxnSpacing)
Which works perfectly fine. It's just a very long function!
By the way, here's my shape, with automatically-generated connection points and sizing constraints.
;D. Poor phrasing...by points, I meant step increments for sizing...that was the context of the topic.
By using modulus fcn, might be able to get shape steps mathematically without having to hard code each step.
Wapperdude