Fig。 7 shows one of the gussets corners for the tray carton with the cut between the two faces exaggerated。 The following are the
function resolve_guss12
{
var mspc_guss1_turn:ax; var mspc_guss2_turn:ax;
rule( edge_guss1_01:e2 on edge_guss2_00:e2 ); rule( mspc_guss1_turn:ax 。ge。 0。0 );
rule( mspc_guss1_turn:ax 。le。 180。0 );
rule( mspc_guss2_turn:ax 。ge。 0。0 ); rule( mspc_guss2_turn:ax 。le。 180。0 );
}
The first four of these commands declare the names of the lines and the two pairs of model spaces used。 These are then defined, with the model spaces embedded in each other appropriately and the lines similarly associated with their local spaces。 The lines are defined in an anticlockwise sequence around each face。 It is within the function that the constraints are specified。 The rotations about the relevant local x-axes are specified as being variable when the constraints are resolved。 The first constraint specifies that the second end points of the two given lines should be coincident。 The other four constraints limit the angles of rotations so that these lie between zero and 180◦。
When the function is invoked within the constraint modeller, the system automatically adjusts the values of the two angles in a search for values which allow all the constraints to be satis- fied。 There is generally a unique solution to this problem。 The ex- ception is when the neighbouring side walls have been turned through 90◦。 Here the short edges of the gusset faces, those about which they rotate locally, are together and there are infinitely many angles which allow the above constraints to be satisfied。 (The constraint modeller is set up to find just one solution and this is normally the same as that found in the previous step of a simula- tion。) From the point of view of simulating the process, this is in- convenient。 So the net is modified by introducing ‘‘dummy’’ faces of zero width between each gusset face and its neighbouring side panel。 This adds extra nodes and edges to the face graph and to its spanning tree, and allows the specification of additional angles for the simulation process。 The angles of these faces are kept at zero as the side walls are rotated and the gussets move inwards。 Then the angles of the dummy faces are varied over a range of 45◦。 The gusset constraints remain satisfied as this is done as their angu- lar values do not change。 This allows the simulation to show the gusset flaps being folded back against the double walls as in the passage between steps 4 and 5 in Fig。 1。 Specifying the appropriate sequence of angles for the edges in the spanning tree and resolv- ing the constraints at each stage allows the full simulation shown in that figure to be run。
The advantage of the constraint-based approach is that it allows investigation of different closing strategies by varying the driving angles while using the same commands to assemble the carton and perform the simulation。 For example, the options of closing the side walls at different speeds can be investigated。 In the simulation shown in Fig。 1, these are driven at the same speed。 This leaves the gusset flaps pointing into the tray at 45◦ to the sides。 In fact, even at this angle, it is possible for the double walls to fold over, cap- ture and retain them。 However driving the longer side wall more quickly than the shorter (double) walls has the effect of forcing the gussets flaps to lie closer to the short walls, thus making their capture more certain。 A stage in the simulation of this is shown in Fig。 8。 This simulation is obtained simply by modifying the se- quence of driving angles defined for the edges in the spanning tree。
4。Gable-end skillet
As a second example, consider the carton stages in whose erection are shown in Fig。 9。 The form of the top of the carton is called a ‘‘gable-end’’ and it is also composed of a number of gussets。 The net for the carton is shown in Fig。 10 along with its face graph。 When the carton is produced, the initially flat net is folded along the edges between faces 2 and 3 and between faces 12 and