Colunas avaliadas

As colunas avaliadas são colunas especiais, das quais os resultados dependem de outras colunas usando expressões definidas pelo usuário. São suportados 2 tipos de colunas avaliadas: colunas formula e template.

Colunas de fórmula

Uma Lista de Materiais suporta campos de fórmula. A mesma sintaxe é usada no comando EXTRACAODADOS. FormulaExpressao é a expressão no formato dos campos de fórmula \AcExpr. Esta pode conter constantes como PI, ou funções como SIN (Seno). Um operando em uma expressão pode ser um TituloColuna colocado entre colchetes de seta (<>).

Por exemplo, a fórmula =<Massa>/<Volume> calcula a densidade média do componente.

Se uma linha não contiver um valor, um valor padrão será usado. É possível especificar o valor padrão para um operando usando a seguinte sintaxe: <"ColumnTitle",DefaultValue> em que ColumnTitle é o título da coluna exigida e DefaultValue é o valor pré-definido. ColumnTitle deve estar entre aspas duplas ("). Se nenhum valor padrão estiver especificado, um vazio será usado, o que na maioria dos casos resulta em uma saída vazia.

Uma coluna de fórmula pode conter múltiplas expressões. Cada expressão deve ser incluída por colchetes de soma ({}). Essas expressões são avaliadas da primeira para a última, e a primeira que produz uma saída não-vazia é usada.

Uma fórmula pode se referir a outras colunas de fórmulas, desde que elas não formem um laço infinito (loop). Em uma BOM hierárquica, uma fórmula também pode se referir a valores da linha pai adicionando Parent (pai): antes do nome da coluna. Esta também pode se referir a propriedades que não estão explicitamente adicionadas à tabela, mas todas as outras colunas de fórmula referidas na fórmula devem existir na tabela. Você ainda pode usar essas colunas exibidas como invisíveis na tabela BOM, em expressões de fórmula.

Para propriedades de distância, área, volume e massa, os valores serão convertidos para a unidade definida-pelo-usuário, antes de usá-los na expressão da fórmula. Se a unidade definida-pelo-usuário não estiver definida, será usada a unidade do documento. Para a propriedade de massa, quilograma será usado em documentos métricos e libras (pound) em documentos imperiais.

Colunas de template

As colunas de template permitem combinar várias propriedades, bem como um texto personalizado, em uma única coluna. Uma sintaxe especial, baseada em expressões Diesel, é usada para definir colunas de template. Expressões para colunas de template devem começar com o sinal $. Um operando em uma expressão pode ser um TituloColuna colocado entre colchetes de seta (<>). Também é possível usar funções especiais:

Função Descrição
$(+, arg1, arg2[, ... , arg9]) Adiciona os argumentos fornecidos ao primeiro.
$(-, arg1, arg2[, ... , arg9]) Subtrai do primeiro os argumentos fornecidos.
$(*, arg1 , arg2[, ... , arg9]) Multiplica o primeiro argumento pelos argumentos fornecidos.
$(/, arg1, arg2[, ..., arg9]) Divide o primeiro argumento pelos argumentos fornecidos.
$(=, arg1, arg2) Retorna 1 se arg1 for igual a arg2; caso contrário, retorna 0. Ambos arg1 e arg2 devem ser números.
$(<, arg1, arg2) Retorna 1 se arg1 for menor que arg2; caso contrário, retorna 0. Ambos arg1 e arg2 devem ser números.
$(>, arg1, arg2) Retorna 1 se arg1 for maior que arg2; caso contrário, retorna 0. Ambos arg1 e arg2 devem ser números.
$(!=, arg1, arg2) Retorna 1 se o arg1 não for igual ao arg2; caso contrário, retorna 0. Tanto o arg1 quanto o arg2 devem ser números.
$(<=, arg1, arg2) Retorna 1 se arg1 for menor ou igual a arg2; caso contrário, retorna 0. Ambos arg1 e arg2 devem ser números.
$(>=, arg1, arg2) Retorna 1 se arg1 for maior ou igual a arg2; caso contrário, retorna 0. Ambos arg1 e arg2 devem ser números.
$(and, arg1, arg2[, ... , arg9]) Aplica a operação AND bit-a-bit aos argumentos
$(angtos, angle[, mode, precision]) Converte o ângulo para string em relação ao modo dado (0 - graus, 1 - graus/min/seg, 2 - grados, 3 - radianos) e precisão.
$(delim, delimiter_string) Insere um delimitador inteligente O delimitador de string será adicionada à saída somente se a saída antes e depois deste delimitador não estiver vazia.
$(edtime, time, format) Formata a data de acordo com a string de formato dada
$(eq, arg1, arg2) Retorna 1 se arg1 for igual a arg2; caso contrário, retorna 0. Ambos arg1 e arg2 devem ser texto.
$(eval, expression) Avalia a expressão dada como uma expressão Diesel.
$(fix, value) Trunca o valor real para o inteiro.
$(getvar, variable) Retorna o valor da variável de sistema dada.
$(if, arg, then[, else]) Retorna 'then' se 'arg' não for 0; caso contrário, retorna 'else' ou string vazia se 'else' não for fornecido.
$(index, position, comma_separated_string) Retorna a substring na posição dada na string separada-por-vírgulas.
$(nth, position, arg1[, arg2, ... , arg9]) Retorna o argumento na posição dada.
$(or, arg1, arg2[, ..., arg9]) Aplica operação OR bit-a-bit aos argumentos.
$(rtos, value[, mode, precision]) Formata o valor dado em relação ao modo e precisão necessários.
$(strlen, string) Retorna o comprimento da string dada.
$(substr, string, start[, length]) Retorna a substring da 'string' de 'iniciar' do 'comprimento' dado. A numeração começa a partir de 1.
$(upper, string) Converte 'string' em maiúsculas (caixa alta).
$(xor, arg1, arg2[, ... , arg9]) Aplica XOR bit-a-bit a todos os argumentos.

Uma coluna de template pode conter múltiplas expressões. Cada expressão deve ser incluída por colchetes de soma ({}). Essas expressões são avaliadas da primeira para a última, e a primeira que produz uma saída não vazia é usada.

Uma coluna template pode se referir a outras colunas avaliadas, desde que não formem um laço infinito (loop). Em uma BOM hierárquica, uma coluna de template também pode se referir a valores na linha pai, adicionando Parent: antes do nome da coluna. Isto também pode se referir a propriedades que não estão explicitamente adicionadas à tabela, mas todas as outras colunas avaliadas referidas em qualquer uma das expressões devem estar presentes na tabela. Você ainda pode usar colunas exibidas como invisíveis na tabela BOM em expressões de template.

Você pode usar a string "\n" para adicionar uma quebra de linha.

Por exemplo, a expressão a seguir combina as propriedades PartNumber, Width, Height e Length:

${<PartNumber>$(delim," X ")<Width>$(delim," X ")<Height>$(delim," X ")<Lenght>}

Configurador de expressões

Você pode utilizar a caixa de diálogo Configurador de expressão para configurar uma coluna avaliada. Esta caixa de diálogo está disponível no Gerenciador de BOM.

Esta caixa de diálogo permite que você defina o título e a unidade da coluna, edite a expressão usando um editor com destaque de sintaxe e preenchimento automático, e veja uma tabela BOM com a coluna avaliada. Para uma coluna de template, a seção Template permite facilmente inserir, mover e excluir propriedades, assim como delimitadores e textos personalizados.