Saltar al contenido principal

Aritmética

Aritmética

Descripción general

Se utiliza para realizar operaciones matemáticas comunes en dos o más nodos de parámetros, útil para crear objetos parametrizados complejos utilizando nodos de parámetros conectados a múltiples entradas.

Uso

  1. Adjunte 2 o más nodos de parámetros a las ranuras de entrada del nodo Aritmético
  2. Seleccione el tipo de ecuación de la lista desplegable
  3. Exponga la propiedad del nodo de destino haciendo clic derecho, seleccione exportar y elija el valor que desea parametrizar.
  4. Conecte la salida aritmética a esta nueva ranura.

Interfaz

Varias operaciones están disponibles.:

Agregar. devuelve la suma de una operación de suma

Sustraer. devuelve la diferencia de una operación de resta

Multiplicar. devuelve el producto de una operación de multiplicación

Dividir. devuelve el cociente de una operación de división

Máximo. devuelve el mayor de los valores de entrada

Mínimo. devuelve el más pequeño de los valores de entrada

Expresión . Cree ecuaciones utilizando funciones y variables comunes.

Editor de expresiones

Para agregar una expresión, seleccione Operación>Expresión y presione Editar expresión para abrir el Editor de expresiones

Para crear relaciones paramétricas complejas, el Editor de expresiones utiliza una sintaxis matemática sencilla que comprende operadores +, -, *, /, etc. constantes (pi, e, etc.), variables integradas de RailClone, entradas numéricas y funciones (incluidas funciones estándar, trigonométricas, vectoriales, de redondeo y condicionales que toman uno o más argumentos y devuelven un resultado). Para saber qué funciones integradas, operadores y constantes están disponibles, se incluye una lista completa en la Panel de expresiones en el lado izquierdo de la ventana. Para ver una explicación de cada función, haga clic una vez en ella y se mostrará una descripción y un ejemplo de sintaxis en la ventana. Panel de ayuda de expresiones en la parte inferior de la interfaz.

Interfaz

Panel de expresiones. que se encuentra a la izquierda, enumera todas las variables y funciones utilizables. Haga doble clic en un elemento de la lista para agregarlo a la ventana de edición o haga un solo clic para mostrar la ayuda.

Editar ventana. Se utiliza para crear y editar la expresión. Para ver los efectos de una expresión, presione Actualizar. Para construir una variable, puede escribirla manualmente o agregar variables y funciones haciendo doble clic en ellas desde la lista de expresiones.

Ayuda de expresiones. esta ventana proporciona información sobre la variable o función actualmente seleccionada.

precaución

RailClone 3 incluyó un nuevo motor de expresiones. Tenga en cuenta que hay un par de cambios clave que debe recordar.

  • La nueva versión usa un doble == para pruebas condicionales

  • La forma en que escribes los números ahora es importante, por ejemplo en RailClone 3:

    1 = un número entero

    1,0 = un flotador

    This means that in RailClone 3 the expressions:

    return 1/2;

    Will result in 0, because both values are integers.

    To return a float value you would use:

    Return 1.0/2.0;
  • Para enviar un valor a la salida del nodo aritmético debes agregar un devolver comando, por ejemplo:

    return degToRad(90);
Nota

Usar expresiones para controlar las propiedades de transformación de un segmento

Cuando se utilizan expresiones para controlar las propiedades de transformación de un segmento, es necesario utilizar un Transformar operador. El flujo de trabajo actual no le permitirá conectar una expresión directamente a un nodo de segmento. RailClone detectará una conexión incompatible y mostrará una advertencia.

Sintaxis de expresiones

