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.
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
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.
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
placed entities and try again.
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.
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.
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.
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:
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
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!
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:
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
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.
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
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.
These constraints establish values for quantified constraints.
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
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
These constraints involve non-quantifiable relationships between two entities.
The constraints are unlabeled in the sketch.
Tangency can be established between a line or
line segment and a circle or
arc by selecting the two entities.
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.
Two circles or arcs
can be made concentric by
selecting each of them separately.
Two lines or segments
can be selected and constrained to be parallel to each other
or perpendicular with one another.
This operation is not currently implemented.
This constraint fixes a geometry within the plane.
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