A 2D geometric constraint solver using a graph ... - Semantic Scholar

10 downloads 433889 Views 1002KB Size Report
edges. The edges are labeled with the values of the distance and angle dimensions. .... The nodes Vs of the skeleton are the nodes of the constraint graph that belong to several ... 6 shows an example of clusters placement. After placing the ..... S7. S10. S11. S8. S12. S3. 2 5 6 7 8 9. Fig. 18. Partial order of resolution. 1192.
Advances in Engineering Software 41 (2010) 1187–1194

Contents lists available at ScienceDirect

Advances in Engineering Software journal homepage: www.elsevier.com/locate/advengsoft

A 2D geometric constraint solver using a graph reduction method Samy Ait-Aoudia a,*, Sebti Foufou b a b

ESI – Ecole nationale Supérieure en Informatique, BP 68M O-Smar, 16270 Algiers, Algeria Laboratoire LE2i, UMR CNRS 5158 B.P. 47870, 21078 Dijon Cedex, France

a r t i c l e

i n f o

Article history: Received 30 March 2010 Received in revised form 15 June 2010 Accepted 19 July 2010

Keywords: Geometric constraints Modeling by constraints Graph-constructive solver Decomposition–recombination (DR) planning Graph algorithms Under-constrained problems

a b s t r a c t Modeling by constraints enables users to describe shapes by specifying relationships between geometric elements. These relationships are called constraints. A constraint solver derives then automatically the design intended by exploiting these constraints. The constraints solvers can be classified in four categories: symbolic, numerical, rule-oriented and graph-constructive solvers. The graph constructive approach is widely used in recent Computer Aided Design (CAD) systems. In this paper, we present a decomposition–recombination (DR) planning algorithm, called S-DR, that uses a graph reduction method to solve systems of 2D geometric constraints. Based on the key concept of skeletons, S-DR planner figures out a plan for decomposing a well constrained system into small sub-systems and recombines the solutions of these sub-systems to derive the solution of the entire system. Ó 2010 Elsevier Ltd. All rights reserved.

1. Introduction Geometric constraint solving has applications in many different fields, such as Computer Aided Design (CAD), molecular modeling, tolerance analysis, and geometric theorem proving. Geometric modeling by constraints enables users to describe shapes by specifying a rough sketch and adding to it geometric constraints, i.e. a set of required relations between geometric elements. The constraint solver must derive automatically the correct shape needed. Typically, in 2D, geometric modeling by constraints specifies geometrical objects such as points, lines, circles, conics by a set of constraints: distances between points, points and lines, parallel lines, angles between lines, incidence relations between points and lines, points and circles, tangency relations between lines and circles or between circles. Many resolution methods have been proposed for solving systems of geometric constraints. We classify the resolution methods in four broad categories: symbolic, numerical, rule-oriented and graph-constructive solvers. In symbolic methods, the constraints are translated into a system of equations. Methods such as Gröbner bases or elimination with resultants are applied to find symbolic expressions for the solutions. These methods are ‘‘extremely” time consuming. They

* Corresponding author. Tel.: +213 662 161451; fax: +213 215 16156. E-mail addresses: [email protected] (S. Ait-Aoudia), [email protected] (S. Foufou). 0965-9978/$ - see front matter Ó 2010 Elsevier Ltd. All rights reserved. doi:10.1016/j.advengsoft.2010.07.008

are typically exponential in time and space (see [4,15]). They can be used only for small systems. Numerical methods (Newton–Raphson’s iteration, homotopy, Gaussian elimination and so on) for solving systems of equations are O(n3) or worse (see [3,17,23,26]). Most numerical methods have difficulties for handling over- and under-constrained schemes. Some systems use a preprocess treatment to decompose the system of equations before launching the numerical solver (see [1,26]). We can also mention the use of Cayley–Menger determinants to yield simpler algebraic systems (see [21,31,32]). Other approaches optimize the resolution process by pruning the solutions space (see [25]). Foufou et al. [7] used efficient numerical methods to solve systems of constraints. Rule-based solvers rely on the predicates formulation (see [28– 30]). Although they provide a qualitative study of geometric constraints, the ‘‘huge” amount of computations needed (exhaustive searching and matching) makes them inappropriate for real world applications. Graph-constructive solvers are stemming from graph theory. They are based on the analysis of the structure of the constraint graph. The graph constructive approach provides means for developing sound and efficient algorithms (see [2,6,9,11,13,14, 18–20,22,24,27,33]). A decomposition–recombination (DR) planner, as defined by Hoffman et al. [12], figures out a plan for decomposing a constraint system into small sub-systems and recombines the solutions of these sub-systems to derive the solution of the entire system.

