## Diagnostic codes of a solution The table below lists the codes that output calculation results or results of executing the GCM API component function. These values are results of such calls as **GCM_Evaluate**, **GCM_EvaluationResult**, **GCM_SolveReposition**. Table 1 - Enumeration type values **GCM_result** | Resulting codes of executing the API solver functions | | |:---|:---| | **GCM_RESULT_None** | **No result.** For the call **GCM_EvaluationResult** it means that the constraint has not been calculated yet. | | **GCM_RESULT_Ok** | **Executed successfully.** The result of successful execution of an operation or successful calculation of constraints. | | **GCM_RESULT_ItsNotDrivingDimension** | **Not driving dimension.** Failed attempt of the **GCM_ChangeDrivingDimension** call for a constraint which is not a driving dimension. | | **GCM_RESULT_Unregistered** | **Invalid descriptor of an object or constraint.** Case: Calling API with a descriptor that does not belong to the constraint system. | | **GCM_RESULT_Aborted** | Calculations aborted by the user request. | | **GCM_RESULT_InternalError** **GCM_RESULT_Error** | **Program error** (not mathematic). For situations related to incorrect completion of an operation or incorrect data. | | Results of the constraint system calculation | | | **GCM_RESULT_Satisfied** | **The constraint or constraint system has been satisfied**. | | **GCM_RESULT_Overconstrained** | **The constraint redefines the model.** The error occurs in the event of conflicting constraints (Inconsistent constraint system) within an over-defined constraint system (Overdefined constraint system). | | **GCM_RESULT_Unsolvable** | **Unresolvable constraints.** The error occurs in various situations when no solution can be found. Generally, it is caused by a set of constraints that cannot be satisfied simultaneously (Inconsistent constraint system), or when a dimension is outside the range of acceptable values. | | **GCM_RESULT_Not_Satisfied** | **The constraint is not satisfied.** The error code is returned when constraints cannot be solved. Probable causes of the failure: - A dimension is outside the range of values making a solution possible; - Positions of fixed or frozen objects are outside the range of values making a solution possible; - In rare cases, it is caused by poor initial approximation. Satisfying the constraints requires considerable changes in parametric coordinates; - Strong mutual influences. For example, for such conditions if an angle is changed by one degree, then the object would be offset to a considerable distance; - In rare cases, numeric instability due to wide scattering of the order of coordinates being calculated. For example, a geometric model includes both microscopic objects (1e-3) and large objects (1e+6); - In the general case, this can be caused by other situations when the solution does not exist or cannot be calculated. | | **GCM_RESULT_MatedFixation** | **A geometric constraint is added between fixed or frozen objects**. | | **GCM_RESULT_InvalidArguments** | **Constraint arguments are not defined.** Incorrectly defined constraint when its arguments are empty (argument descriptor = GCM_NULL). | | **GCM_RESULT_IncompatibleArguments** | **Incompatible arguments for this constraint type.** Incorrectly defined constraint when its arguments are incompatible or this combination of arguments is not supported. For example, an attempt to set the coincidence of a plane and a cylinder. | | **GCM_RESULT_InappropriateArgument** | **The argument type cannot be used for this constraint.** An incorrectly defined constraint when one of its arguments cannot be used for this constraint type. For example, an attempt to make points and spheres parallel makes no sense. | | **GCM_RESULT_Duplicated** | **Duplicate constraint.** The code indicates that the constraint system contains two identical constraints. In general, this situation does not make it impossible to calculate constraints. | | Diagnostic situations for the GCM_DEPENDED constraint | | | **GCM_RESULT_DraggingFailed** | | | **GCM_RESULT_InappropriateAlignment** | | | **GCM_RESULT_InconsistentAngleType** | | | **GCM_RESULT_InconsistentAlignment** | | | **mtResCode_UnsupportedTangencyChoice** | | | **mtResCode_IsNoPossibleForCircTanChoice** | | | **GCM_RESULT_InconsistentPlanarAngle** | | | Diagnostic codes for mechanical transmissions | | | **GCM_RESULT_DependentConstraintUnsolved** | | | **GCM_RESULT_CyclicDependence** | | | **GCM_RESULT_MultiDependedGeom** | | | **GCM_RESULT_OverconstrainingDependedGeoms** | | | **mtResCode_InvalidDependenceForFixGeom** | | | Diagnostic codes for mechanical transmissions | | | **mtResCode_CoaxialMtGearTransmissionIsNotAvalable** | | | **mtResCode _NoSeparatedSolutionForCamGear** | | | **mtResCode_CyclicDependenceForTwoOrMoreCamGears** | | | **mtResCode_InconsistentFollowerAxis** | |