# Input of Geometric Entities and Constraints

Since the goal of the profile editor is to be able to sketch an object easily and complete the specification of the object by adding constraints, the user interface for input and editing of the sketch is a crucial component of the editor. The basic principle underlying the input mechanism for the interface is a commit-when-released protocol. That is, when performing any type of interface operation, the mouse button is held down throughout the operation and only when the mouse button is released is the operation actuated. This feature will be emphasized in the sections below.

## Geometric Entities

There are two basic functions of geometric entities in the sketch. One is as a component of the final object; these are referred to as primary entities. The other type of entity is an auxiliary entity. These are not part of the geometry of the final object, but instead are used to further constrain the geometric elements of the goal object. In this section we demonstrate how to input the geometric entities.

### Primary Geometric Entities

Input of primary geometric elements begins by selecting Object from the menu bar along the right side of the screen. The particular entity to be drawn is then selected from the menu appearing below Object in the menu bar. As the input techniques are described, an example is developed interactively. New users may find it necessary to Delete erroneously placed entities and try again.

#### Point

A point is placed by moving the cursor to the desired location while holding down the left mouse button, and then releasing the mouse button. Input of a point can also be accomplished by simply clicking left at the desired position. Try inputting several points configured as shown.

Figure 1:

```
```

A point can also be placed on a pre-existing geometric entity by holding down the middle mouse button and moving the cursor near the previously placed entity. Releasing the mouse button when the desired entity is highlighted creates the point. This operation automatically inserts an On constraint between the point and the selected entity.

#### Line

A line is determined by a position and a direction. The position is selected by pressing any mouse button down. Holding the button down while moving the mouse, one can display all possible lines containing the selected position. Releasing the button chooses a particular line. Notice that the position selected is not marked by a point. To try out the Line operation, place a frame around the points previously drawn by drawing four lines near the boundary of the screen.

#### Circle

A circle is determined by a center and a radius. To generate a circle, press the left mouse button at the desired center position. While holding the button down, move the cursor away from the center position to the desired radius, and release the button. In general, creating a circle creates a center point for the circle, however this can be overridden by using the right mouse button to create the circle. Also, a pre-existing point can be used as the center of the circle. This is accomplished by holding down the middle mouse button and moving the cursor near the desired point until it is highlighted. The middle button is then released, and the left button engaged to set the radius of the circle as before. Add a small circle about each of the upper two points of the triangle, concentric with the points. Then add a circle with no center point, placing the cursor near the midpoint of the triangle formed by the three original points to begin the circle. The radius should be large enough to contain all three points and the two previously drawn circles. Your picture should look something like this:

Figure 2:

```
```

#### Segments

Connected line segments are created by pressing the left mouse button down at the root point of the first segment. Holding the button down, a track line will be displayed as the mouse moves. Releasing the button places a point at the end of the tracked segment. By pressing and holding the left button again, the tracking begins again, this time with the root point the final point of the previously placed segment. This process continues until a new selection is made in the menu bar, or until the right mouse button is clicked in the drawing window. The root vertex of the first segment of a group of line segments can be placed on a pre-existing vertex by holding down the middle button and moving the cursor until the desired vertex is highlighted. The middle button is released and the left button engaged to begin tracking as before. As the track line crosses pre-existing geometries, these entities are highlighted. Middle and end points of a group of segments can be placed on previously existing entities by releasing the left mouse button when the desired entity is highlighted.

To try out these operations, add line segments to your picture so it looks like this:

Figure 3:

```
```

A possible sequence of steps is the following: Add a line segment starting near the bottom frame line of your picture, and ending at a point near the bottom of the large circle at the top of your picture. Then add two more line segments at the bottom of the picture, using the middle button to select the pre-existing vertex as the start of each line segment. Finally, add a sequence of two line segments in the middle of the picture, with the middle vertex lying on the first line segment you drew. Don't forget to click right to terminate each sequence of line segments!