1188

S. Ait-Aoudia, S. Foufou / Advances in Engineering Software 41 (2010) 1187–1194

DR planners should have desirable properties such as solvability preserving, Church–Rosser property and completeness [12]. In this paper, we describe a decomposition–recombination planning method based on skeletons called S-DR algorithm that uses a graph based reduction method to solve systems of geometric constraints. During the decomposition phase, the constraint solver develops a plan to decompose the constraint graph into small sub-systems. A sequence of constructions steps is derived. During the recombination phase, an evaluation of the constructions steps (recombining solutions of the sub-systems) is made to derive the shape needed. This paper is organized as follows. The graph representation of the constraint problem is explained in Section 2. We present in Section 3, the core algorithm that handles structurally well constrained problems. In Section 4, we briefly compare our method with commonly used comparable methods. Section 5 gives conclusions.

D d4 E

d3

d2

d5

d6 A

Definition 3. A constraint graph G = (V, E) is structurally underconstrained if it is not over-constrained and the number of edges is less than 2n  3.

d7

d9

α

CD

D

d4

d3

E

C

d5

d2

AE

A

d8

d6 d1 F d7

β

BC

B

d9

G

(b) Fig. 1. A constraint problem (a) and its corresponding constraint graph (b).

We must mention that Laman’s theorem [16] is proved only for point to point distance constraints and that the extension of his definitions may imply incorrect cases. A typical example of such cases is given by a triangle constrained with three angle constrains. In Fig. 2 left, a triangle is constrained with three angle constraints (with a + b + c = 180°). The triangle is geometrically under-constrained but the constraint graph related to (Fig. 2 right) is well constrained. Another ‘‘drawback” of the graph constructive approach is due to the fact that it uses only the structure of the constraint graph and forgets numerical information. A constraint graph can be structurally well constrained but numerically under-constrained. The dimensioned scheme shown in Fig. 3 (left) is numerically under-constrained (the edges are labeled with distance arguments). Its corresponding constraint graph shown in Fig. 3 (right) is structurally well constrained. Nonetheless, with the graph constructive approach, such cases will be detected during the effective drawing of the intended design. The evaluation process will stop and indicate the occurred problem.

Definition 1. A constraint graph G = (V, E) where |V| = n (n > 1) and |E| = m is structurally well constrained if and only if m = 2n  3 and m0 6 2n0  3 for any induced sub-graph G0 =(V0 , E0 ), where |V0 | = n0 (n0 > 1) and |E0 | = m0 . Definition 2. A constraint graph G = (V, E) contains a structurally over-constrained part if there is an induced sub-graph G0 = (V0 , E0 ) having more than 2n0  3 edges.

B

G

2.1. Graph representation

Let us now give some definitions concerning the structural properties of the constraint graph. These definitions, used by all the graph-constructive solvers, are derived from Laman’s theorem (see [16]).

F

(a)

2. Constraints and graphs

2.2. Graph structure analysis

d1

d8

ED

Geometric modeling by constraints enables users to describe geometric elements such as points, lines, circles, line segments and circular arcs by a set of required relationships. Typical set of constraints consists of distance, angle, incidence, tangency, parallelism and perpendicularity relationships between geometric elements (see [5]). With some pre-processing, the geometric elements are reduced to points and lines, and the constraints to those of distance and angle (see [8]). In this paper, we will consider geometric elements in two dimensions that have two degrees of freedom and constraints that have a valency of one (a constraint ‘fix’ one degree of freedom of each object related to). This constitutes hypothesis H. We use an undirected graph G = (V, E) where |V| = n and |E| = m to represent the constraint problem. The geometric elements are represented by the graph nodes and the constraints are the graph edges. The edges are labeled with the values of the distance and angle dimensions. A dimensioning scheme defining a constraint problem is shown in Fig. 1a. It involves seven points and four lines. The constraints are: nine point–point distances, two line–line angles, eight point–line incidence constraints. The corresponding constraint graph is shown in Fig. 1b. The edges are labeled with distance or angle arguments. The unlabeled edges correspond to the point–line incidence constraints.

