Componentes
Los componentes son objetos construidos con bloques reutilizables. Un reloj, una brújula, un velocímetro, un indicador circular, un vector giratorio y un sistema orbital salen todos del mismo conjunto de círculos, líneas, polígonos, textos y rotaciones.
Descripción general
El botón Objetos de la barra de herramientas abre la paleta de objetos: todos los objetos, con una vista previa de lo que dibujan y una descripción de lo que hacen, y con un buscador por nombre, descripción o etiqueta. Elige uno y arrastra en la pizarra para colocarlo. Un objeto se comporta como cualquier otra forma: se puede seleccionar, mover, cambiar de tamaño, girar, bloquear, ocultar, duplicar, copiar, deshacer y guardar.
Un objeto que construyas en la pizarra —con el asistente de IA o a mano— se puede compartir: Copiar definición, en su menú de configuración, copia su definición al portapapeles, lista para pegarla en el editor de objetos del Catálogo.
Lo que distingue a un componente es cómo está construido. En lugar de tener un dibujo propio para cada objeto, un componente es un pequeño árbol de bloques aprobados —formas, transformaciones, interacciones y asociaciones de valores— que Modellus compila y dibuja. Como comparten los mismos bloques, los componentes tienen un aspecto coherente entre sí y se pueden ampliar sin escribir código de dibujo nuevo. En Bloques de construcción se explica cómo funciona, y en Definición de objetos, cómo se escribe un objeto nuevo.
Componentes disponibles
| Componente | Qué muestra |
|---|---|
| Reloj | Un reloj que lee una variable de horas, una de minutos, una de segundos y una de milisegundos —o el propio tiempo del modelo tomado como una cuenta de segundos—, mostrado como una esfera con una aguja para cada una o como una lectura digital de la misma hora, y que puede funcionar por sí solo como cronómetro con su propia lista de vueltas |
| Brújula | Una rosa de los vientos cuya aguja sigue una variable de rumbo, y cuya rosa puede girar con una segunda variable |
| Velocímetro | Una esfera de barrido con escala, aguja y lectura numérica |
| Indicador circular | Un anillo que se llena en proporción a una variable |
| Vector giratorio | Un fasor cuyo ángulo y longitud siguen a variables, con proyecciones opcionales |
| Sistema orbital | Un cuerpo central con cuerpos en órbita, situados a partir del tiempo de la simulación y de sus periodos |
| Volante | Los mandos con que se conduce un vehículo: un volante que gira según un ángulo o una orientación y un par de pedales que presionan cada uno un valor de la misma forma, ambos desde cero hasta un tope propio de cada pedal, dibujados como un coche, una moto o una barca, y en los que puedes quitar el volante, los pedales o el freno a tu gusto |
| Termómetro | Una temperatura leída como la altura de una columna, frente a una escala marcada cada cierto número de grados —un paso, igual que el de un deslizador— y expresada en Celsius o en Fahrenheit. Una línea discontinua lleva el extremo de la columna hasta la escala, igual que el cursor en cruz de una gráfica sitúa un punto frente a sus ejes, y el ojo de la fila de la temperatura muestra el término y su valor fuera de la escala, junto a la lectura. Puedes arrastrar la columna para fijar la temperatura, y las marcas y sus números mantienen el tamaño que usan los ejes de la pizarra, así que al cambiar el tamaño se estira la escala y no lo que está escrito en ella |
Asociar un componente al modelo
Cada componente ofrece unas pocas entradas en el menú de variables de su barra de herramientas. Una entrada admite una variable del modelo o un número, exactamente igual que los términos de una partícula o de un punto. El reloj, por ejemplo, lee una variable de horas, una de minutos, una de segundos y una de milisegundos, y las convierte en los ángulos de las agujas con el lenguaje de expresiones de Modellus:
| Aguja | Ángulo |
|---|---|
| Horas | ((hour mod 12) + minute / 60) × 30 |
| Minutos | (minute mod 60) × 6 |
| Segundos | ((second + millisecond / 1000) mod 60) × 6 |
| Milisegundos | (millisecond mod 1000) × 0.36 |
El reloj se muestra como una esfera o con cifras, y un botón propio de la barra de herramientas indica cuál. El botón muestra la opción en la que está y abre las dos: analógico dibuja la esfera, sus agujas y sus números, y digital dibuja la misma hora con cifras en un panel —hh:mm:ss, cada campo completado con ceros hasta su ancho—. Los dos leen las mismas cuatro variables, así que cambiar de uno a otro no altera nada de aquello a lo que está asociado el reloj. Los números y el arrastre son cosa solo de la esfera, así que desaparecen de los menús mientras se muestran las cifras.
Las cifras son los segmentos de un reloj digital antiguo, no texto escrito: cada carácter se forma con siete segmentos, y los que no se encienden se siguen viendo tenuemente detrás, como los segmentos apagados de una pantalla de cristal líquido. Están dibujadas, no tecleadas, así que se mantienen nítidas a cualquier tamaño y no necesitan que se haya cargado ninguna fuente. Color de la esfera es el panel sobre el que se leen y Color de los números los propios segmentos, así que un panel oscuro con segmentos claros está a dos colores de distancia.
La precisión con que el reloj lee la hora se decide pintando, no activando piezas. No hay mostrar segundos ni mostrar milisegundos: una parte se quita del reloj borrando el color con que se lee y se recupera dándole uno. Borra el color de los segundos y la aguja de los segundos desaparece de la esfera, y el campo que sigue a los minutos desaparece de la lectura digital; los milisegundos empiezan sin color, así que un reloj no los muestra hasta que eliges uno, y al elegirlo aparece en la esfera una aguja propia —que da una vuelta por segundo— y tres cifras más detrás de los segundos. Los números alrededor de la esfera funcionan igual, con el color de los números. La esfera no lleva marcas para los milisegundos: esa aguja se lee sobre el mismo anillo que la de los segundos.
La aguja de los segundos avanza de forma continua, no a saltos: incorpora los milisegundos en los que está el reloj, así que una lectura de 15 s 500 ms la sitúa media marca después de la decimoquinta, en lugar de quedarse quieta en ella esperando a saltar al siguiente segundo entero. Un reloj que no lee milisegundos no tiene nada que incorporar, así que su aguja de los segundos avanza marca a marca, exactamente como antes.
El reloj entero puede leer en su lugar el propio tiempo del modelo. Usar variable independiente, el interruptor que hay sobre los términos en el menú de variables, pone todo el reloj en manos de la variable independiente —se llame como se llame en el modelo—, leída como una cuenta de segundos, de la que se calculan las cuatro partes. Una ejecución que llega a 3725,5 marca 1:02:05.500 sin que el modelo mencione nunca una hora. Las cuatro filas siguen en su sitio, con los selectores vacíos y en silencio: los términos que indicaban siguen en el objeto, esperando a que se vuelva a desactivar el interruptor, pero nada los lee. Por eso el botón de la barra de herramientas indica en cada casilla el propio reloj del modelo, y el color con que se dibuja cada parte se sigue eligiendo en su fila, porque un reloj que mueve el modelo también tiene agujas que pintar. Y como es el modelo quien lo mueve, el único botón que tiene sentido ofrecer es el de vuelta: desaparecen reproducir y detener, y las vueltas se vacían con la papelera.
Cada fila lleva el color con que se lee su propia parte. La muestra de color al final de la fila de las horas es la aguja de las horas en la esfera y el primer campo de las cifras en el panel, y las filas de los minutos, los segundos y los milisegundos hacen lo mismo con lo suyo. Así, el color se elige junto al término que pinta y no en una lista aparte, y la lectura y su color se indican juntos. Empiezan oscuros para las horas y los minutos y en un tono cálido para los segundos; los milisegundos empiezan sin color, y por eso un reloj nuevo tiene solo tres agujas. Número se queda en el menú de colores, porque es lo que queda: los números alrededor de la esfera y los dos puntos y el punto entre los campos de la lectura digital.
El reloj puede funcionar por sí solo. Activa Botones en el menú de configuración y aparecen tres botones en una franja propia bajo la esfera o el panel, que les hace sitio: reproducir/pausa pone el reloj a contar tiempo real desde donde esté y lo detiene ahí al pulsarlo de nuevo —un solo botón, que muestra el símbolo de lo que haría al pulsarlo—, vuelta toma la lectura tal como está y la guarda, y detener termina la cuenta, pone la lectura a cero y olvida las vueltas. Los botones llevan los mismos símbolos que el resto de la pizarra, sacados del mismo conjunto de iconos en lugar de dibujados para parecerse a ellos. Un reloj en marcha dibuja su primer botón al revés, símbolo por esfera, para que se note.
Las vueltas tomadas pueden mostrarse en una lista bajo los botones. Activa Mostrar vueltas y se abre una sección propia debajo de la franja, separada de ella por una línea: una fila por cada pulsación del botón de vuelta, la más reciente arriba, cada una con la lectura tal como estaba y los segundos en que se tomó. La lista es la memoria del propio objeto, así que el archivo la guarda, deshacer la recupera y, al volver a abrir el modelo, las vueltas siguen ahí, a diferencia de la cuenta en sí, que un reloj guardado nunca recuerda. El botón de vuelta escribe en ella y el de detener la vacía.
Lo que cuenta va a donde apuntan las cuatro filas: cada parte de la lectura se escribe en el término que indica esa fila, así que hour, minute, second y millisecond se mueven en el modelo, y todo lo que los lee se mueve con ellos. Si una fila contiene un número en lugar de un término, se escribe en la propia fila, así que un reloj recién sacado de la paleta funciona sin tener nada asociado. Una fila que indica un término que el modelo calcula por sí mismo no se puede escribir, y un reloj en el que todas las filas son así lo indica con el cursor de un tirador bloqueado. Cuenta con un reloj propio y no con el del modelo, así que sigue contando tanto si la reproducción está en marcha como si está parada, y toda la cuenta —de reproducir a detener— se deshace en un solo paso.
La brújula lee dos variables. Rumbo gira la aguja en sentido horario desde el norte, y Rosa gira debajo de ella la rosa —sus marcas, sus letras cardinales y sus grados— en sentido horario. Si dejas la rosa en 0, tienes una brújula de navegación con el norte fijo arriba. Si la asocias a un término igual a menos el rumbo y dejas el rumbo en 0, tienes una brújula de rosa móvil de aviación: la aguja queda apuntando hacia arriba como línea de fe mientras gira la rosa, de modo que el rumbo actual es siempre el valor que hay bajo la aguja.
La brújula también marca Indicadores: tantas direcciones como indiques, listadas en su menú de variables igual que una gráfica lista los términos que representa. Cada fila elige con sus dos botones si es un ángulo en grados o una orientación, un par de términos leído como un vector —cuánto hacia el este y cuánto hacia el norte— que apunta hacia donde apunta ese vector. Un ángulo se mide desde N y crece en sentido horario, así que cada indicador está donde está la marca de su dirección y gira con la rosa igual que esa marca. Cada fila tiene un color. Arrastra una fila por su asa para cambiarla de orden, y pulsa la papelera para quitarla.
Una aguja se arrastra para devolver su valor al modelo, igual que la aguja de un medidor. No hay nada que activar: lo que lo decide es el término que indica la fila, exactamente igual que en cualquier otro dibujo de un valor que puedes cambiar. Una aguja que indica un término que el modelo calcula por sí mismo es de solo lectura, y también lo son todas las agujas de un reloj que mueve el modelo.
El volante se maneja con una fila, Girado por, y un botón propio de la barra de herramientas indica cómo se lee esa fila. El botón muestra la opción en la que está y abre las dos: un ángulo y una orientación . Leída como ángulo, la fila ofrece un selector —un término o un número leído en grados, en sentido antihorario, como se mide un ángulo en todo el resto del modelo: girar el volante a la izquierda lo aumenta y girarlo a la derecha lo disminuye, así que un volante girado a la derecha marca un valor negativo— y la barra de herramientas muestra ese único valor. Leída como orientación, aparece un segundo selector junto al primero y la barra de herramientas muestra los dos: el par se lee como la dirección a la que apunta, cuánto en horizontal y cuánto en vertical. Una dirección es un rumbo y no un ángulo, y gira al revés —en sentido horario desde la vertical hacia arriba, como se lee una brújula—, para que un indicador esté donde está la marca de su dirección. La orientación es lo que permite que un volante siga una velocidad o una fuerza sin que el modelo tenga que calcular antes el ángulo, y al arrastrar el volante se devuelve el par, así que puedes orientar esa velocidad a mano. El color al final de la fila es el de la marca de la parte superior del volante —la que muestra hacia dónde está girado—, así que se elige donde se indica la dirección y no en un menú de colores aparte.
La brújula marca sus indicadores con las mismas dos opciones bajo los mismos dos iconos, de modo que una dirección se indica igual en cualquier lugar donde se pida. Una brújula tiene tantos indicadores como quieras, así que cada una de sus filas lleva su propia opción; el volante gira según una sola cosa, así que su opción se elige una vez, en la barra de herramientas, y su fila lleva solo los términos y el color.
Vehículo, en el menú de configuración, elige qué vehículo se dibuja con tres botones: un coche, una moto o una barca. El volante cambia con él —el volante de tres radios de un coche, el manillar de una moto o la rueda de ocho cabillas de una barca, los tres con una marca arriba para ver de un vistazo cuánto se ha girado—, y los pedales también: el freno y el acelerador de un coche colgando de su caja, el par de manetas de una moto en el manillar o el par de palancas de bitácora de una barca.
El volante, los pedales y, entre ellos, el freno son partes de un mismo objeto, y cualquiera se puede quitar. Volante y Pedales, en el menú de configuración, activan y desactivan las dos mitades: el volante solo es el objeto tal como ha sido siempre, los pedales solos son el par de mandos ocupando toda la caja y, con los dos activados, la caja se divide —el volante en la mitad superior y los pedales debajo, como están en el vehículo—. Freno es la tercera, y aparece en cuanto se activan los pedales: desactívalo y no se dibujan el pedal de freno, la maneta de freno de la moto ni la palanca de marcha atrás de la barca, y el acelerador tiene todo el espacio de los pedales para pisarse: el vehículo que un modelo maneja con un solo mando. Una parte desactivada se lleva consigo sus propias filas, así que los menús nunca muestran un término que nada lee: el freno se lleva Frenado por, Máximo del freno y su color.
En ambos casos el volante se puede arrastrar: apunta hacia donde está el puntero, así que puedes dirigir el modelo a mano, y el ángulo se mide desde la vertical hacia arriba —el cero está a las doce, y una vuelta completa del volante es todo el intervalo—. Si gira por un ángulo, se devuelve ese ángulo, leído por el camino más corto desde arriba: a la izquierda es positivo y a la derecha, negativo. Si apunta por una orientación, se devuelve el par: conserva el módulo que tenía y toma la dirección hacia la que se ha girado el volante, es decir, v = √(vx² + vy²) colocado de nuevo según el nuevo ángulo. Un par que no contiene nada no tiene módulo que conservar, así que se coloca con módulo uno para que el arrastre tenga algo que girar.
Cada pedal presiona un valor propio, y el cero es donde descansan los dos. El acelerador se maneja con Acelerado por y el freno con Frenado por, y las dos filas funcionan igual: un término o un número, un ojo que lo muestra en el dibujo y el color del pedal al final. Los dos se pisan de la misma forma: si mantienes pulsado un pedal y deslizas hacia arriba, su término sube por encima de cero, hasta el tope propio de ese pedal —Máximo para el acelerador, Máximo del freno para el freno—. Ninguno pasa por debajo del reposo del que parte —si deslizas en sentido contrario, el pedal se suelta y se detiene en cero—, y un deslizamiento que recorre toda la zona del pedal cubre todo su intervalo. Lo que guarda cada uno es cuánto se está pisando ese pedal, positivo en los dos casos, y lo que el frenado haga en el modelo es cosa del modelo: lee Frenado por como la cantidad que hay que restar, igual que Acelerado por es la cantidad que hay que sumar. Si indicas el mismo término en las dos filas, los dos pedales presionan un mismo valor; si indicas dos, el freno es un valor que el modelo lee aparte del acelerador. Sea cual sea el vehículo dibujado, el freno está a la izquierda y el acelerador a la derecha, y cada uno se pisa en su mitad de los pedales; o bien, con el freno desactivado, el acelerador se pisa en cualquier punto de ellos.
Cada pedal está donde está su propio término, cada uno con su propia escala. Así, un modelo que frena pisa el pedal de freno, lleva la palanca de la barca hacia atrás y aprieta la maneta de freno de la moto, y un modelo que acelera hace lo mismo en el otro lado, y las dos cosas pueden ocurrir a la vez. Cada valor se muestra sobre el pedal que lo presiona, en el color del final de la fila de ese pedal; por eso los dos colores se eligen ahí y no en un menú de colores que diría lo mismo dos veces.
Leído como orientación, un pedal presiona un par propio en la dirección hacia la que está girado el volante. Los pedales se leen igual que el volante: elige orientación y aparece un segundo selector en cada una de las tres filas, de modo que Acelerado por y Frenado por indican cada uno un par —cuánto en horizontal y cuánto en vertical— junto al par que orienta el volante. El volante dice hacia dónde va el empuje y el pedal, con qué fuerza: al mantener pulsado el acelerador, su par se coloca en la dirección del rumbo, hasta Máximo, y al mantener pulsado el freno, el suyo se coloca en sentido contrario en esa misma dirección, hasta Máximo del freno. Así, el par del freno apunta hacia atrás, por donde venía el vehículo, mientras la cantidad que se pisa el pedal sigue siendo positiva, igual que cuando se lee como ángulo. Un modelo que lea una velocidad de estos dos acelera a lo largo de su trayectoria y frena en contra de ella, sin que ningún pedal toque el par con el que se dirige el volante.
Cuánto se pisa un pedal se lee de nuevo a lo largo de esa misma dirección —hacia delante para el acelerador y hacia atrás para el freno—, no como el simple módulo del par. Así, un par perpendicular a la trayectoria no pisa nada: lo que muestra un pedal es el empuje en la dirección en que va el modelo. En reposo no hay dirección propia —un par de ceros no apunta a ninguna parte—, así que el objeto conserva el último rumbo que llevaba: el volante sigue girado hacia ahí mientras el modelo está parado, y al pisar un pedal arranca en esa misma dirección en lugar de saltar al norte. Se recuerda mientras la pizarra está abierta, no se escribe en el modelo, que no dice nada sobre hacia dónde miraba un vehículo parado.
Un par vuelve atrás igual que un término, en la dirección en que se pisó, hasta quedar otra vez en reposo: una aceleración es un empuje, y un empuje sin el pie encima no es ningún empuje. Si desactivas aquí el freno, el modelo solo se puede empujar hacia delante: no queda nada que empuje hacia atrás.
Las palancas de la barca se mueven en profundidad y no de lado, igual que las reales bajo la mano: la palanca avante se aleja de ti a medida que sube el término del acelerador, y la de marcha atrás se acerca a medida que sube el del freno, así que una palanca se ve más alta y más fina cuando se aleja y más baja y más gruesa cuando se acerca, con la varilla deslizándose adelante y atrás por la ranura en la que está. Ninguna palanca se desplaza a lo ancho del dibujo.
Un pedal se mantiene pisado, como el de verdad. Púlsalo y no pasa nada: el valor se queda exactamente donde estaba mientras lo mantengas pulsado. Desliza el puntero hacia arriba mientras lo mantienes y el pedal baja más; deslízalo hacia abajo y se suelta. Un deslizamiento que recorre toda la zona del pedal cubre todo su intervalo, del reposo al tope, así que puedes pisar tan suave o tan fuerte como quieras.
Suéltalo y lo que presiona ese pedal vuelve solo al reposo —un paso cada décima de segundo, hasta volver a cero—, igual que el muelle de un pedal de verdad lo levanta cuando quitas el pie. Retorno del pedal, en el menú de configuración, indica el tamaño de ese paso, igual para los dos pedales y se lean como se lean; ponlo a cero y lo que se haya pisado se queda donde lo soltaste. Si vuelves a pisar, atrapas el pedal allí donde haya llegado en su vuelta. Todo el gesto —pisar, deslizar y volver al reposo— es un solo paso de deshacer. Un pedal cuya fila indica un término que el modelo calcula por sí mismo no se puede mover, y lo indica con el cursor de un tirador bloqueado; uno cuya fila contiene un número mueve ese número, así que puedes probar el objeto antes de asociarlo a nada.
El ojo al principio de cada fila muestra lo que guarda ese pedal en el propio objeto: término = valor, sobre el pedal que lo presiona y en el color de esa fila, escrito igual que cualquier otra etiqueta de término de la pizarra. Desactívalos y el dibujo no lleva ningún número.
Barra de herramientas
| Menú | Contiene |
|---|---|
| Nombre y colores | El nombre del objeto y todos los colores con que dibuja el componente |
| Cómo se lee | Solo en un componente que lee una dirección: si se lee como ángulo o como orientación. El botón muestra la opción en la que está |
| Cómo se muestra | Solo en un componente que se dibuja de más de una forma: la elección del reloj entre esfera y lectura digital. El botón muestra la opción en la que está |
| Variables | Las entradas del modelo del componente |
| Configuración | Opciones de visualización, escala e interacción |
Colores
Un componente dibuja con la paleta estándar de Modellus: sus colores, grosores de línea y tamaños de letra salen de los mismos estilos de diseño compartidos, así que los componentes se integran de forma natural en la pizarra. Aun así, puedes cambiar cada color por separado en el menú de nombre y colores.
Pedirle un objeto al asistente
El asistente de Modellus construye los componentes con los mismos bloques. Solo puede usar bloques aprobados, tiene que asociar los valores a variables que existan en tu modelo y no puede insertar un objeto que no pase la validación, así que todo lo que produce se comporta como un objeto que hubieras colocado tú y sigue siendo totalmente editable.
Construir tu propio objeto
Un objeto no es código de dibujo: es un único documento JSON que nombra bloques aprobados, y ese mismo documento es lo que incluye el editor, lo que publica el Catálogo y lo que inventa el asistente. Todo lo que aparece en esta página se puede construir así.