The Join/Split Button: Join or Split Objects

The Join/Split button in the Edit Menu brings up the Join or Split Objects panel. This panel contains controls for
setting defaults and initiating join and split operations. These
operations are identical to those available from the !join and
!split text commands.

The panel contains the following controls:

No limits in join operation
This check box unsets the limits on the complexity of polygons that
are created during the merge, by setting the JoinMaxPolyVerts,
JoinMaxPolyGroup, and JoinMaxPolyQueue variables to
``0'' (zero).

Maximum vertices in joined polygon
This provides an entry area for setting the value of the JoinMaxPolyVerts variable, which limits the number of vertices
allowed in a polygon created as the result of a join operation.

Maximum trapezoids per poly for join
This provides an entry area for setting the value of the JoinMaxPolyGroup variable, which places a limit on the number of
connected trapezoids that can be used to form a polygon.

Trapezoid queue size for join
This provides an entry area for setting the value of the JoinMaxPolyQueue variable, which provides a limit on the number of
trapezoids that can be considered for joining into polygons in a
single pass.

Clean break in join operation limiting
When this check box is set, Xic will attempt to break polygons
where the vertex limit is reached into pieces so that the boundaries
are more visually attractive. This tracks the state of the JoinBreakClean variable.

Include wires (as polygons) in join/split
If this check box is set, wire objects will be included in join/split
operations, treated as polygons. If not checked, wires are ignored in
these operations. This tracks the state of the JoinSplitWires
variable.

Join
This push button initiates a join operation on selected objects. All
suitable selected objects will be joined on their respective layers,
as for the !join command without an argument. Unlike other
commands that join (merge) objects, this overrides the NoMerge
technology attribute if set on an object's layer.

Join Lyr
This will join objects on the current layer, whether selected or not.
The layer must be visible, and not have the NoMerge technology
attribute set. This is equivalent to the !join command with the
``layer'' argument.

Join All
This push button initiates a join operation on all objects in the
current cell, selected or not. It applies to objects on visible,
selectable layers that do not have the NoMerge technology
attribute applied. This is the same as the !join command with
the ``all'' argument given.

Split Horiz
This will decompose complex polygons into a collection of trapezoids
(boxes and simple polygons in the database) that collectively cover
the same area and do not overlap. The splitting is performed using
horizontal scan lines. This is the same effect as the !split
command. Wire objects will also be split if the JoinSplitWires
variable or the corresponding check box is set.

Split Vert
This will also decompose complex polygons into a collection of
trapezoids, however vertical scan lines are used. This is the same
effect as using the ``v'' argument to the !split command.
Wire objects will also be split if the JoinSplitWires variable
or the corresponding check box is set.