[Click for the bga-8.fe datafile in a second window.]
This model uses a one-parameter "boundary" to implement
the rim of the top pad, to keep rim vertices evenly spaced
when moving.
Notable features:
Boundary 1 replaces constraint 4 for vertices on the rim
of the top pad. By defining vertices in terms of their boundary
parameters, the vertices move evenly when "offset" is changed.
Note the name of the boundary parameter is "p1". This is
hard-wired in. Higher-dimension boundaries would have parameters
p2, p3, etc.
Getting the center point of the upper pad
to move evenly with the rim points
isn't absolutely necessary, but I did it here by defining "boundary 2"
just to accommodate the center point. This also required putting the
center point and all the upper pad radial edges explicitly into the
datafile.
One might think that one could use a two-parameter boundary with
polar coordinates to do the whole top pad. But then there is a
problem when refining with keeping the rim circular, since one can't
have level-set constraints on boundary vertices.