C

β

α

A

A

α β B

γ

AB

α AC

β γ

B

BC

C C

Fig. 2. An under-constrained problem (left) and its associated constraint graph (right).

1189

S. Ait-Aoudia, S. Foufou / Advances in Engineering Software 41 (2010) 1187–1194

1

A

B

0

1 D

A

B

Algorithm 1.

1 D

C

1

called the skeleton. The skeleton is a graph Gs = (Vs, Es) which is obtained by the algorithm given below.

C

Fig. 3. A numerically under-constrained problem (left) and its associated constraint graph (right).

3. Constraints solving A DR planner, that uses the constraint graph, proceeds by finding a sequence of graphs Gi (G1, G2, . . ., Gk). G1 is the initial constraint graph G. Every Gi containing well constrained sub-graphs (clusters) is simplified into a graph Gi+1 = Ti(Gi) where transformation Ti is called simplifier map operating on Gi. If the constraint graph G is structurally well constrained, then the process terminates when the graph Gk cannot be simplified further. We will often use the term cluster to qualify a particular sub-graph. 3.1. Basic clustering An important phase of the algorithm is the formation of what we call ‘‘basic clusters”. A cluster is a rigid geometric structure whose elements are known relatively to each other. A basic cluster in our meaning is a minimal dense graph and its sequential extension described in details by Hoffman et al. (see [10,11,13]). The minimal dense graph (cluster) is found by a network flow based algorithm called algorithm dense [10]. The minimal dense graph found is sequentially extended by adding more geometric objects one at a time, which are rigidly fixed with respect to the cluster. The extended cluster is called basic cluster. This process is applied repeatedly to find all basic clusters of the constraint graph. To illustrate this process, consider the constraint graph of Fig. 1. Three basic clusters are found: C1, C2 and C3 (see Fig. 4). Each of the geometric elements A, B and D belong to two clusters: the point A to (C1, C3), the point B to (C1, C2) and the points D to (C2, C3).

1. The nodes Vs of the skeleton are the nodes of the constraint graph that belong to several basic clusters (these nodes are marked with at least two basic clusters names). 2. The edges Es of the skeleton are obtained as follows: Es = £; For each basic cluster Ci Do { pick the nodes {N1, N2, . . ., Nj} of Ci that belong to Vs; triangulate the set {N1, N2, . . ., Nj} by doing: Add edge (N1, N2) to Es; For k = 3 to j Do Add edges (Nk, Nk1) and (Nk, Nk2) to Es; }

If an added edge (s, t) to Es is not a member of the initial set of constraints then we insert a ‘‘virtual” constraint whose value is easily determined because the nodes s and t belong to a rigid structure (a basic cluster). This is done to ease the resolution process. The concept of virtual constraints was first introduced by Owen [22]. The goal of the triangulation is to have a ‘‘simple” rigid structure for the skeleton. The ‘‘skeletonization” phase is computed in linear time. After constructing the skeleton, we form its basic clusters. If the skeleton consists of a single basic cluster, all its nodes are placed in the plane. Once the nodes of the skeleton are placed (computed), each cluster is positioned relatively to the skeleton by computing the three required parameters (two transitional and one rotational). The final scheme is then obtained. Note that each basic cluster shares with the skeleton at least two nodes. To illustrate this phase, consider the constraint graph of Fig. 1. Its skeleton is given in Fig. 5. The edges AD, AB and BD of this skeleton are ‘‘virtual” constraints. Fig. 6 shows an example of clusters placement. After placing the skeleton (see Fig. 5), the three found basic clusters C1, C2 and C3 are positioned (rotated and translated) relatively to this skeleton.

3.2. The skeleton of the constraint graph 3.3. Sequence of graphs When the basic clusters are found the transformation T described below will simplify the constraint graph G into a graph Gs

ED

C3

α

AE

CD

D

d4

d3

E

C

d5

d2 A

d8

d6 d1 F d7

B

β

C2

In a general case, our S-DR planner, will find a sequence of graphs Gi (G1, G2, . . ., Gk). G1 is the initial constraint graph G. Every Gi containing several clusters is simplified into a graph Gi+1 = Ti(Gi) where Ti is the transformation (simplifier map) giving the skeleton of Gi (Gi+1 is the skeleton of Gi). If the constraint graph G is structurally well constrained, then the process terminates when the graph Gk consists of one basic cluster.

