проблема при получении параметра с катал

 
  • Здравствуйте всем.
    У меня проблема при получении параметра с каталога.
    вот например параметр длины цилиндра задан так " сумма IPARA[1] 3'
    выполняю следующее
    !LEN = " СУММА IPARA[1] 3'
    делаю текущим элемент в проекте
    var !L $!LEN

    а код ругается на сумму. говорит что такой функции нет.
  • Извините '[color=#333333]sum ipara[1] 3'. Переводчик автоматически перевел[/color]
  • Гляньте, тут вроде было похожее:
    http://52.178.132.139/showthread.php?t=15640&highlight=expression
  • Как я правильно понял из этого обсуждения, мне придется придумать интерпретатор регулярных выражений.
    И, если я правильно понял, может быть огромное количество различных записей, которое придется менять.
    Может ли кто-нибудь помочь с данной проблемой; где, хотя бы, можно достать материал по всем возможным вариациям этих выражений.
  • Добрый день.
    Материалы можно запросить в российской техподдержке aveva. Или проанализировать варианты выражений в каталогах. В принципе, их не должно быть очень много, обычные арифметичиские действия.
    Если не секрет, для чего это нужно? Может быть есть какой то другой вариант решения?
  • вы как-то усложняете.
    если у вас длина цилиндра сидит в пятом параметре (например), то в модели можно просто запросить ее как q cpar[5] или q cpar5.

    соответственно если нужен пмл-код, то просто присвойте переменной этот параметр
    var !iLEN cpar[5]
  • В это теме задача немного сложнее из высоты графической фигуры(из формулы) в каталоге(cate) вытянуть  высоту или длину(значение).
    У нас часто, один чел запихивает такие формулы, что просто мурашки*..типо:

    ( RPRO WIDT - ( PARA[2 ] + PARA[6 ] ) / 2 * SIN ( RPRO ANGL ) )
    где ANGL =
    [COLOR=#0000cd]( 90 - ATAN ( PARA[4] / 2 / PARA[3] ) - ACOS ( ( PARA[2] + PARA ) / 2 / SQRT ( POW ( PARA[3] , 2 ) + POW ( PARA[4] / 2 , 2 ) ) ) )[/COLOR]
    WIDT =
    ( ATTRIB PARA[3 ] + 200 )
  • !str = '(rpro apar + para[2] * rpro cpar)'
    !expr = object expression(!str)
    q var !expr.evaluate(!!CE)