Documentação / Formas / Componentes

Componentes

Os componentes são objetos construídos com blocos de construção reutilizáveis. Um relógio, uma bússola, um velocímetro, um medidor circular, um vetor girante e um sistema orbital saem todos do mesmo conjunto de círculos, linhas, polígonos, textos e rotações.

Captura de ecrã: componentes relógio e bússola no quadro

Visão geral

O botão Objetos da barra de ferramentas abre a paleta de objetos: todos os objetos, com uma pré-visualização do que desenham e uma descrição do que fazem, que podes pesquisar por nome, descrição ou etiqueta. Escolhe um e arrasta no quadro para o colocar. Um objeto comporta-se como qualquer outra forma: podes selecioná-lo, movê-lo, redimensioná-lo, rodá-lo, bloqueá-lo, ocultá-lo, duplicá-lo, copiá-lo, anular as suas alterações e guardá-lo.

Um objeto que construas no quadro — com o assistente de IA ou à mão — pode ser partilhado: Copiar definição, no menu de definições do objeto, coloca a sua definição na área de transferência, pronta a colar no editor de objetos do Catálogo.

O que distingue um componente é a forma como é construído. Em vez de ter um desenho próprio para cada objeto, um componente é uma pequena árvore de blocos de construção aprovados — formas, transformações, interações e ligações a valores — que o Modellus compila e desenha. Como partilham os mesmos blocos, os componentes têm um aspeto coerente entre si e podem ser alargados sem código de desenho novo. Os Blocos de construção explicam como funciona esta construção, e a Definição de objetos mostra como se escreve um objeto novo.

Experimenta-os todos de uma vez: abre o modelo Demonstração dos blocos de construção e carrega em reproduzir. Uma só simulação faz funcionar um relógio, uma bússola, um velocímetro, um medidor circular, um vetor girante e um sistema orbital.

Componentes disponíveis

ComponenteO que mostra
RelógioUm relógio que lê uma variável para as horas, outra para os minutos, outra para os segundos e outra para os milissegundos — ou o próprio tempo do modelo, contado em segundos —, mostrado como um mostrador com um ponteiro para cada uma ou como um visor digital com a mesma hora, e que pode funcionar sozinho como cronómetro, com a sua própria lista de voltas
BússolaUma rosa dos ventos cuja agulha segue uma variável de rumo, e cuja rosa pode ser rodada por uma segunda variável
VelocímetroUm mostrador em arco com uma escala, um ponteiro e um visor numérico
Medidor circularUm anel que se enche na proporção de uma variável
Vetor giranteUm fasor cujo ângulo e comprimento seguem variáveis, com projeções opcionais
Sistema orbitalUm corpo central com corpos em órbita, posicionados a partir do tempo da simulação e dos seus períodos
VolanteOs comandos com que se conduz um veículo: um volante rodado por um ângulo ou por uma orientação e um par de pedais que acionam cada um o seu valor da mesma maneira, ambos a subir desde zero até um limite próprio de cada pedal, desenhados como carro, mota ou barco, podendo deixar de fora, como quiseres, o volante, os pedais ou o travão
TermómetroUma temperatura lida pela altura de uma coluna, numa escala marcada de tantos em tantos graus — um passo, tal como o de um seletor — e indicada em Celsius ou Fahrenheit. Uma linha tracejada leva o topo da coluna até à escala, tal como a mira de um gráfico situa um ponto em relação aos eixos, e o olho na linha da temperatura mostra o termo e o seu valor do lado de fora da escala, junto à leitura. Podes arrastar a coluna para definir a temperatura, e os traços e os seus números mantêm o tamanho usado pelos eixos do próprio quadro, por isso redimensionar estica a escala e não o que está escrito nela

Associar um componente ao modelo