D BC

d9

G

C1 Fig. 4. Example of constraint graph clustering.

A

B

Fig. 5. Skeleton of the previous constraint graph.

1190

S. Ait-Aoudia, S. Foufou / Advances in Engineering Software 41 (2010) 1187–1194

Claim 1. Under hypothesis H, S-DR is a valid DR planner with the Church–Rosser Property.

C2

C3 D

Proof. If the graph G1 is structurally well constrained, then all the graphs Gi are well constrained. The mappings Ti abstract each basic cluster to a rigid structure whose nodes are the shared nodes. Gi+1 is strictly smaller than Gi. The process of simplifications will terminates after k steps when Gk is a single basic cluster. At each step, the graph Gi+1 is obtained from Gi irrespective of the order of basic clusters formation. S-DR has then the Church–Rosser property. h

D

D

A

B A

B

C1

Claim 2. Under hypothesis H, S-DR is strictly solvability preserving, i.e. Gi is solvable , Ti(Gi) is solvable.

B A

Proof. In the case of DR planners using constraint graph, solvability preserving implies that the abstraction process does not transform well constrained sub-graphs or over-constrained sub-graphs to under-constrained parts and vice versa. In the S-DR planner, during the construction of the plan P = (G1, G2, . . ., Gk) the mappings Ti abstract each basic cluster to a rigid structure. If graph Gk is well constrained (rigid) so is the graph Gk+1. h

Fig. 6. Example of clusters placement.

Claim 3. S-DR is complete.

5

8

4

Proof. S-DR finds minimal dense graph at each phase. h S-DR figures out a DR plan when the input is typically a ruler and compass geometric construction. Practically, the solution is obtained when the basic clusters of the initial graph are positioned. The following algorithm abstracts the resolution process.

19

10

7

6

9 14

17

20

16

11 12

15

Algorithm 2.

1 G1 = G; i = 1; Solve (Gi) { Find the basic clusters of Gi; if (number of clusters) > 1 then begin Gi+1 :¼ Ti(Gi); Solve (Gi+1); Place clusters of Gi relatively to Gi+1; end; else/number of clusters = 1/ Place the nodes of Gi in the plane; end if; }

18

3

35

13

21

34

36 22

23

27 2

24

39

38

25 26

28

37

31 30

29

33 32

Fig. 7. A constraint graph G = G1.

3.4. Under-constrained graphs

S-DR uses the same core procedure as Condensing Algorithm (CA) and Modifier Frontier Algorithm (MFA) algorithms [13] to find clusters. It differs from the two algorithms in the simplifier mappings Ti (the way in which clusters are abstracted). The running time of the algorithm to run to completion is in O(n3(n + m)). To illustrate the sequence of graphs construction, consider the constraint graph G1 = G of Fig. 7 (all the nodes are points and the edges represent distances constraints). The graph G2 (skeleton of graph G1) is shown in Fig. 8. G2 is formed by three basic clusters. Its skeleton (the graph G3) is given in Fig. 9. G3 is the final graph of the sequence since it is constituted by one basic cluster. The construction phase places first G3 then G2 and finally G1.

If the constraint graph G is under-constrained, the process to obtain the sequence of graphs will identify the under-constrained parts. The first test is made by checking the number of shared nodes of a basic cluster with the other basic clusters (we assume that the constraint graph is connected). If a basic cluster share only one node then this entire cluster can ‘‘move” relatively to the other parts. To illustrate this operation, consider the constraint graph (G = G1) given by Fig. 10. Four basic clusters are formed: C1, C2, C3 and C4. The graph G2 (the skeleton of G1), given by Fig. 11, is well constrained, but the cluster C3 can rotate around the node C if it is a point, or move along the node C if it is a line.

1191

S. Ait-Aoudia, S. Foufou / Advances in Engineering Software 41 (2010) 1187–1194

4

10

7

13

18

Gj-1

Gj+1

Gj Fig. 12. Under-constrained graphs.

4. Comparison with other methods

2

26

30

33

Fig. 8. Graph G2.

7

In this section, we will compare our proposed S-DR algorithm for solving constraint graphs (where each vertex has two degrees of freedom and each edge reduces one degree of freedom of each object related to) with the two well known algorithms proposed by Hoffman et al. (see [13]) called Condensing Algorithm (CA) and Modified Frontier Algorithm (MFA). We have restricted ourselves to these algorithms because they are powerful and operate like S-DR algorithm.

