Получение ошибки RULECSRT3 Предыдущие привязки переменных

Из клипов официальной документации я вижу следующее

"The restriction string for a function requiring exactly six arguments (of which the first must be a string, the third an integer, and the remaining arguments floats) is:
"66fsui" "

Может кто-нибудь заставить меня понять, что это значит и как действует приведенное выше утверждение?

На самом деле я получаю сообщение об ошибке при попытке изменить третий параметр из целого числа в строку .. Ранее is_configured принимает «33iiii», теперь я изменил его на «33iisi»

Это код
Я изменился, раньше это работало нормально .. рабочий код Я прокомментировал это в следующих строках

    (object (is-a VEHICLE)
(NUMBER   1)
(IDX      ?ID_X)
(IDY      ?ID_Y)
;; not using ID_Z in the call below and using STRING_Z
(IDZ    ?ID_Z)
(STRINGZ ?STRING_Z)
)

=>
(if (is_configured ?ID_X ?ID_Y ?STRING_Z) then
;;(if (is_configured ?ID_X ?ID_Y ?ID_Z) then
(assert (ELIGIBLE_FOR_CALCULATION ?ID_X ?ID_Y ?ID_Z))
)

И код C ++ выглядит так

    bool clips_is_configured()
{
DATA_OBJECT doTemp;
long id_x= 0;
long id_y = 0;
std::string string_z;
//long id_z = 0;if (ArgCountCheck("is_configured", EXACTLY, 3) == -1)
return -1;if (ArgTypeCheck("is_configured", 1, INTEGER, &doTemp) == 0)
return -1;
id_x = (long) DOToLong(doTemp);if (ArgTypeCheck("is_configured", 2, INTEGER, &doTemp) == 0)
return -1;
id_y = (long) DOToLong(doTemp);// if (ArgTypeCheck("is_configured", 3, INTEGER, &doTemp) == 0)
if (ArgTypeCheck("is_configured", 3, STRING, &doTemp) == 0)
return -1;
string_z = DOToString(doTemp);
//id_z = (long) DOToLong(doTemp);

bool x;
...........
// do some calulations based on above values and return bool
...........
return x;
}

Я получаю следующую ошибку

    [RULECSTR3] Previous variable bindings of ?ID_Y caused the type restrictions for argument #2 of the expression (is_configured ?ID_X ?ID_Y ?STRING_Z) found in the rule's RHS to be violated.

0

Решение

На самом деле я дал неправильный формат … правильный формат «33iiis» первый я указывает тип по умолчанию для параметров, если не указано

второй я указывает тип первого параметра

третий я указывает тип второго параметра

первый s указывает тип третьего параметра

Спасибо

0

Другие решения

Других решений пока нет …