#### Arc

An arc is determined by three points: two points delimiting the arc on the circle, and third point on the curve between the first two selected points. A pre-existing vertex can be selected as any of the three points by holding down the left button and moving the cursor until the desired point is highlighted. Any of the three points can be placed on a pre-existing entity other than a point by holding down the middle button until the desired entity is highlighted, and then releasing the button. Finally, after the first two points are positioned, the arc is tracked during placement of the third point by holding down the left button while moving the mouse.

Complete your input demonstration picture by adding an arc near the bottom of the large circle:

Figure 4:

```
```

#### Chain and Face

These entities are not relevant to the two-dimensional profile editor as presented here. Further details about these entities can be found in [7].

### Auxiliary Geometric Entities

The menu of auxiliary geometries is available by selecting Auxiliary from the menu bar along the right side of the screen. Auxiliary geometries available are points, lines, and circles, which are input exactly as their primary entity counterparts. Additionally, an auxiliary two-dimensional perpendicular axis system can be input by positioning the cursor at the location of the origin and pressing and releasing any mouse button. The axes provide a way to eliminate rigid body transformations of the sketch in the plane.

## Constraints

The menu of constraints which can be place on the geometric entities is displayed by selecting Constraints from the menu bar along the right side of the screen. In this section we describe how to assign constraint values, and what constraints can be assigned between pairs of entities.

### Selection of Geometric Entities

In order to place a constraint between two entities, a device must be available to allow selection of the two desired entities. The profile editor allows selection in two ways. First, as described throughout the input section above, geometric entities can be selected by holding down the left mouse button until the desired entity is highlighted. Release of the button then selects the entity. The decision of what entities are near the cursor is made using a partition of the screen to determine the sensitivity of the mouse. This sensitivity factor can be adjusted using the control bar in the lower right corner of the panel.

In complicated sections of a sketch, it may be difficult to select the desired object due to interference from other objects even with a fine partition. The second method of selection overcomes this difficulty. This mode entails holding down the SHIFT key while selecting a region of the screen. When the area of interest is highlighted, release the mouse button first, and then the SHIFT key. A popup menu will be displayed with a list of all the entities highlighted, and the desired entity can be selected from the list. The names in the list are each associated with a entity in the sketch. By default, the labels of the entities are not displayed. However, these labels can be displayed using the Object Labels option in the View menu.

### Dimensioned Constraints

These constraints establish values for quantified constraints.

#### Distance

A constraint is placed on the distance between two entities by selecting the two entities and then clicking at the desired position of the constraint label. Distance constraints can be computed between pairs of points or a point and a line or segment.

#### Angle

An angle constraint can only be placed between pairs of lines or line segments. The two elements are selected, and the position of the constraint label selected. There are two or more possible regions for the angle, and the choice of region affects the solution selection.

The radius of a circle or arc can be dimensioned by selecting the geometric element and a position for the dimension label location. This is a fixed dimension, and will not be modified by the constraint solver when attempting to solve the configuration.

### Non-dimensioned Constraints

These constraints involve non-quantifiable relationships between two entities. The constraints are unlabeled in the sketch.

#### Tangent

Tangency can be established between a line or line segment and a circle or arc by selecting the two entities.

#### On

The On relationship can be established between a point and any other entity by selecting the point and the other entity in either order. Notice that the On constraint is often established as a by-product of the geometric input aspect of the program.

#### Concentric

Two circles or arcs can be made concentric by selecting each of them separately.

#### Parallel/Perpendicular

Two lines or segments can be selected and constrained to be parallel to each other or perpendicular with one another.

#### Align

This operation is not currently implemented.

#### Fixed

This constraint fixes a geometry within the plane.

## Viewing Operations

Several viewing operations are available in the display window. When no input or editing buttons are activated, the right mouse button zooms and pans the image. The middle mouse buttons allows translation of the image in the display window.