4.1. Comparison with the CA method

26

30 Fig. 9. Graph G3.

A

C1

C2

B

C

C3

C4 Fig. 10. An under-constrained graph G1.

We will summarize here the CA method. The algorithm called Condensing Algorithm is applied repeatedly to constraint graphs to find minimal dense sub-graphs or clusters. A minimal dense cluster can be sequentially extended by adding more geometric objects one at a time, which are rigidly fixed with respect to the cluster. After a cluster has been thus extended, it is then simplified into a single geometric object, and the rest of the constraint graph is searched for another minimal dense sub-graph. The simplification of an extended cluster is done as follows: an extended cluster C is replaced by a vertex v of weight 3; all edges from vertices in C to a vertex w outside C are combined into one edge (v, w), and the weight of this induced edge is the sum of the weights of combined edges. After the simplification, another solvable sub-graph is found, and the process is continued until the entire graph is simplified into a single vertex. This process is illustrated by the sequence of simplifications of Fig. 13. Initially all vertices have weight 2, all edges have weight 1. The vertices connected by the heavy edges constitute sequentially extended clusters. After four simplifications, the original graph is replaced by one vertex. The CA method has a major drawback. It is not solvability preserving. Consider the constraint graph of Fig. 14. The vertex

A

The cluster C3 is linked to the skeleton by one node (the node C). We must add a constraint, that does not involve the node C, between the cluster C3 and another cluster (C1, C2 or C4) so that the entire configuration will be well constrained. The second test is made during the construction of the sequence of graphs Gi (G1, G2, . . ., Gk). The process will not terminate with one basic cluster. The process will terminate when Gj = Tj(Gj), i.e. Gj+1 = Gj (all the clusters are abstracted and the graph Gm is under-constrained). An illustrative example is given by Fig. 12. The clusters are attached to an under-constrained skeleton. The graph Gj must be rigidified by adding specific constraints so that the initial constraint graph will be well constrained.

G

H

B

F

C

C

Fig. 11. The graph G2.

E

D A

F

C B

E

D

A

I

3

(1)

(2) E 2

3

3

F

3 2

2

2 3

(3)

3

(4)

Fig. 13. A CA sequence of simplifications.

1192

S. Ait-Aoudia, S. Foufou / Advances in Engineering Software 41 (2010) 1187–1194

E

B

B F

A

E F

A G

C

G

C

D

D

D

O

O

H

H I

N

I

N

N

K

I

K J

M J

M

L L

Fig. 16. Basic clusters of G1 and the skeleton G2.

Fig. 14. An example of constraint graph.

15

E

14

12

F

9

16

10

13

4

11

S (3)

1

G

7

3

8 6

H

2

I K

5 Fig. 17. Constraint graph.

J

M

S12

L Fig. 15. CA simplified graph.

weights are 2 (each vertex has two degrees of freedom), the edge weights are 1 (each edge-constraint reduces one degree of freedom). The sub-graphs ABCDNO, EFHGID and NMKLIJ are all dense/solvable. Suppose the cluster S1 = ABCDNO was found and simplified into one vertex S of weight 3 (see Fig. 15). Now the graph is not dense/solvable any more (see [13]). The algorithm CA is not strictly solvability preserving. The removal of the vertices D and N (in the previous example) looses valuable information about the structure of the solvable graph. Contrary to CA algorithm, our S-DR planner solves the case given in Fig. 14 easily. Three basic clusters are found in the graph G1 and the process terminates with the graph G2 (see Fig. 16). 4.2. Comparison with the MFA method We will describe briefly here the MFA method. The way to find minimal dense clusters and their sequential extensions is similar to that of CA algorithm. MFA differs from CA in the clusters simplification process. Once a minimal or extended dense graph Si is discovered, the sub-graph induced by its internal vertices (i.e. not

S11

S3

S8 S10

2 5678 9

S2 12

4

S7

S5

4

9

S9

S1

S4

S6

2 13

10 11 1

12 13 14

14 15 16

Fig. 18. Partial order of resolution.

frontier) is contracted into one vertex (the core vertex) ci. This core vertex is connected to each frontier vertex v of Si by a combined edge whose weight is the sum of the weights of the original edges

1193