Cada componente tem um pequeno conjunto de entradas no menu de variáveis da sua barra de ferramentas. Cada entrada aceita uma variável do modelo ou um simples número, exatamente como os termos de uma partícula ou de um ponto. O relógio, por exemplo, lê uma variável para as horas, outra para os minutos, outra para os segundos e outra para os milissegundos, e converte-as nos ângulos dos ponteiros usando a linguagem de expressões do Modellus:

PonteiroÂngulo
Horas((hour mod 12) + minute / 60) × 30
Minutos(minute mod 60) × 6
Segundos((second + millisecond / 1000) mod 60) × 6
Milissegundos(millisecond mod 1000) × 0.36

O relógio mostra-se como mostrador ou como algarismos, e é um botão próprio na barra de ferramentas que decide. O botão mostra a opção escolhida e abre-se nas duas: analógico desenha o mostrador, os ponteiros e os números, e digital desenha a mesma hora em algarismos num painel — hh:mm:ss, cada campo completado com zeros até à sua largura. Ambos leem as mesmas quatro variáveis, por isso mudar de um para o outro não altera nada naquilo a que o relógio está associado. Os números e o arrastar pertencem apenas ao mostrador, por isso desaparecem dos menus enquanto são os algarismos que estão à vista.

Os algarismos são os segmentos de um relógio digital antigo, e não texto escrito: cada carácter é formado por sete segmentos, e os que não estão acesos ficam visíveis, muito ténues, por trás, como os segmentos apagados de um visor de cristais líquidos. São desenhados e não escritos, por isso mantêm-se nítidos em qualquer tamanho e não precisam de nenhum tipo de letra carregado. Cor do mostrador é o painel onde se leem e Cor dos números são os próprios segmentos, por isso um painel escuro com segmentos claros fica a duas cores de distância.

A precisão com que o relógio lê o tempo define-se pintando, não ligando partes. Não há mostrar segundos nem mostrar milissegundos: uma parte deixa de aparecer no relógio quando lhe tiras a cor em que é lida, e volta quando lhe dás uma. Tira a cor aos segundos e o ponteiro dos segundos desaparece do mostrador, tal como o campo depois dos minutos desaparece do visor; os milésimos começam sem cor, por isso o relógio não os mostra até escolheres uma, e escolhê-la põe um ponteiro próprio no mostrador — que dá uma volta por segundo — e mais três algarismos depois dos segundos. Os números à volta do mostrador funcionam da mesma maneira, com a cor dos números. O mostrador não tem marcas para os milésimos: esse ponteiro lê-se no mesmo anel que o ponteiro dos segundos.

O ponteiro dos segundos desliza em vez de saltar: acompanha os milésimos em que o relógio está, por isso uma leitura de 15 s 500 ms coloca-o meia marca depois da décima quinta, em vez de ficar parado nela à espera do segundo inteiro seguinte para saltar. Um relógio que não lê milissegundos não tem nada para acompanhar, por isso o seu ponteiro dos segundos avança uma marca de cada vez, exatamente como antes.

O relógio inteiro pode ler o próprio tempo do modelo. Usar independente, o interruptor por cima dos termos no menu de variáveis, entrega o relógio inteiro à variável independente — seja qual for o nome que o modelo lhe deu —, lida como uma contagem de segundos, a partir da qual se calculam as quatro partes. Uma execução que chegue a 3725,5 marca 1:02:05.500 sem que o modelo alguma vez fale em horas. As quatro linhas ficam onde estão, com os seletores vazios e inativos: os termos que indicavam continuam guardados no objeto, à espera de que o interruptor volte a ser desligado, mas ninguém os está a ler — por isso o botão na barra de ferramentas indica o relógio do próprio modelo em todas as posições, e a cor de cada parte continua a escolher-se na sua linha, porque um relógio movido pelo modelo tem ponteiros para pintar como qualquer outro. E como é o modelo que o faz andar, o único botão que vale a pena oferecer é o das voltas — o reproduzir e o parar desaparecem, e as voltas passam a apagar-se com o caixote do lixo.

