Hi Martin,
I think perhaps we might call this Swiss FB fixing type HV (Helvetian).
We can then get going with some code:
Would now be a suitable time for a discussion on a road map for 8 sided chairs?
Looking to the future, I would suggest you consider adding the concept of storing the various tables that are needed in files and providing maintenance frames, rather than hard coding them inside the program source.
When needed or on startup the tables could be loaded into memory as arrays.
Candidates would be:-
Family type (REA, GWR etc)
Rail type
Chair type (2d & 3D master component)
Plinth type (3D component of chair type)
Jaw type (3D component of chair type)
Screw Head (3D component of chair type)
Rail Seat (3D component of chair type)
Key type (3D component of jaw type or chair type?)
Clip type (3D component of chair, or could be treated as a jaw type)
Treat the Chair type as an assembly (as you do now in a way with 4-sided chairs) with the possibility of having:-
2D paras: 4 to 8 sides, 2 to 4 bolt holes
3D paras: 2 to 4 Screw Heads, 1 Plinth, 1 to 4 Rail Seats, 1 to 4 Outer Jaws, 1 to 4 Inner jaws, 1 to 4 Keys
(or for FB rail, 2 to 4 screw heads, 1 Plinth, 1 to 4 Rails Seats, 1 to 4 Outer Clips, 1 to 4 Inner Clips, 0 Keys
Or perhaps I am being too simplistic.
Steve