Диагностические коды решения
В таблице ниже перечислены коды, сообщающие результат вычисления или выполнения функции 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 |