Cada linha tem a cor em que a sua parte é lida. A amostra de cor no fim da linha das horas é o ponteiro das horas no mostrador e o primeiro campo dos algarismos no painel, e as linhas dos minutos, dos segundos e dos milissegundos fazem o mesmo para as suas partes — assim, a cor escolhe-se ao lado do termo que pinta, e não numa lista noutro sítio, e a leitura e a sua cor aparecem juntas. Começam escuras para as horas e os minutos e quente para os segundos; os milissegundos começam sem cor, e é isso que mantém um relógio novo com apenas três ponteiros. Números continua no menu de cores, porque é o que sobra: os números à volta do mostrador, e os dois pontos e o ponto entre os campos do visor.

O relógio pode funcionar sozinho. Liga Botões no menu de definições e aparecem três botões numa faixa própria por baixo do mostrador ou do painel, que lhes abre espaço: reproduzir/pausar põe o relógio a contar o tempo real a partir de onde está e para-o aí quando o premes outra vez — um só botão, que mostra o símbolo do que fará se o premires a seguir —, volta regista a leitura tal como está e guarda-a, e parar termina a contagem, põe a leitura a zero e esquece as voltas. Os botões usam os mesmos símbolos do resto do quadro, tirados do mesmo conjunto de ícones e não desenhados para se parecerem com eles. Um relógio em funcionamento mostra o primeiro botão ao contrário, o símbolo trocado, para o indicar.

As voltas registadas podem ser listadas por baixo dos botões. Liga Mostrar voltas e abre-se uma secção própria por baixo da faixa, separada dela por uma linha: uma linha por cada vez que premes o botão de volta, a mais recente em cima, cada uma com a leitura tal como estava e os segundos em que foi registada. A lista é a memória do próprio objeto, por isso o ficheiro guarda-a, o Anular repõe-na e ao voltares a abrir o modelo as voltas continuam lá — ao contrário da contagem em si, de que um relógio guardado nunca se lembra. O botão de volta escreve nela e o botão parar esvazia-a.

O que o relógio conta vai para onde apontam as quatro linhas: cada parte da leitura é escrita no termo que essa linha indica, por isso hour, minute, second e millisecond mudam no modelo e tudo o que os lê muda com eles. Uma linha com um simples número em vez de um termo é ela própria escrita, por isso um relógio acabado de tirar da paleta funciona sem nada associado. Uma linha que indique um termo calculado pelo próprio modelo não pode ser escrita, e um relógio em que todas as linhas estejam nessa situação mostra-o com o cursor de uma pega bloqueada. O relógio conta com um relógio próprio, e não com o do modelo, por isso continua a contar quer a reprodução esteja a decorrer quer esteja parada, e a contagem inteira — de reproduzir a parar — anula-se num só passo.

A bússola lê duas variáveis. Rumo roda a agulha no sentido dos ponteiros do relógio a partir do norte, e Rosa roda por baixo dela a rosa dos ventos — os traços, as letras dos pontos cardeais e as indicações dos graus — também no sentido dos ponteiros do relógio. Deixar a rosa em 0 dá uma bússola de orientação, com o norte fixo em cima. Associá-la a um termo igual a menos o rumo, deixando o rumo em 0, dá uma bússola de aviação: a agulha continua a apontar para cima, como linha de fé, enquanto a rosa roda, por isso o rumo atual é sempre o valor por baixo da agulha.

A bússola marca também Indicadores: tantas direções quantas indicares, listadas no seu menu de variáveis tal como um gráfico lista os termos que representa. Cada linha escolhe, com os seus dois botões, se é um ângulo em graus ou uma orientação, um par de termos lido como um vetor — quanto para leste e quanto para norte — que aponta para onde esse vetor aponta. Um ângulo mede-se a partir de N e cresce no sentido dos ponteiros do relógio, por isso cada marcador fica onde está o traço da sua direção e roda com a rosa tal como esse traço. Cada linha tem uma cor. Arrasta uma linha pela pega para a reordenares, e carrega no caixote do lixo para a retirares.