S. Ait-Aoudia, S. Foufou / Advances in Engineering Software 41 (2010) 1187–1194

15

15

14

12 10

9

16

13

14

12

4

11 1

7

3

9

16

10

13

4

11

8

6

1

2

7

3

8

Graph G1

6 2

5 15

Graph G1

14

12 10

5

9

16

13

4

11 1

Graph G3

2

14

12

2

A

9

B

2

4

15

1

14

12

2 C

9

16

13

4

Graph G2

2 1

2

A 2

Graph G5

Fig. 20. Sequence of graphs by generated S-DR.

B

2

15 14

3

9

16 H

3

2

Graph G8

2

B

2

E

2

2

14

3

9

H

3

2

Graph G10

2

B

2 2

I

9

3 2

Graph G11 2

2

2

B

Fig. 19. Some graphs generated by MFA.

connecting internal vertices to v. The frontier vertices, edges connecting them, and their weights remain unchanged. The weight

of the core vertex is chosen so that the density of the entire simplified cluster is exactly equal to 3 (i.e. the geometry dependant constant). This process of finding solvable sub-graphs Si and simplifying them is repeated, until the solvable Sk found is the entire remaining graph Gk. This process is illustrated by the sequence of simplifications of the constraint graph [13] shown in Fig. 17. Initially all vertices have weight 2, all edges have weight 1. The partial order of resolution of this example is illustrated in Fig. 18. Some graphs of the sequence of graphs generated by MFA algorithm are given in Fig. 19. We may note that eight core vertices are created in the sequence of simplifications that begins with the initial graph G1 and terminates with the graph G12. Some core vertices have a weight strictly greater than the geometry dependant constant 3. Our S-DR algorithm proceeds in a simpler manner than the MFA algorithm. The mappings Ti are simpler than mappings of MFA. Additionally, S-DR never creates additional vertex as does the MFA method with core vertices. Fig. 20 shows how to solve the previous constraint graph with S-DR method. Five basic clusters are found in the first phase. The constructed graph G2 is a basic cluster with four added virtual constraints. The process of graph construction terminates with G2. 5. Conclusion We have described and implemented a decomposition–recombination planning method based on skeletons called S-DR algorithm. S-DR uses a graph based reduction method to solve systems of geometric constraints. This method is strictly solvability preserving and can deal with 2D constraint graph where each vertex has two degrees of freedom and each edge reduces one degree of freedom of each object related to. S-DR also handles under-constrained configurations. Comparing to other decomposition– recombination methods, S-DR planner proceeds in an easiest way in the process of simplifications and abstractions.

1194

S. Ait-Aoudia, S. Foufou / Advances in Engineering Software 41 (2010) 1187–1194

Further studies must be conducted to deal with general constraint graphs, i.e. where vertices can have more than two degrees of freedom and constraints can reduce more than one degree of freedom of geometric entities related to. The 3D case must also be investigated with appropriate depth knowing that Laman’s theorem is no longer applicable even for points and distances. References [1] Ait-Aoudia S, Jegou R, Michelucci D. Reduction of constraint systems. In: ACM proceedings of compugraphics, Alvor, Portugal; 1993. p. 83–92. [2] Ait-Aoudia S, Brahim H, Moussaoui A, Saadi T. Solving geometric constraints by a graph-constructive approach. In: IEEE international conference on information visualization, London, England; July 1999. p. 250–5. [3] Allgower EL, Georg K. Continuation and path following. Acta Numerica 1993:1–64. [4] Anderl R, Mendgen R. Parametric design and its impact on solid modeling applications. In: Symposium on solid modeling and CAD/CAM applic; May 1995. p. 1–12. [5] Bettig B, Shah J. Derivation of a standard set of geometric constraints for parametric modeling and data exchange. Comput Aided Des 2001;33:17–33. [6] Bouma W, Fudos I, Hoffman CM, Cai J, Paige R. A geometric constraint solver. Comput Aided Des 1995;27(6):487–501. [7] Foufou S, Michelucci D, Jurzak JP. Numerical decomposition of geometric constraints. In: Proceedings of the 2005 ACM symposium on Solid and physical modeling, Cambridge, Massachusetts; 2005. p. 143–51. [8] Fudos I. Editable representation for 2D geometric design. Master’s thesis, Dept. of Computer Science, Purdue University; December 1993. [9] Fudos I, Hoffman CM. A graph-constructive approach to solving systems of geometric constraints. ACM Trans Graph 1997;16(2):179–216. [10] Hoffman CM, Lomonosov A, Sitharam M. Finding solvable subsets of constraint graphs. In: Proceedings of principles and practice of constraint programming, Linz, Austria, LNCS 1330, Springer; 1997. p. 463–77. [11] Hoffman CM, Lomonosov A, Sitharam M. Geometric constraint decomposition. In: Bruderlin B, Roller D, editors. Geometric constraint solving and applications. Springer; 1998. p. 170–95. [12] Hoffman CM, Lomonosov A, Sitharam M. Decomposition plans for geometric constraint systems, part I: performance measures for CAD. J Symb Computat 2001;31:367–408. [13] Hoffman CM, Lomonosov A, Sitharam M. Decomposition plans for geometric constraint problems, part II: new algorithms. J Symb Computat 2001;31:409–28. [14] Joan-Arinyo R, Tarrés-Puertas M, Vila-Marta S. Geometric constraint graphs decomposition based on computing graph circuits. In: Seventh international workshop on automated deduction in geometry, Shanghai; September 2008. p. 96–101.

