Диагностические коды решения

В таблице ниже перечислены коды, сообщающие результат вычисления или выполнения функции API компонента GCM. Данные значения являются результатом таких вызовов, как GCM_Evaluate, GCM_EvaluationResult, GCM_SolveReposition.

Таблица 1 - Значения перечислительного типа GCM_result

Результирующие коды выполнения функций API решателя

GCM_RESULT_None

Нет результата. Для вызова GCM_EvaluationResult это означает, что ограничение ни разу не вычислялось.

GCM_RESULT_Ok

Успешно выполнено. Результат успешного выполнения операции или успешного вычисления ограничений.

GCM_RESULT_ItsNotDrivingDimension

Размер не управляющий. Неудачная попытка вызова GCM_ChangeDrivingDimension, для ограничения, не являющегося управляющим размером.

GCM_RESULT_Unregistered

Дескриптор объекта или ограничения не действителен. Ситуация: Обращение к вызову API с дескриптором, не принадлежащем системе ограничений.

GCM_RESULT_Aborted

Вычисления прерваны по запросу пользователя.

GCM_RESULT_InternalError GCM_RESULT_Error

Программная ошибка (не математическая). Предусмотрена для ситуаций, связанных с некорректным завершением. операции или некорректными данными.

Результаты вычисления системы ограничений

GCM_RESULT_Satisfied

Ограничение или система ограничений удовлетворены.

GCM_RESULT_Overconstrained

Ограничение переопределяет модель. Ошибка выявляется в ситуациях, когда имеются противоречащие ограничения (несовместная система ограничений) в переопределенной системе ограничений.

GCM_RESULT_Unsolvable

Не решаемые ограничения. Ошибка выявляется в различных случаях, когда решение не возможно. Обычно это связано с тем, что есть набор ограничений, которые не могут быть удовлетворены одновременно (несовместная система ограничений), или когда размер вышел из области допустимых значений.

GCM_RESULT_Not_Satisfied

Ограничение не удовлетворено. Код ошибки возвращается в ситуациях, когда не удалось решить ограничения. Возможные причины неудачи: - Размер вышел за пределы значений, допускающих существование решения; - Положения фиксированных или замороженных объектов вышли за область, допускающую существования решения. - В редких случаях – плохое начальное приближение. Удовлетворение ограничений требует значительные изменение параметрических координат; - Сильные взаимные влияния. Например, заданы такие условия, что изменение угла на один градус приводит к смещению объекта на значительные расстояние. - В редких случаях – численная неустойчивость, обусловленная большим разбросом порядка вычисляемых координат. Например в геометрической модели одновременно встречаются микроскопические объекты (1e-3) и крупные объекты (1e+6). - В общем случае – иные ситуации, когда решение не существует или не может быть найдено.

GCM_RESULT_MatedFixation

Задано геометрическое ограничение между фиксированными или замороженными объектами.

GCM_RESULT_InvalidArguments

Аргументы ограничения не определены. Ситуация некорректно определенного ограничения, когда его аргументы пустые (дескриптор аргумента = GCM_NULL).

GCM_RESULT_IncompatibleArguments

Несовместимые аргументы для данного типа ограничения. Ситуация некорректно определенного ограничения, когда его аргументы не совместимы друг другу или данное сочетание аргументов не поддерживается. Например, попытка задать совпадение для плоскости и цилиндра.

GCM_RESULT_InappropriateArgument

Тип аргумента не подходит для данного ограничения. Ситуация некорректно определенного ограничения, когда один из его аргументов не подходит к данному типу ограничения. Например, попытка задать параллельность для точек или сфер очевидно лишена смысла.

GCM_RESULT_Duplicated

Ограничение дублирует имеющееся. Код сообщает, что в системе ограничений находятся два одинаковых ограничения. В принципе данная ситуация не мешает вычислению ограничений.

GCM_RESULT_DraggingFailed

GCM_RESULT_InappropriateAlignment

GCM_RESULT_InconsistentAngleType

GCM_RESULT_InconsistentAlignment

mtResCode_UnsupportedTangencyChoice

mtResCode_IsNoPossibleForCircTanChoice

GCM_RESULT_InconsistentPlanarAngle

Диагностические ситуации для ограничения GCM_DEPENDED

GCM_RESULT_DependentConstraintUnsolved

GCM_RESULT_CyclicDependence

GCM_RESULT_MultiDependedGeom

GCM_RESULT_OverconstrainingDependedGeoms

mtResCode_InvalidDependenceForFixGeom

Диагностические коды для механических передач

mtResCode_CoaxialMtGearTransmissionIsNotAvalable

mtResCode_NoSeparatedSolutionForCamGear

mtResCode_CyclicDependenceForTwoOrMoreCamGears

mtResCode_InconsistentFollowerAxis