Um ponteiro arrasta-se para escrever o seu valor de volta no modelo, tal como a agulha de um medidor. Não há nada para ligar: o que decide é o termo que a linha indica, exatamente como decide em qualquer outro desenho de um valor que podes alterar — um ponteiro que indique um termo calculado pelo próprio modelo fica só de leitura, tal como todos os ponteiros de um relógio que o modelo está a mover.

O volante é controlado por uma linha, Rodado por, e um botão próprio na barra de ferramentas diz como essa linha é lida. O botão mostra a opção escolhida e abre-se nas duas: um ângulo e uma orientação . Lida como ângulo, a linha tem um só seletor — um termo ou um número lido em graus, no sentido contrário ao dos ponteiros do relógio, como se medem os ângulos em todo o resto do modelo: rodar o volante para a esquerda aumenta-o e rodá-lo para a direita diminui-o, por isso um volante virado para a direita marca um valor abaixo de zero — e a barra de ferramentas mostra esse valor. Lida como orientação, aparece um segundo seletor ao lado do primeiro e a barra de ferramentas mostra os dois: o par é lido como a direção para onde aponta, quanto na horizontal e quanto para cima. Uma direção é um rumo e não um ângulo, e roda ao contrário — no sentido dos ponteiros do relógio a partir da vertical, como se lê numa bússola, para que cada marcador fique onde está o traço da sua direção. É a orientação que permite a um volante seguir uma velocidade ou uma força sem que o modelo tenha primeiro de calcular o ângulo, e arrastar o volante escreve o par de volta, por isso podes apontar essa velocidade à mão. A cor no fim da linha é a cor da marca no topo do volante — a parte que mostra para onde está virado —, por isso escolhe-se onde a direção é indicada, e não num menu de cores próprio.

A bússola marca os seus indicadores com as mesmas duas opções e os mesmos dois ícones, por isso uma direção indica-se da mesma maneira onde quer que seja pedida. Uma bússola tem tantos indicadores quantos quiseres, por isso cada uma das suas linhas tem a sua própria opção; o volante é rodado por uma só coisa, por isso a escolha faz-se uma vez, na barra de ferramentas, e a sua linha tem apenas os termos e a cor.

Veículo, no menu de definições, escolhe o veículo desenhado, com três botões: carro, mota ou barco. O volante acompanha a escolha — o volante de três raios de um carro, o guiador de uma mota ou o leme de oito punhos de um barco, todos com uma marca no topo para se ver de relance quanto foi rodado — e os pedais também: os pedais do travão e do acelerador de um carro, pendurados na sua caixa, o par de manetes de uma mota no guiador ou o par de manetes de bitácula de um barco.

O volante, os pedais e, entre eles, o travão são partes de um só objeto, e cada uma pode ficar de fora. Volante e Pedais, no menu de definições, ligam e desligam as duas metades: só o volante é o objeto como sempre foi, só os pedais é o par de comandos a ocupar a caixa toda, e com os dois ligados a caixa divide-se — o volante na metade de cima e os pedais por baixo, como estão no veículo. Travão é a terceira, e aparece quando os pedais estão ligados: desliga-o e o pedal do travão, a manete do travão da mota e a manete de marcha atrás do barco deixam de ser desenhados, e o acelerador fica com a zona toda dos pedais para ser premido — o veículo que um modelo conduz com um só comando. Uma parte desligada leva consigo as suas linhas, para que os menus nunca indiquem um termo que nada lê: o travão leva consigo Travado por, Máximo do travão e a sua cor.