[15] Kondo K. Algebraic method for manipulation of dimensional relationships in geometric models. Comput Aided Des 1992;24(3):141–7. [16] Laman G. On graphs and rigidity of plane skeletal structures. J Eng Math 1970;4(4):331–40. [17] Lamure H, Michelucci D. Solving constraints by homotopy. In: Symposium on solid modeling foundations and CAD/CAM applications; May 1995. p. 263–9. [18] Lamure H, Michelucci D. Qualitative study of geometric constraints. In: Brüderlin B, Roller D, editors. Geometric constraint solving and applications. Springer; 1998. p. 234–58. [19] Lee KY, Kwon OH, Lee JY, Kim TW. A hybrid approach to geometric constraint solving with graph analysis and reduction. Adv Eng Softw 2003;34:103–13. [20] Lomonosov A, Sitharam M, Hoffman CM. In: Smolka G, editor. Finding solvable subsets of constraint graphs. Springer LNCS 1330; 1997. p. 463–77. [21] Michelucci D, Foufou S. Using Cayley Menger determinants for geometric constraints solving. In: ACM symposium on solid modeling and applications, Genova, Italy; 2004. p. 285–90. [22] Owen JC. Algebraic solution for geometry from dimensional constraints. In: Symposium on solid modeling foundations and CAD/CAM applications; 1991. p. 397–407. [23] Perez A, Serrano D. Constraint base analysis tools for design. In: Second symposium on solid modeling foundations and CAD/CAM applications, Montreal, Canada; May 1993. p. 281–90. [24] Podgorelec D, Zalik B, Domiter V. Dealing with redundancy and inconsistency in constructive geometric constraint solving. Adv Eng Softw 2008;39:770–86. [25] Porta JM, Ros L, Thomas F, Torras C. A branch-and-prune solver for distance constraints. IEEE Trans Robot 2005;21(2):176–87. [26] Serrano D. Automatic dimensioning in design for manufacturing. In: Symposium on solid modeling foundations and CAD/CAM applications, Austin, Texas, US; 1991, p. 379–86. [27] Sitharam M, Oung JJ, Zhou Y, Arbree A. Geometric constraints within feature hierarchies. Computer Aided Des 2006;38(1):22–38. [28] Sunde G. Specification of shape by dimensions and other geometric constraints. Geometric modeling for CAD applications, North-Holland, IFIP; 1988. p. 199–213. [29] Suzuki H, Ando H, Kimura F. Variation of geometries based on a geometricreasoning method. Comput Graph 1990;14(2):211–24. [30] Verroust A, Schonek F, Roller D. Rule-oriented method for parametrized computer-aided design. Comput Aided Des 1992;24(3):531–40. [31] Yan L, Wenyin L. Engineering drawings recognition using a case-based approach. In: Proceedings of the seventh international conference on document analysis and recognition, Edinburgh, Scotland; 2003. p. 190–4. [32] Yang L. Solving geometric constraints with distance-based global coordinate system. In: International workshop on geometric constraint solving, Beijing, China; October 2003. [33] Zhang GF, Gao XS. Spatial geometric constraint solving based on k-connected graph decomposition. In: ACM symposium on applied computing, Dijon, France; 2006. p. 979–83.