Las expresiones utilizan una sintaxis matemática sencilla que comprende operadores +, -, *, /, etc. matemático Funciones que toman uno o más argumentos y devuelven un resultado, las variables integradas de RC (que hemos llamado Atributos para mayor claridad), declarable por el usuario variables, y entradas personalizables. Hay muchas funciones integradas y atributos ya disponibles y todos están documentados en el Lista de comandos en el lado izquierdo del Editor de expresiones. Para ver una explicación de cada entrada, haga clic una vez en ella y se mostrará una descripción y un ejemplo de sintaxis en el panel de Ayuda en la parte inferior de la interfaz. Las reglas generales de sintaxis se describen a continuación.

Retorno

Para enviar un valor a la salida del nodo, utilice el comando de retorno. Por ejemplo return degToRad(90);

Sólo se puede utilizar un comando de retorno en una expresión.

Funciones

Las funciones proporcionan comandos prediseñados que se pueden utilizar para realizar expresiones matemáticas comunes. Para utilizar una función, utilice el nombre seguido de los argumentos necesarios entre paréntesis. Por ejemplo, para convertir 90 grados a radianes se utiliza la función degToRad de la siguiente manera:

degToRad(90)

Cuando una función requiere varios argumentos, estos deben separarse mediante comas. Por ejemplo, para generar un número entero aleatorio entre 0 y 350, usaría la función randomInt como se muestra a continuación:

randomInt(0,359)

Las funciones también se pueden anidar incluyéndolas como argumentos, por ejemplo:

degToRad(randomInt(0,359))

Puede encontrar una lista completa de funciones admitidas, incluida información sobre los argumentos que requieren aquí .

Atributos

Los atributos son variables predefinidas de RailClone. La sintaxis de puntos se utiliza para acceder a los valores de un atributo. Esto significa que cuando se utiliza un atributo, la declaración siempre debe comenzar con una referencia a algún objeto, seguida de un punto (. o punto) y luego el nombre de la propiedad a la que desea acceder. Cada punto representa un paso desde un acceso más general al objeto a niveles más específicos de detalle de parámetros. Por ejemplo XSplineCoords se refiere a un valor vectorial. Continuando hacia abajo en la jerarquía, XSplineCoords.Z se refiere únicamente al eje Z.

Tenga en cuenta que los atributos de la lista de comandos no se pueden editar mediante expresiones.

marcadores

Introducido en RailClone 4, el RC Spline Modifier le permite aplicar marcadores a una spline que contiene un canal de identificación y 9 canales de datos. Para acceder a estos en expresiones, utilizaría lo siguiente.

Para acceder al canal ID para marcadores en la spline X o Y, utilice

XMarkerID
YMarkerID

Para acceder al canal de datos asignado por marcadores en la spline X o Y, utilice

