Neste artigo serão abordados os seguintes conteúdos:
Variáveis
Variáveis são utilizadas em fórmulas para auxílio na personalização do Promob. As variáveis são valores que mudam de acordo com o cenário, permitindo assim que as regras da biblioteca do sistema sejam configuradas mais facilmente. Se os valores utilizados em referências ou cadastro de agregados, por exemplo, fosse sempre fixo, cada vez que um dos fatores fosse alterado, toda biblioteca ficaria desconfigurada. Por isso, o uso das variáveis é importante para a biblioteca do Promob.
Abaixo, seguem as variáveis do Promob Catalog:
Variável |
Função |
$PW$ |
Largura do pai |
$PH$ |
Altura do pai |
$PD$ |
Profundidade do pai |
$W$ |
Largura do agregado |
$H$ |
Altura do agregado |
$D$ |
Profundidade do agregado |
$UW$ | Largura do agregado na unidade de medida do Promob |
$UH$ | Altura do agregado na unidade de medida do Promob |
$UD$ | Profundidade do agregado na unidade de medida do Promob |
$InsertWidth$ |
Largura de Inserção |
$InsertHeight$ |
Altura de Inserção |
$InsertDepth$ |
Profundidade de Inserção |
$A.Max.X$ ou $A.Min.X$ |
Posição máxima ou mínima em X no ambiente |
$A.Max.Y$ ou $A.Min.Y$ |
Posição máxima ou mínima em Y no ambiente |
$A.Max.Z$ ou $A.Min.Z$ |
Posição máxima ou mínima em Z no ambiente |
$MaxWidth$ ou $MinWidth$ |
Retorna a largura máxima ou mínima para inserção |
$MaxHeigth$ ou $MinHeigth$ |
Retorna a altura máxima ou mínima para inserção |
$MaxDepth$ ou $MinDepth$ |
Retorna a profundidade máxima ou mínima para inserção |
$N$ |
Número total de repetições |
$NI$ |
Posição do item na repetição |
$I$ |
Valor 1 quando o módulo está invertido, valor 0 quando não está |
$CW$ |
Valor 1 quando alterou medida de largura, valor 0 quando não alterou |
$CH$ |
Valor 1 quando alterou medida de altura, valor 0 quando não alterou |
$CD$ |
Quando alterou qualquer medida |
$CP$ |
Quando alterou a medida de profundidade |
$X$ |
Retorna o X do item |
$Y$ |
Retorna o Y do item |
$Z$ |
Retorna o Z do item |
$PZ$ |
Retorna o valor faltando do módulo ao piso |
$PositionService$ |
Retorna a descrição da opção utilizada por algum filho que possui serviço de posicionamento |
$ParentWallHeight$ |
Valor da altura da parede pai. Se não existir parede pai, retorna o limite máximo da altura do ambiente |
$HasChildren(id_entidade)$ |
Retorna se existe uma entidade (id_entidade) filha (True ou False) |
Round(valor) |
Retorna o valor arredondado para cima ou para baixo dependendo do que estiver mais próximo do número informado entre parênteses |
Ceil(valor) |
Retorna o arredondamento para cima do número informado entre parênteses |
Floor(valor) |
Retorna o arredondamento para baixo do número informado entre parênteses |
IMPORTANTE: a adição de P. ou Parent. faz subir o nível de onde é buscada a informação. Por exemplo:
- $P.P.W$ retorna a largura do pai do pai do item.
- $P.P.H$ retorna a altura do pai do pai do item.
- $P.P.D$ retorna a profundidade do pai do pai do item.
Operadores
Os operadores são símbolos que podem ser utilizados na montagem de referências e no cálculo de posição e dimensões de agregados.
Abaixo, segue tabela com lista de operadores para uso no Promob Catalog:
Operador |
Função |
Exemplo |
VAR1 + VAR2 |
Adição: VAR1 somando a VAR2 |
$PW$ + 50 |
VAR1 - VAR2 |
Subtração: VAR1 subtraído de VAR2 |
$PD$ - $D$ |
VAR1 * VAR2 |
Multiplicação: VAR1 multiplicado por VAR2 |
$PH$*2 |
VAR1 / VAR2 |
Divisão: VAR1 dividido por VAR2 |
$PW$/2 |
VAR1 < VAR2 |
Menor que: VAR1 menor que VAR2 |
$PW$ < 400 |
VAR1 > VAR2 |
Maior que: VAR1 maior que VAR2 |
$PW$ > 800 |
VAR1 <= VAR2 | Menor ou igual a: VAR1 menor ou igual a VAR2 | $PW$ <=1000 |
VAR1 >= VAR2 | Maior ou igual a: VAR1 maior ou igual a VAR2 | $PW$ >= 200 |
VAR1 == VAR2 | Igual: VAR1 igual a VAR2 | $PH$ == 400 |
VAR1 ! = VAR2 |
Diferente de: VAR1 diferente de VAR2 |
$PD$ !=550 |
!VAR1 |
Negação: não é VAR1 |
!($PD$ == 500) |
VAR1 && VAR2 |
"E" lógico: VAR1 e VAR2 |
$PW$ > 200 && $PW$ < 800 |
VAR1 | | VAR2 |
"OU" lógico: VAR1 e VAR2 |
$PH$ == 200 || $PH$ == 400 |
Fórmulas
As fórmulas são usadas para configuração de posicionamento, dimensões e repetição de agregados, além de serem utilizadas também para o cadastro de referências, opções de remoção, condições de visibilidade, etc.
Abaixo, seguem algumas das fórmulas mais utilizadas:
Fórmulas para centralizar agregado
Fórmula |
Função |
Exemplo |
$PW$/2-$W$/2 |
Centraliza agregado na largura |
Largura do módulo dividido por 2 menos a largura do agregado dividido por 2 |
$PH$/2-$H$/2 |
Centraliza agregado na altura |
Altura do módulo dividido por 2 menos a altura do agregado dividido por 2 |
$PD$/2-$D$/2 |
Centraliza agregado na profundidade |
Profundidade do módulo dividido por 2 menos a profundidade do agregado dividido por 2 |
Fórmulas para alinhar agregado
Fórmula |
Função |
Exemplo |
$PW$ - $W$ |
Alinha agregado à direita do módulo |
Largura do módulo menos a largura do agregado |
$PH$ - $H$ |
Alinha agregado ao topo do módulo |
Altura do módulo menos a altura do agregado |
- $PD$ + $D$ |
Alinha frente do agregado à frente do módulo |
Menos |
IMPORTANTE: Estas fórmulas citadas para alinhar e centralizar aplicam-se a agregados que possuem o ponto zero localizado no canto inferior esquerdo traseiro do desenho.
Para casos em que esta regra não se aplica, é necessário desenvolver fórmulas específicas para tal.
Os valores que devem ser alterados nas fórmulas detalhadas abaixo são apenas VAR1 e VAR2.
Fórmulas para fazer a repetição de agregados
Com distância fixa: a distância deve ser fixa pois, a dimensão dos vãos é independente da quantidade de agregados repetidos, sendo sempre a mesma.
Fórmula |
Função |
Eixo X: VAR1 + {($W$+VAR2}*($NI$-1)} |
Onde VAR1 é o valor da distância antes de começar a repetição (da esquerda para a direita) e VAR2 é o valor da distância depois da repetição |
Eixo Y: VAR1 + {($D$+VAR2)*($NI$-1)} |
Onde VAR1 é o valor da distância antes de começar a repetição (de trás para frente) e VAR2 é o valor da distância depois da repetição. |
Eixo Z: VAR1+{($H$+VAR2)*($NI$-1)} |
Onde VAR1 é o valor da distância antes de começar a repetição (de baixo para cima) e VAR2 é o valor da distância depois da repetição. |
Com distância variável: a distância deve ser variável pois, de acordo com a quantidade de agregados repetidos, o tamanho dos vãos muda (aumenta ou diminui) e se mantém com a mesma dimensão de todos vãos.
Fórmula |
Função |
Eixo X: $N$ == 1 ? $PW$/2 - $W$/2: ((($PW$ - (2*VAR1) - ($W$ * $N$))/($N$+1)) * $NI$) + VAR1 + ($NI$ > 1 ? ($NI$ - 1) * $W$ : 0 ) |
Onde VAR1 deve ser substituído pela espessura da lateral. |
Eixo Y: $N$ == 1 ? -($PD$/2 - $D$/2 + (VAR1 + VAR2)/2) : - (((($PD$ - (VAR1 + VAR2) - ($D$ * $N$))/($N$ + 1)) * $NI$) + (VAR1 + VAR2) + ($NI$ > 1 ? ($NI$ - 1) * $D$: 0)) |
Onde VAR1 deve ser substituído pela espessura do fundo e VAR2, pelo recuo do fundo. |
Eixo Z: $N$ == 1 ? $PH$/2 - $H$/2 + VAR2/2 : ((($PH$ - VAR2 - (2 * VAR1) - ($H$ * $N$))/($N$ + 1)) * $NI$) + VAR2 + VAR1 + ($NI$ > 1 ? ($NI$ - 1) * $H$ : 0 ) |
Onde VAR1 deve ser substituído pela espessura da base e VAR2, pela altura do rodapé. |
Fórmulas gerais:
Fórmula |
Função |
@(VAR1 > VAR2 ? VAR3 : VAR4) |
A arroba faz com que a expressão entre parênteses retorne apenas o valor final, enquanto o: ? significa ENTÃO : significa SE NÃO Desta forma, lê-se: se VAR1 for maior que VAR2, então VAR3, Se não, VAR4. |
VAR1 > VAR2 && VAR1 <VAR3 |
Testa se um valor é maior que outro e menor que um terceiro valor. |
'%CHECKED(VAR1.VAR2)%' = = 'True' ? 'VAR3' : 'VAR4' |
Testa se um agregado está no ambiente e executa uma ação, com VAR1 igual ao campo ID do Módulo (aggregate) e VAR2 igual ao campo ID do Agregado. Lê-se: se o agregado com ID de módulo X e ID de agregado Y estiver ativo (Verdadeiro), então (?) retorna VAR3; se não (:) retorna VAR4. |
$A.Max.Z$ - ($PH$+$PZ$) |
Retorna o valor faltante do módulo ao fim da parede. Lê-se: altura máxima da parede menos (altura do módulo mais a posição na parede) |
Para montar testes pode-se seguir os exemplos abaixo:
Exemplo 1:
@($PD$ = 500 ? 500 : $PD$-50)
Onde lê-se:
SE $PD$ = 500 ENTÃO 500 SE NÃO $PD$-50.
@ - O arroba faz com que a expressão entre parênteses retorne apenas o valor final.
? – É o ENTÃO da fórmula
: - É o SE NÃO da fórmula
O exemplo acima pode ser aprimorado para fórmulas mais complexas como:
Exemplo 2:
@($PD$ = 500 ? 500 : ($PD$ = 600 ? 550 : $PD$-50))
No exemplo, logo após o SE NÃO, será realizado outro teste.
Exemplo 3:
($PD$ 500) && ($PW$ = 600)
No exemplo, o símbolo && significa E, ou seja, as duas situações tem de ser verdadeiras.
Exemplo 4:
($PD$ 500) || ($PW$ = 600)
No exemplo, o símbolo || significa OU, ou seja, apenas uma das situações tem de ser verdadeiras.