Calculadora/Pré-processador
O utilitário de Calculadora/Pré-processador ("calculat.ma") é usado para avaliar expressões nos comandos do MicroStation. A sintaxe usada é a do "C".
- A calculadora exibe o resultado de uma expressão na barra de status. Por exemplo, se a Calculadora/Pré-processador estiver carregada, quando você insere o comando CALCULATOR 3*sin(90) o resultado "3" é exibido na Barra de status.
- O pré-processador substitui uma expressão com o resultado e passa o comando para o MicroStation. Por exemplo, se a Calculadora/Pré-processador estiver carregada, quando você inserir o comando AA={asin(1)} o ângulo ativo é definido para o resultado "90°".
Manipulação da expressão de C
Tanto a calculadora quanto o pré-processador processam a sintaxe C padrão para expressões.
A diferença mais significativa entre o processamento de expressão C e o processamento de expressão do Pré-processador/Calculadora está na divisão de número inteiro. Com o processamento de expressão de C, a divisão de número inteiro produz um resultado inteiro. Com o processamento da expressão de calculadora/pré-processador, divisão de inteiro produz um resultado de ponte flutuante. Por exemplo, em C, o resultado de 1/4 é 0. Com calculadora/pré-processador, o resultado de 1/4 é 0,25.
As funções cos, acos, sin, asin, atan, atan2, tan, cosh, tanh, sinh, exp, ldexp, log, log10, pow, e sqrt têm suporte. Essas funções são as mesmas funções do C padrão, exceto que os ângulos são expressos em graus, ao invés de radianos.
Variáveis e funções podem ser declaradas para o uso com calculadora/pré-processador. Para mais informações, consulte Personalizando calculadora/pré-processador.
Interação entre o pré-processador e o produto
A interação entre o pré-processador e o MicroStation enquanto a Calculadora/Pré-processador é carregada é descrita aqui.
O pré-processador examina todos comandos do MicroStation e procura texto delimitado por caracteres delimitadores designados. Os delimitadores padrão são chaves {}.
Quando o pré-processador encontra uma sequência de caracteres de texto delimitado, ele avalia a sequência de caracteres. Se a sequência de caracteres é uma expressão de C válida, o pré-processador substitui os delimitadores e a expressão com o resultado e re-examina a string de comando inteira. O pré-processador entra em loop dessa maneira até completar um passe sem substituir qualquer texto. O comando é então passado ao MicroStation para processamento como um comando normal.
O pré-processador processa strings de comandos resultantes de seleções de menu personalizado ou simulados por outros aplicativos (aplicativo MDL), além de comandos digitados. O pré-processador espera que o resultado de uma expressão seja um inteiro, um valor de ponto flutuante ou uma sequência de caracteres.
Valores padrão podem ser alterados na caixa de diálogo Pré-processador.
Calculadora e formato de saída do pré-processador
A calculadora e pré-processador possuem uma sequência de caracteres de formato que controla a exibição de resultado inteiro e outro que controla a exibição de resultado de ponto flutuante. Esses strings de formato são strings printf padrão C.
A calculadora não processa os resultados de sequência de caracteres. Se a calculadora avalia uma expressão que gera um resultado de ponteiro de caracteres, a calculadora exibe uma mensagem de erro. Se o pré-processador avalia uma expressão que gera um resultado de ponteiro de caracteres, o pré-processador substitui a expressão com a sequência de caracteres para o qual aponta o resultado.
Comandos da calculadora
Enquanto a Calculadora/Pré-processador estiver ativa, esses comandos de calculadora podem ser inseridos da mesma maneira que comandos do MicroStation:
- CALCULATOR [C_expression] — calcula o resultado de uma expressão C. O resultado da expressão é exibido na barra de status. O CALCULATOR sozinho dirige a calculadora para interpretar todos os comandos como expressões. Este modo permanece ativo até que outro comando seja ativado.
- CALCULATOR DECLARE DOUBLE [variable_name] — declara um ponto flutuante variável para a calculadora e pré-processamento. O valor inicial da variável é 0. Definição do valor e o valor são salvos entre sessões em "uservrbl.dat".
- CALCULATOR DECLARE INT [variable_name] — declara um número inteiro variável para a calculadora e pré-processamento. O valor inicial da variável é 0. Definição do valor e o valor são salvos entre sessões em "uservrbl.dat".
- CALCULATOR FORMAT DOUBLE [format_string] — especifica a string de formato usado para exibir o resultado de expressões de ponto flutuante. O padrão é %.16g.
-
CALCULATOR FORMAT INT [format_string] — especifica a string de formato usada para exibir o resultado de expressões de número inteiro. O padrão é %d.
Por exemplo, para calcular o valor hexadecimal do decimal 100, insira CALCULATOR FORMAT INT %#X e depois insira CALCULATOR 100.
Por exemplo, para calcular o valor decimal do hexadecimal 100, insira CALCULATOR FORMAT INT %d e depois insira CALCULATOR 0x100.
- UCCALC [C_expression] — calcula o resultado de uma expressão C, mas não exibe o resultado.
Personalizando a calculadora/pré-processador
Você pode personalizar a calculadora/pré-processador da seguinte forma:
- Adicione variáveis através do arquivo "uservrbl.dat".
- Adicione variáveis e funções adicionais de programas MDL.
- Declara variáveis com comandos CALCULATOR DECLARE.
- Substitua completamente o pré-processador com outro programa MDL.
Durante sua inicialização, calculadora/pré-processador lê "uservrbl.dat". Ela procura o arquivo no diretório atribuído à variável de configuração MS_DATA. Cada definição de variável no arquivo tem o seguinte formato:<type_name> <variable_name> <initial_value>
Os valores possíveis para type_name são double e int. Os nomes de variáveis definidos no "uservrbl.dat" são restritos a um máximo de 16 caracteres. O valor inicial da sequência de caracteres começa com o primeiro caractere não-vazios após o nome da variável. Continua até o fim da linha.
Segue um exemplo de um arquivo de inicialização padrão:
int baseValue 1 double baseUor 1.0
Quando a calculadora/pré-processador está sendo descarregado, ele atualiza o "uservrbl.dat." Durante a atualização, ele registra nomes, tipos e valores das variáveis definidas no arquivo "uservrbl.dat" e aqueles definidos com os comandos CALCULATOR DECLARE. Ele não salva informações sobre variáveis publicados a partir de programas MDL.
Programas MDL podem adicionar funções e variáveis para a calculadora, publicando-os com a função mdlCExpression_symbolPublish. Usando um conjunto de símbolos que tem uma visibilidade VISIBILITY_CALCULATOR torna a função ou a variável disponível para a calculadora. Esta é a única maneira de adicionar funções na calculadora.