Hostname: page-component-74656f9884-8r8nv Total loading time: 0 Render date: 2026-11-07T09:57:59.909Z Has data issue: false hasContentIssue false

Constraint solving for direct manipulation of features

Published online by Cambridge University Press:  09 November 2006

DANIEL LOURENÇO
Affiliation:
Instituto Superior Técnico, Technical University of Lisbon, Lisbon, Portugal
PEDRO OLIVEIRA
Affiliation:
Instituto Superior Técnico, Technical University of Lisbon, Lisbon, Portugal
ALEX NOORT
Affiliation:
Faculty of Electrical Engineering, Mathematics and Computer Science, Delft University of Technology, Delft, The Netherlands
RAFAEL BIDARRA
Affiliation:
Faculty of Electrical Engineering, Mathematics and Computer Science, Delft University of Technology, Delft, The Netherlands
Rights & Permissions [Opens in a new window]

Abstract

In current commercial feature modeling systems, support for direct manipulation of features is not commonly available. This is partly due to the strong reliance of such systems on constraints, but also to the lack of speed of current constraint solvers. In this paper, an approach to the optimization of geometric constraint solving for direct manipulation of feature dimensions, orientation, and position is described. Details are provided on how this approach was successfully implemented in the Spiff feature modeling system.

Information

Type
Research Article
Copyright
© 2006 Cambridge University Press
Figure 0

(a) A through hole feature and (b) its parameters. [A color version of this figure can be viewed online at www.journals.cambridge.org]

Figure 1

(a) The feature model with the slanted slot that is interactively manipulated by the designer, (b) the names of the relevant entities of the model, and (c) the relevant relations in the model.

Figure 2

(a) The part of the constraint model of the feature model of Figure 2 that is relevant for manipulation of the width of the slanted slot and (b) the constraint model that is derived from it to find the parts in the model that are rigid during this manipulation.

Figure 3

The manipulation constraint model consists of (a) a constraint variable for each well-constrained part and (b) the constraints from the original model that relate constraint variables of different rigid parts.

Figure 4

Each outcome of solving the manipulation constraint model is propagated to the feature model, which is smoothly modified from (a) to (b).

Figure 5

A high-level constraint graph for the simple model of Figure 1, consisting of a base block and a through hole.

Figure 6

An example Kramer graph (Dohmen, 1998). [A color version of this figure can be viewed online at www.journals.cambridge.org]

Figure 7

The mapped Kramer geometric variables and constraints of a cylinder.

Figure 8

An iconic representation of the solving process for the Kramer graph of the cylinder in Figure 8. The geoms are represented by the larger blocks that contain coordinate axes, and the constraints are represented by the smaller rounded rectangles. The constraints that are represented by the shaded rectangles are the ones that have already been processed. (a) Initial graph, (b) two constraints processed, (c) rigid joint detected, (d) merge geoms, (e) two constraints processed, (f) rigid joint detected, (g) merge geoms, and (h) solution found. [A color version of this figure can be viewed online at www.journals.cambridge.org]

Figure 9

The computation of the preprocessed Kramer graph.

Figure 10

Solving for each interaction step of the parameter modification.

Figure 11

An example of a benchmark model used in the performance tests. [A color version of this figure can be viewed online at www.journals.cambridge.org]

Figure 12

Solving times of the Kramer solver (ms) for two different parameter modifications on three benchmark models as in Figure 12