Em qualquer dos casos, o volante pode ser arrastado: aponta para onde estiver o ponteiro, por isso podes conduzir o modelo à mão, e o ângulo mede-se a partir da vertical — o zero fica nas doze horas, e uma volta completa do volante é toda a amplitude. Rodado por um ângulo, é esse ângulo que é escrito de volta, lido pelo caminho mais curto a partir do topo: à esquerda é acima de zero, à direita abaixo. Apontado por uma orientação, é o par que é escrito de volta — mantém o comprimento que tinha e toma a direção para onde o volante foi rodado, ou seja, v = √(vx² + vy²) colocado de novo segundo o novo ângulo. Um par a zero não tem comprimento para manter, por isso é colocado com comprimento um, para que o arrastar tenha alguma coisa para rodar.

Cada pedal aciona o seu próprio valor, e o zero é onde ambos repousam. O acelerador é controlado por Acelerado por e o travão por Travado por, e as duas linhas são feitas da mesma maneira: um termo ou um simples número, um olho que o mostra no desenho e, no fim, a cor do pedal. Ambos se premem da mesma maneira: manter um pedal premido e deslizar para cima leva o seu termo acima de zero, até ao limite próprio desse pedal — Máximo para o acelerador, Máximo do travão para o travão. Nenhum passa abaixo do repouso de onde parte — deslizar no sentido contrário alivia o pedal e para no zero — e um deslize por toda a zona do pedal percorre toda a sua amplitude. O que cada um guarda é a força com que esse pedal está a ser premido, acima de zero em ambos os casos, e o efeito da travagem no modelo é decidido pelo próprio modelo: lê Travado por como a quantidade a tirar, tal como Acelerado por é a quantidade a somar. Indica o mesmo termo nas duas linhas e os dois pedais acionam um só valor entre eles; indica dois e o travão é um valor que o modelo lê separado do acelerador. Seja qual for o veículo desenhado, o travão fica à esquerda e o acelerador à direita, e cada um prime-se na sua metade da zona dos pedais — ou, com o travão desligado, o acelerador prime-se em qualquer ponto dela.

Cada pedal fica na posição do seu próprio termo, cada um na sua escala. Assim, um modelo que está a travar prime o pedal do travão, puxa a manete do barco para marcha atrás e recolhe a manete do travão da mota, e um modelo que está a acelerar faz o mesmo do outro lado, e as duas coisas podem acontecer ao mesmo tempo. Cada valor lê-se por cima do pedal que o aciona, na cor do fim da linha desse pedal — é por isso que as duas cores se escolhem aí, e não num menu de cores que indicaria a mesma coisa duas vezes.

Lido como orientação, um pedal aciona um par próprio segundo o rumo para onde o volante está virado. Os pedais leem-se como o volante: escolhe orientação e aparece um segundo seletor em cada uma das três linhas, por isso Acelerado por e Travado por indicam cada um um par — quanto na horizontal e quanto para cima — ao lado do par que aponta o volante. O volante diz para onde vai o impulso e o pedal diz com que força: manter o acelerador premido coloca o seu par segundo o rumo, até Máximo, e manter o travão premido coloca o seu par no sentido oposto, segundo o mesmo rumo, até Máximo do travão — assim o par do travão aponta para trás, de onde o veículo veio, enquanto a força com que o pedal é premido continua acima de zero, tal como quando é lido como ângulo. Um modelo que leia uma velocidade a partir destes dois acelera ao longo do seu percurso e trava contra ele, sem que nenhum dos pedais toque no par com que o volante está a dirigir.

A força com que um pedal está premido lê-se de volta ao longo desse mesmo percurso — o acelerador para a frente e o travão para trás —, e não como o simples tamanho do par. Por isso, um par que aponte de través em relação ao percurso não prime nada: o que um pedal mostra é o impulso ao longo do caminho que o modelo segue. Um veículo parado não tem direção própria — um par de zeros não aponta para lado nenhum —, por isso o objeto mantém o último rumo que levava: o volante fica virado para esse lado enquanto o modelo está parado, e premir um pedal põe-no em movimento segundo esse mesmo percurso, em vez de saltar para norte. Este rumo é lembrado enquanto o quadro está aberto, mas não é escrito no modelo, que nada diz sobre para onde estava virado um veículo parado.

