**INHALTE**

# Sketch-based Design

Quicksketch is a 2D- and 3D-modelling tool for pen-based computers. It allows the user to define a model by simple sketching directly on the screen of a pen-based computer. Exact shapes and geometric relationships are interpreted from the pen strokes.

The system can also be used to sketch 3D solid objects and B-spline surfaces. These sketched objects may be subsequently refined by defining 2D and 3D geometric constraints. **Quicksketch** is especially useful as a front-end to more sophisticated modelling, rendering, and animation systems.

- Animated Quicksketch Demo (mpeg, 8 MB) - on a pen-based Concerto laptop, Intel 486

Instroduction

**Quicksketch** is a 2D- and 3D-modelling tool for pen-based computers. It allows the user to define a model by simple sketching directly on the screen of a pen-based computer. Exact shapes and geometric relationships are interpreted from the pen strokes.

The system can also be used to sketch 3D solid objects and B-spline surfaces. These sketched objects may be subsequently refined by defining 2D and 3D geometric constraints. **Quicksketch** is especially useful as a front-end to more sophisticated modelling, rendering, and animation systems.

Sketch Interpretation

The user sketches 2D lines, circular arcs, full circles, and B-spline curves directly on the pressure-sensitive LCD screen of a laptop computer:

The stroke is sampled as a sequence of points from which the program interprets the type of shape:

Once the type is determined, the closest fit to the stroke is determined using different numerical techniques, depending on the shape type.

Once the closest-fitting primitives have been determined, the system interprets whether certain relationships exist between them (e. g., whether two curves are adjacent, whether two adjacent lines are at a right angle, etc). If such a relationship is found within tolerance, the parameters of the primitives are altered to establish an exact relationship.

Interpretation of such relationships between primitives is demonstrated in the following example. A sequence of strokes is sketched:

**Quicksketch** automatically recognizes adjacencies and right angles and subsequently cleans up the drawing:

System Behavior and Feedback

Because sketched shapes are typically not exact, Quicksketch must apply tolerance to interpret shapes and the relationships between objects. The program takes into account a number of evaluated and user-defined parameters to interpret pen strokes. These include:

- Modes: The program features several user preference modes. For instance, in technical drawing mode, lines and circular arcs, right angles and tangencies, parallel lines, and concentric circles are preferred. However, in free form mode, B-spline curves and tangencies are preferred.
- Significance: The longer a curve is, the more accurately its relative global features will be drawn.
- Speed: An object sketched very quickly will generally be less accurate than one drawn slowly and carefully. The faster an object is drawn, the larger is the tolerance used in its interpretation.
- Skill: The user can also set a skill factor appropriate to his or her skill level. The more skilled a user is, the less his or her drawing should need to be revised.

Editing with Gestures and Soft Constraints

Gestural Manipulation: Quicksketch allows for interactive manipulation of sketches by dragging the control points displayed in the drawing. Previously established constraints are maintained while dragging. «Gestural manipulation» is introduced to disambiguate the interaction for underconstrained drawings, taking the direction of the stroke into account.

The direction of the pen stroke is used to determine the effect a manipulation will have. The direction of the stroke is compared against the direction of each line adjacent to the point picked. In the case of circles or B-spline curves, the control polygons are used as a reference. If the stroke is along such an existing line, the constraint solver attempts a 1D degree of freedom motion in this direction.

The following examples show how the system reacts when dragging points of a profile, with a circular arc tangent to two lines, and two right angles at both ends:

*Soft Constraints:* Even with gestures, the reaction to manipulations may still be ambiguous in highly underconstrained systems. Implicit, or «soft», constraints provide greater predictability when manipulating underconstrained drawings.

Soft constraints are only observed if they do not contradict any explicit, or «hard», constraints. Each type of soft constraint is associated with a mode-dependent weight, interpreted as a «penalty» for violating that constraint (hard constraints have a penalty of infinity).

When manipulating an object, the constraint solver evaluates different ways of transforming an object while dragging. For any given plan, the sum of the violated soft constraints is evaluated, and in the end the plan with the least total penalty is used.

In **Quicksketch**, predefined penalty weight sets are provided, which can be associated intuitively with specific geometric behaviors:

- Rigid mode: A high penalty is associated with violation of distance and slope constraints. No penalty is associated with position and slope constraints. This causes concatenated primitives to be translated as a rigid object.
- Stretch mode: No penalty associated with distance constraints. High penalty for violating slope and angle constraints. The penalty on position constraints localizes the transformation, causing objects to be stretched more locally.
- Bend mode: No penalty for angle constraints, but the system tries to maintain distances, causing a kind of bending or shearing transformation.
- Free mode: Only position constraints carry a penalty. This leads to free local deformation, maintaining nether angles nor distances.

Sketching in 3D

The system accommodates two methods to model 3D objects by sketching: extrusion surfaces can be generated by sweeping a 2D profile along a straight line, and ruled surfaces can be defined between two sketched curves.

For instance, the mechanical part sketched in the first figure is recognized by **Quicksketch** as circular arcs and lines:

The 2D profile can then be extruded into the 3D with a single pen-stroke. Figures can also be sketched on the flat surfaces and subsequently extruded with just a pen stroke:

Finally, the data can be exported to a rendering program or other solid modelling program for post processing:

Another example of 3D drawing generated with the **Quicksketch** system:

Sketching B-Spline Surface

See also new **Quicksketch** for free-form surfaces: Sweeping a circular arc along a B-spline curve in **Quicksketch** generates a sweep surface:

A surface of revolution can be created by sketching approximately symmetric silhouettes in the x/y plane. **Quicksketch** determines the axis of symmetry to be parallel to either the x-axis or the y-axis:

References

**Lynn Eggli, Ching-yao Hsu, Beat D. Brüderlin, Gershon Elber:***Inferring 3D Models from Freehand Sketches and Constraints.*

Computer-Aided Design, 29(2):101-112, Februar 1997.

**Lynn Eggli, Beat D. Brüderlin, Gershon Elber:***Sketching as a Solid Modeling Tool.*

in: Chris Hoffmann, Jarek Rossignac (Eds.): *Proceedings of the Third ACM Symposium on Solid Modeling and Applications (SMA '95), Salt Lake City, UT, USA, 17-19 May 1995.* ACM Press, New York, NY, USA, 1995, pp. 313-321.

**Lynn D. Eggli:***Sketching with constraints.* Master's thesis, Department of Computer Science, University of Utah, February 1994.