## Terms and Definitions **Local coordinate system (LCS)** -- a coordinate system that determines a 3D object position with respect to the *World Coordinate System*. LCS is specified by the **origin point** and three vectors -- Z, X, Y axes that are always orthonormal for C3D Solver tasks. The LCS definition is related to **Transformation**. **Geometric object** -- the main subject of the C3D Solver calculations. It is a 3D object, such as a point, curve, surface, or LCS. C3D Solver supports a specific set of 3D geometry types listed in section [Supported geometry types](./Supported_geometry_types.md). Note that solid body abstraction for C3D Solver is presented as a group of geometric objects combined in a **Cluster** with a common LCS rather than a topological structure (C3D Modeler). See section [Geometric scene clustering, assembly modeling](./Geometric_scene_clustering_assembly_modeling.md). **Standard position** -- LCS which has the same origin point and axes as *the World Coordinate System*. **Transformation** -- with respect to C3D solver tasks, transformation of a geometric object using a combination of translations and rotations only. Mathematically, the transformation is presented in the form of a square 4x4 matrix -- the [Transformation Matrix](https://en.wikipedia.org/wiki/Transformation_matrix). It is convenient to use the transformation matrix for LCS representation, bearing in mind that any LCS can be the result of transforming from the *standard position* (see **Standard position**). Note that C3D Solver is used only for transformations that [retain the distance](https://en.wikipedia.org/wiki/Isometry) between any points of a geometric object. It means that C3D Solver does not support any transformations that distort the orthogonality or normality of LCS vectors, for example, scaling. **Rigid set or Cluster** -- a subset of geometric objects within a common LCS that C3D Solver sees as a geometric object being calculated. Clusters are used in a geometric model to represent solids and geometrically rigid subassemblies. Any geometric object of the LCS type can be a cluster in the Solver. **Geometric constraint** -- a relation that determines a link between two, three or more geometric objects that are called *constraint arguments*. Examples of geometric constraints: \"line L is parallel to plane P\", \"cylinder C is tangent to plane P\", \"distance between planes P1 and P2 is 10.0\", etc. **Constraint argument** -- a geometric object or a numeric parameter connected by a geometric constraint or dimension. **Geometric constraint system** -- a set of mutually related geometric objects. The geometric constraint system formulates a GCSP (geometric constraint satisfaction problem) the purpose of which is to find positions of 3D geometric objects that satisfy all the given constraints. **Initial approximation** -- coordinate values of all geometric objects and constraint system variables that the solver considers a state close to the target solution. The initial approximation generally satisfies the majority of constraints and is suggested as the starting condition of GCSP. The initial approximation also defines the solution which C3D Solver selects for tasks with a non-numerable set of solutions (see Under-defined constraint systems). C3D Solver may offer different solutions for the same system of constraints with different initial approximations. **Geometric constraint satisfaction problem (GCSP)** -- a task to transform a set of geometric objects with preliminary evaluations (Initial approximation) into a position that satisfies all the given constraints. In addition to the list of objects and constraints, the GCSP definition also includes the Initial approximation that affects the solution result. **Three-dimensional geometric solver** -- a software component that solves the problem of satisfying constraints for 3D objects. As part of the C3D Solver module, this component is technically referred to as GCM (***G**eometric **C**onstraint **M**anager*). Another component, GCE calculates planar objects (see [Two-dimensional geometric solver](../../../TWO-DIMENSIONAL_GEOMETRIC_SOLVER/Two-Dimensional_Geometric_Solver_en.md)). **Well-defined constraint system** -- a geometric constraint system that has a single possible solution or a finite range of solutions. **Inconsistent constraint system** -- a constraint system with no solution. A constraint system that has at least one solution is, accordingly, referred to as **Consistent**. **Under-defined constraint systems** -- a geometric constraint system with infinite solutions. **Over-defined constraint system** -- a constraint system that includes constraints which, if removed, do not affect the set of solutions or transform an inconsistent system into a consistent system. Redefined constraint systems usually include unnecessary constraints, the removal of which either does not affect anything or eliminates inconsistencies. **Dimensional constraint or Dimensions** -- a geometric constraint that includes a numeric parameter argument that measures distance or angle between two geometric objects. The numeric value of this parameter is called the **Dimension value**. **Distance dimension** -- a dimension constraint that measures the distance between points belonging to two geometric objects. For instance, the distance between a point and a plane is measured as the distance between the point and its nearest projection on the plane. Distance dimension value is always set using distance measurement units (meter, millimeter, inch, etc.) and may have both positive and negative values, including zero. **Angular dimension** -- a dimension constraint that measures the angle between two directions taken from a pair of geometric objects. In other words, the angular dimension value is the angle of rotating the first object vector to align it with the second object vector. For example, the angle between a line and a plane is determined by the angle of the line rotation to be aligned with the plane using the shortest path. Angular dimension values are set in radians. **Logical constraint** -- a geometric constraint that measures a boolean value: **true** if the constraint is satisfied and **false** if the constraint is not satisfied. Examples of logical constraints: parallelism of two lines, tangency between a cylinder and a plane, coaxiality of two cones, etc. Note that dimensions are not logical constraints. **Parametric model** -- a *geometric model* making it possible to create to different instances of this model by modifying independent numeric parameters (control parameters). The geometric constraint system may be a parametric model if at least one *driving dimension* is set for it (see [Driving dimensions](./Driving_dimensions.md)).