Um par volta atrás como um termo, segundo o rumo em que foi premido, até voltar a estar parado — uma aceleração é um impulso, e um impulso sem o pé no pedal não é impulso nenhum. Desliga aqui o travão e o modelo só pode ser empurrado para a frente: não fica nada para o empurrar para trás.

As manetes do barco movem-se em profundidade e não para os lados, como as verdadeiras debaixo da mão: a manete de marcha avante afasta-se de ti à medida que o termo do acelerador sobe, e a de marcha atrás vem na tua direção à medida que sobe o do travão, por isso uma manete fica mais alta e mais fina quando se afasta e mais baixa e mais grossa quando se aproxima, com a haste a deslizar para a frente e para trás ao longo da ranhura onde está. Nenhuma das manetes se desloca de um lado para o outro do desenho.

Um pedal mantém-se premido, como o verdadeiro. Prime-o e nada acontece: o valor fica exatamente onde estava, enquanto o mantiveres premido. Desliza o ponteiro para cima sem largar e o pedal desce mais; desliza para baixo e alivia. Um deslize por toda a zona do pedal percorre toda a sua amplitude, do repouso até ao fim, por isso premes com a suavidade ou a força que quiseres.

Larga e o que esse pedal aciona volta sozinho ao repouso — um passo a cada décimo de segundo, até voltar a zero, tal como a mola por baixo de um pedal verdadeiro o levanta quando tiras o pé. Retorno dos pedais, no menu de definições, define o tamanho desse passo, igual para os dois pedais e seja qual for a forma como são lidos; põe-no a zero e o que foi premido fica onde o largaste. Premir outra vez apanha o pedal onde ele estiver no caminho de volta. O gesto inteiro — premir, deslizar e voltar ao repouso — anula-se num só passo. Um pedal cuja linha indique um termo calculado pelo próprio modelo não se pode mover, e mostra-o com o cursor de uma pega bloqueada; um pedal cuja linha tenha um simples número move esse número, por isso podes experimentar o objeto antes de o associares a alguma coisa.

O olho no início de cada linha mostra, no próprio objeto, o que esse pedal está a guardar: termo = valor, por cima do pedal que o aciona e na cor dessa linha, escrito como qualquer outra etiqueta de termo do quadro. Desliga-os e o desenho fica sem números nenhuns.

Barra de ferramentas

Captura de ecrã: barra de ferramentas de um componente
MenuContém
Nome e coresO nome do objeto e todas as cores com que o componente desenha
Como é lido Só nos componentes que leem uma direção: se é lida como ângulo ou como orientação. O botão mostra a opção escolhida
Como é mostrado Só nos componentes que se desenham de mais de uma maneira: a escolha do relógio entre mostrador e visor digital. O botão mostra a opção escolhida
VariáveisAs entradas do componente ligadas ao modelo
Definições Opções de apresentação, escala e interação

Cores

Um componente desenha com a paleta habitual do Modellus — as cores, as espessuras de linha e os tamanhos de letra vêm dos parâmetros de design partilhados, por isso os componentes parecem fazer parte do quadro. Mesmo assim, cada cor pode ser alterada individualmente no menu de nome e cores.

Pedir um objeto ao assistente

O assistente do Modellus constrói componentes com os mesmos blocos de construção. Só pode usar blocos aprovados, tem de associar os valores a variáveis que existam no teu modelo e não pode inserir um objeto que não passe na validação, por isso tudo o que produz se comporta como um objeto que tu próprio colocaste e continua totalmente editável.

Construir o teu próprio objeto

Um objeto não é código de desenho: é um único documento JSON que indica blocos aprovados, e esse mesmo documento é o que o editor inclui, o que o Catálogo publica e o que o assistente inventa. Tudo o que está nesta página pode ser construído assim.