XMarkerData[#]
YMarkerData[#]

donde # puede ser de 0 a 9 para acceder a los 9 canales de datos disponibles en cada marcador.

Variables

Además de los atributos integrados, se pueden crear y editar variables en el script de expresión. Se declaran como uno de tres tipos, ya sea real para valores flotantes o unidades de escena, En t para números enteros, o vectores . No distinguen entre mayúsculas y minúsculas, pero existen algunas restricciones a la hora de nombrar:

  • No puede ser el mismo que un atributo, función, variable o parámetro existente.
  • Sólo debe constar de símbolos alfanuméricos y guiones bajos (_).
  • No se puede empezar con un número.
  • No puede contener espacios.
  • Las variables son locales para el objeto RailClone, esto significa que puedes usar el mismo nombre de variable en diferentes objetos sin problemas.

A continuación se muestran ejemplos que ilustran cómo crear cada uno de los tres tipos de variables, así como algunas formas aceptables de construir nombres de variables según las reglas descritas anteriormente.

int objectCount = 4;
real object_rotate_z = 10.5;
vector objectPosition1 = [10,10,0]

También puedes crear variables sin asignar un valor de la siguiente manera:

int objectCount;
real object_rotate_z;
vector objectPosition1;

Una vez que se ha declarado una variable, asigna un nuevo valor usando igual (=). Por ejemplo

objectCount = 5;
object_rotate_z = 22.5;
objectPosition1 =[20,20,20];

Los tipos de variables no se pueden cambiar una vez creados y, aunque puede asignar un valor entero a una variable real, no puede asignar un valor real a un número entero. En este caso necesitarás usar las funciones de redondeo ceil(), floor(), trunc() o round() para convertir el valor real a un número entero, por ejemplo:

int integer;
real float = 12.3;
integer = floor(float);
print integer;

Si evalúa este código, se mostrará 12 en la ventana de salida. Esto se debe a que la función suelo redondea 12,3 al número entero adyacente más bajo que luego se puede asignar a la variable entera sin errores.

Entradas

Las entradas son un tipo especial de variable cuyos valores se asignan en un nodo numérico o constante adjunto, lo que permite al usuario controlar los efectos sin necesidad de comprender el código. Una entrada recibe el nombre del orden en que se adjunta al nodo, Entrada1 en la primera ranura, Entrada2 en la segunda y así sucesivamente.

Operadores

Los operadores que se describen a continuación se pueden utilizar para manipular datos.

Operadores Matemáticos

Se admiten los siguientes operadores aritméticos:

OperadorUso de ejemploDescripción
+p+qAdición
-p-qSustracción
--pDevuelve el negativo del valor de una variable
*p*qMultiplicación
/p/qDivisión
^p^qEnergía

Operadores vectoriales

Cuando se utilizan vectores se aplican los siguientes operadores:

OperadorSintaxisUso de ejemploDescripción
xV.xXSplineCoords.xDevuelve el primer componente de un vector
yV.yXSplineCoords.yDevuelve el segundo componente de un vector
zV.xXSplineCoords.zDevuelve el tercer componente de un vector
+V+WXSplineCoords + YSplineCoordsAdición
-V-WXSplineCoords - YSplineCoordsSustracción
*V*WXSplineCoords * YSplineCoordsProducto escalar
*V*pXSplineCoords * 5Multiplicación escalar
/V/pXSplineCoords / 2División escalar
^V^WXSplineCoords ^ YSplineCoordsProducto cruzado

Operadores comparativos

RailClone incluye una función If que le permite crear reglas condicionales. Esta función utiliza la siguiente sintaxis:


if(p,q,r)

Donde p es una prueba lógica que devuelve q si devuelve verdadero o r si devuelve falso.

Para crear las pruebas condicionales para una función SI, utiliza los siguientes operadores:

OperadorUso de ejemploDescripción
==p==qDevuelve verdadero si p es igual a .
<p<qDevuelve verdadero si p es menos que .
>p>qDevuelve verdadero si p es mas grande que .
>=p>=qDevuelve verdadero si p es mayor que o igual no q
<=p>=qDevuelve verdadero si p es menor o igual a q
|p|qDevuelve verdadero si p o son verdaderas
&p&qDevuelve verdadero si p y son verdaderas

Separación de instrucciones

Cada comando debe terminar con un punto y coma ( ; ).

Comentarios

Los comentarios se agregan comenzando la línea con un símbolo #. Todo lo que esté después del # en la misma línea se ignorará:

# este es un comentario

# este es otro comentario

Tenga en cuenta que no es necesario que las líneas de comentarios terminen con un punto y coma, aunque no afectará nada si lo hace.

Depuración

Para ayudar a depurar los efectos, proporcionamos un comando de impresión que muestra los resultados de una expresión o el contenido de una variable, parámetro o atributo en la ventana Salida. Por ejemplo, la siguiente expresión imprimirá 5.0 en la ventana de salida.

real exampleVariable = 5.0;
print exampleVariable;

Debido a que a menudo se crean scripts diseñados para manipular los valores de miles de elementos dispersos, no es posible, ni deseable, ver los resultados de cada instancia. Por lo tanto, el comando de impresión muestra valores solo para el primer objeto disperso

Sensibilidad a mayúsculas y minúsculas

Funciones, variables, propiedades y atributos son no distingue mayúsculas y minúsculas.