Nesta postagem, você aprenderá a escrever macros para o software CAD e, em seguida, como adicionar Mais poder às macros através de programas de uma linha escritos em código Diesel.

ATENÇÃO: Este artigo no Blog é transcrito aqui no idioma Português-Brasil, mas pelo fato do artigo original ter sido escrito em Inglês, é possível que algumas instruções possam gerar conflito entre os idiomas. Sugiro consultar os códigos de origem (no livro ou na versão em inglês deste post) por ser mais seguro para garantir que seu trabalho esteja bem resolvido.

Quando você clica em um botão ou faz uma seleção de menu, o BricsCAD nos bastidores executa um macro. Esta é uma série de um ou mais comandos atribuídos ao botão ou item de menu.

Com o comando Personalizar, você pode alterar as macros que estão atrás dos botões, seleções de menu, cliques do mouse e outras ações. Barras de ferramentas, fitas e a maioria das outras partes da interface do usuário BricsCAD usam o mesmo formato para macros. Esta é uma boa notícia por esse motivo:

Quando você aprende a escrever uma macro para uma, sabe como escrever macros para todas as

Porém, há apenas uma diferença: os menus têm mais opções de interface do que os outros e, portanto, eles têm mais recursos quando se trata de macros.

Algumas macros usam Código diesel, uma linguagem de programação simplista. É usado para efeitos especiais, como alternar marcas de seleção na frente dos itens de menu. A codificação usada pelo Diesel é realmente, realmente misterioso. Felizmente, os mesmos bits do código Diesel podem ser usados novamente e, portanto, basta reconhecer o que o código faz.

For a full overview of Diesel for BricsCAD, you can view the official, BricsCAD diesel Developer Guide.


Os seguintes tópicos são abordados neste artigo:

  • Aprendendo a sintaxe da macro
  • Escrevendo macros específicas para menus
  • Codificação com Diesel
  • Catalogando funções Diesel

RESUMO RÁPIDO DE METACARACTERES EM MACROS

As macros usam nomes de comandos e opções, metacaracteres, código Diesel e funções LISP em menus, barras de ferramentas e outras áreas da caixa de diálogo Personalizar. Os metacaracteres consistem em pontuação que representa ações. Aqui estão os metacaracteres usados pelo BricsCAD:

^-- (carat) representa o Ctrl chave. As seguintes combinações de teclas de controle são válidas nas macros:

  • ^B Alterna o modo snap
  • ^C Cancela o comando atual
  • ^D Alterna o formato da coordenada
  • ^E Alterações para o próximo plano isométrico
  • ^G Alterna a exibição da grade
  • ^O Alterna o modo ortográfico
  • ^S Seleciona a entidade sob o cursor
  • ^T Alterna o modo tablet
  • ; (ponto e vírgula) representa a tecla Enter.
  • ' (aspas simples) força o uso de comandos no modo transparente.
  • _ (sublinhado) força o uso de versões em inglês de nomes de comandos.
  • - (traço) força o uso de versões de comandos na linha de comando.
  • \ (barra invertida) pausa a macro para entrada do usuário.
  • ( (parênteses abrir) sinaliza o início de uma função LISP.
  • $( sinaliza o início de uma instrução Diesel.
  • ) (parênteses fechar) sinaliza o fim das funções LISP e das declarações Diesel.

Os seguintes metacaracteres são usados apenas por macros de menu:

Macros Diesel Code BricsCAD

  • $M sinaliza o início de uma macro complexa.
  • .! exibe uma marca de seleção para indicar que a alternância está ativada.
  • ~ (til) esmaece um item de menu, para indicar que ele não está disponível.
  • & (e comercial) sinaliza a tecla aceleradora, para acessar os itens de menu com o Alt chave.

Para mais detalhes, consulte Visão geral de referência do desenvolvedor do BricsCAD.

Macros simples

Uma macro simples consiste em um único comando, prefixado por alguns caracteres de aparência incomum. Por exemplo, aqui está a macro anexada ao botão Linha na barra de ferramentas Desenhar:

^c^c_line

A mesma macro exata é usada para barras de ferramentas e macros, como mostrado abaixo por Linha no menu Desenhar:

Macros Diesel Code BricsCAD
Uma macro básica mostrada na propriedade Command

Os caracteres ^ c ^ c_ na macro têm os seguintes significados:

  • ^ c - é um caractere de controle. Imita pressionar Esc no teclado, cancelando o comando atualmente em andamento. O símbolo de quilate (^) alerta BricsCAD de que o caractere a seguir é um caractere de controle e não faz parte de um nome de comando ou alias.
    (O que 'c' tem a ver com a tecla Esc? Nos anos 80 e 90, quando os computadores desktop usavam o MS-DOS para o sistema operacional, os usuários pressionavam Ctrl + C para cancelar um comando; o C era abreviado para “cancelar . ”No Windows, a Microsoft alterou o significado de Ctrl + C para“ copiar para a área de transferência ”, mas nas macros, continua a significar“ cancelar ”.)
  • ^c^c - a maioria das macros começa com dois ^c porque muitos comandos BricsCAD têm dois níveis de profundidade.
    Extra ^ cs não fazem mal; de fato, versões mais antigas do BricsCAD prefixavam todas as macros com três ^ cs. para manipular comandos como o PEdit, cujas opções podem atingir três níveis de profundidade. Quando uma macro é transparente (começa com o 'apóstrofo), não é possível prefixá-la com os caracteres Cancelar; mais sobre isso mais adiante nesta seção.
  • _ - o sublinhado é uma convenção que internacionaliza o comando.
    Prefixar o nome do comando com o sublinhado garante que a versão em inglês do comando sempre funcione, seja usada com as versões em alemão, japonês ou espanhol do BricsCAD.
  • linha - é o nome do comando a ser executado.
    Nas macros, você digita os comandos BricsCAD e suas opções exatamente como os digitaria no teclado no prompt de comando ':'. Nada é necessário no final para finalizar o comando. BricsCAD executa automaticamente o “pressionar Enter” para você.
DICA Macros não diferenciam maiúsculas de minúsculas. Isso significa que os caracteres nas macros podem ser maiúsculas, minúsculas ou mistas; não importa para BricsCAD. O seguinte tem o mesmo efeito:

  • ^C^_LINE
  • ^c^c_line
  • ^C^c_Line

COMANDOS TRANSPARENTES EM MACROS

A maioria das macros começa cancelando os comandos existentes. Mas, às vezes, você deseja usar um comando de forma transparente; ou seja, durante outro comando. Por exemplo, você pode aumentar o zoom no desenho durante um comando.

Os comandos transparentes são indicados pelo prefixo do apóstrofo ('), assim:

'_zoom

Comandos tracejados

Alguns comandos no BricsCAD começam com um traço; estes são aqueles que operam na linha de comando, em vez de exibir uma caixa de diálogo.

Um exemplo é o Vista comando: View exibe uma caixa de diálogo, enquanto -Vista exibir prompts na linha de comando. Para forçar o View a exibir seus prompts na linha de comando, digite o seguinte:

^c^c_-Vista

OPÇÕES E ENTRADA DO USUÁRIO

A macro pode especificar opções de comandos, bem como aguardar a entrada dos usuários.

Opções

As opções são como comandos; você acabou de escrever o nome da opção. A única coisa a observar é que você deve usar ponto e vírgula (;) para separar as opções dos comandos e um do outro.

Aqui está um exemplo com o comando Layout e sua nova opção:

^ c ^ c_layout; _new

Observe que as opções também podem receber o prefixo de sublinhado (_) para internacionalizá-las.

Você pode especificar o nome da opção na íntegra (_novo) ou usar a abreviação aprovada, como _n). Lembre-se de que as abreviações aprovadas são indicadas por letras maiúsculas nos nomes das opções exibidas no prompt de comando, como estes:

: layout

Digite a opção de layout [Copiar / Excluir / Novo / Renomear / Definir / Salvar / Modelo /? listar] : n

Você pode usar "n" para a opção Nova e "s" para a opção Definir, mas deve usar "sa" para a opção Salvar.

É perfeitamente válido usar "?" (como em “? listar”) nas macros, mas você não pode usar espaços, porque eles são interpretados como pressionando Entre.

Pausando para entrada do usuário

Para permitir que os usuários insiram dados, as macros empregam o caractere de barra invertida (\). Isso força a macro a aguardar que o usuário faça alguma coisa. Geralmente, a ação esperada é que o usuário insira um destes:

  • Escolha um ponto na tela ou
  • Digite as coordenadas x, y no teclado

A macro aguarda o usuário entrar no ponto central do círculo; o círculo é sempre 1 unidade em raio:

^ C ^ C_circle;\1

Quando você executa essa macro, como em uma seleção de menu ou botão da barra de ferramentas, ocorre o seguinte na linha de comando:

  • : _circle Macro inicia o comando
  • 2Ponto /… /
    : (O usuário escolhe um ponto) A macro aguarda que o usuário escolha um ponto no desenho (ou insira um par de coordenadas)
  • Diâmetro/ <5>: 1 Macro insere 1 (para o raio) e finaliza o comando

Mas a ação esperada pode ser outras coisas também, dependendo do comando. As opções no comando Girar esperam um ângulo (o usuário escolhe dois pontos na tela ou insere um único número), no comando Texto uma linha de texto (o usuário digita uma ou mais palavras) e assim por diante.

Quando um comando espera mais de uma entrada do usuário, você pode digitar várias barras invertidas seguidas, como você vê a seguir.

Combinando opções e pausas

Opções e pausas podem ser combinadas. Neste exemplo, a macro desenha uma elipse depois que o usuário especifica um ponto central e o ângulo de rotação:

^ c ^ c_ellipse; _c; \\ _ r

Aqui está o que o código significa:

  • ^ c ^ c cancelar qualquer outro comando que possa estar ativo no momento
  • Elipse é o nome do comando, enquanto o prefixo sublinhado (_) o internacionaliza.
  • ; (ponto e vírgula) é como pressionar Entre ou a barra de espaço no teclado.
  • C é o comando Ellipse Centro opção. Assim como você digita uma abreviação de opções no teclado, também pode usar as mesmas abreviações nas macros - ou pode especificar o nome inteiro da opção, como "Centro".
  • \ (barra invertida) pausa a macro, aguardando o usuário. Duas barras invertidas seguidas significa que a macro espera que o usuário faça duas escolhas.
  • R é a abreviação de comandos do Ellipse Raio .

Vamos olhar novamente para a macro, desta vez em paralelo com os prompts do comando:

  • ^ C ^ C (Pressione Esc, Esc.)
  • _elipse; : elipse
  • ; (Pressione Enter.)
  • _C; Arco / Centro / : c (Press Enter.)
  • \ Centro da elipse: (Pick point.)
  • \ Ponto final do eixo: (ponto de seleção.)
  • _R Rotação/ : r (Press Enter.)
    Rotação em torno do eixo principal: (ponto de seleção)

Um ponto-e-vírgula final (ou seja, Enter) e uma barra invertida (ou seja, uma pausa para entrada do usuário) não são necessários no final da macro, porque a macro não precisa mais esperar pelo usuário.

DICA Você pode incluir aliases, código Diesel e rotinas LISP na barra de ferramentas e macros de menu. Não existe um "depurador" para macros e, portanto, você precisa descobrir os erros por conta própria.

Outras teclas de controle

Você conheceu ^ C, a tecla de controle para cancelar um comando. BricsCAD também suporta todas essas combinações de teclas de controle usando o prefixo ^:

Chave de controle Significado                                              Comando equivalente
^B Alternar modo snap _'snap; _t
^C Comando Cancelar Pressione Esc
^D Alternar coordenadas _'coordinate; _t
^E Alterar plano isométrico _'isoplane
^G Alternar exibição da grade _'grid; _t
^O Alternar modo ortográfico _'orthogonal; _t
^S Seleciona a entidade sob o cursor  . . .
^T Alternar modo tablet _'tablet; _t

Pense nesses combos de teclas de controle como abreviações, como aliases. Você pode usar essas teclas de controle como atalhos nas macros sozinhas, assim:

Macro que consiste apenas em uma macro da tecla Ctrl

METACARACTERES ESPECÍFICOS DE MENU

Os menus usam metacaracteres adicionais que não são necessários nas barras de ferramentas. Aqui está o conjunto completo:

Metacaractere Significado
.! Exibe uma marca de seleção para indicar que a alternância está ativada
~ (til)
Item de menu em tons de cinza para indicar que não está disponível
& (e comercial) Ativa a tecla aceleradora para acessar o item de menu do teclado
Outros metacaracteres
_ (sublinhado) Internacionaliza o comando ou opção
" (citar) Inicia um comando de forma transparente
\ (barra invertida) Aguarda a entrada do usuário
; (ponto e vírgula) Equivalente a pressionar Enter ou a barra de espaço
$( Inicia uma declaração Diesel
( Inicia uma rotina LISP

 

DICA Alguns metacaracteres do AutoCAD®não funcionam, como [], +, \ t e *.

Codificação Diesel

Às vezes, você precisa de código adicional para ajudar a macro a tomar decisões. Por exemplo, o menu Exibir lista três itens que possuem marcas de seleção ao lado deles: Barra de comandos, Barra de status e Barras de rolagem. Quando as três barras são exibidas, as marcas de seleção aparecem no menu; quando não exibido, as marcas de seleção não são mostradas.

Esq: As marcas de seleção indicam que os elementos da interface do usuário estão ativados.
Dir: Nenhuma marca de seleção significa que os elementos estão desativados.

É fácil obter um menu para exibir a marca de seleção: basta adicionar o !. metacaractere para a macro. No entanto, é difícil fazer o BricsCAD ativar e desativar o real, porque a exibição das marcas de seleção é uma função lógica. Ele deve aparecer no menu apenas quando o elemento da interface do usuário está ativado.

É aqui que o código Diesel entra.

SOBRE DIESEL

O diesel tem dois propósitos nas macros: uma é para tomar decisões e a outra é para personalizar a barra de status. O nome é abreviação de "linguagem de expressão de seqüência direta avaliada interativamente" e sua lógica de programação é tão clara quanto o significado da sigla - tão clara quanto a lama.

RESUMO RÁPIDO DE FUNÇÕES A DIESEL

As seguintes funções Diesel são suportadas pelo BricsCAD:

FUNÇÕES DE MATEMÁTICA

  • + Adição
  • –  Subtração
  • Multiplicação
  • / Divisão

FUNÇÕES LÓGICAS

  • = Igual
  • < Menor que
  • > Maior que
  • != Não igual
  • <= Menor ou igual
  • = Maior ou igual
  • e AND lógico bit a bit
  • eq Determina se todos os itens são iguais
  • if Se então
  • ou OR bit a bit lógico
  • xor XOR bit a bit lógico

FUNÇÃO DE CONVERSÃO NUMÉRICA

  • consertar Trunca números reais em números inteiros arredondados
  • angtos Formata ângulos (abreviação de ângulo para corda)
  • rtos Formata números com unidades (abreviação de real para string)

FUNÇÕES DE STRING (TEXTO)

  • índice Extrai um elemento de uma série separada por vírgula
  • enésimo Extrai o enésimo elemento de um ou mais itens
  • strlen Retorna o número de caracteres na string (abreviação de comprimento da string)
  • substr Retorna uma parte de uma string (abreviação de substring)
  • superior Converte uma sequência de texto em caracteres maiúsculos

FUNÇÕES DO SISTEMA

  • edtime Formata a hora do sistema.
  • avaliação Passa uma corda para Diesel.
  • getenv Obtém o valor de uma variável de ambiente.
  • getvar Obtém o valor de uma variável do sistema.
  • linelen Retorna o comprimento da exibição

O diesel tem um formato incomum para um idioma macro. Toda função começa com um cifrão e um parêntese, assim:

$ (função, variável)

O objetivo da inicial $ sinal é alertar BricsCAD que uma expressão Diesel está a caminho, assim como o ( O símbolo alerta BricsCAD de que uma expressão LISP está chegando. o $ O símbolo é frequentemente usado pelos programadores para indicar uma sequência de texto.

Os parênteses de abertura e fechamento sinalizam o início e o fim da função Diesel. As funções podem ser aninhado, onde uma função Diesel está entre parênteses de uma segunda. Você usa o aninhamento para que uma função avalie o resultado da segunda. O diesel é completamente reentrante.

Porque os programas Diesel consistem em apenas uma linha - no máximo! - o aninhamento é a única maneira de realizar mais de uma função durante uma macro.

Para algumas funções, o Diesel pode operar com até nove valores por vez, como adicionar vários valores juntos. O parêntese de fechamento alerta Diesel para o final da lista de valores.

BricsCAD fornece um catálogo de 26 funções Diesel. A maioria deles usa pelo menos uma variável, algumas até nove. Uma vírgula sempre separa o nome da função de suas variáveis, bem como as próprias variáveis. Diesel não tolera espaços.

As funções diesel podem ser executadas na linha de comando, nas barras de ferramentas e macros de menu, no código LISP e em outras áreas do BricsCAD, como a barra de status. Para trabalhar na barra de status, use o ModeMacro comando, seguido pela expressão Diesel.

(John Walker, o Autodesk® programador que criou o Diesel, observa que funções adicionais, como setvar e Tempo, poderia ser implementado, mas nunca foi. Ele fornece instruções para acessar o código fonte Diesel e recompilando-o com outras funções. Ele nomeou Diesel como "Dumb Interpretively Executed String Express Language.")

COMO ALTERAR MARCAS DE VERIFICAÇÃO

O BricsCAD usa principalmente o Diesel para alternar as marcas de seleção nos menus:

  • Uma marca de seleção significa que a opção está ativada em
  • Nenhuma marca de seleção significa que a opção está ativada desligadas

Para alternar entre os dois estados, BricsCAD usa o.! metacaractere no código que se parece com isso:

$ (se, $ (=, $ (getvar, FILLMODE), 0) ,,!.)

Pode parecer estranho, mas não se preocupe: você nunca precisa saber como escrever esse código do zero. Tudo que você precisa fazer é: (a) copiar e colar e depois (b) alterar apenas uma palavra (FILLMODE, neste caso).

Aqui está o que o código Diesel diz: “Se o valor de FillMode for igual a 0, não exiba nada; caso contrário, exiba a marca de seleção. ” BricsCAD usa o .! metacaractere para instruir os menus a exibir marcas de verificação.

Aqui está outra maneira de ver o código Diesel. Isso é chamado de "análise", em que cada linha de código recebe sua própria linha recuada:

código diesel macro briscad

Aqui está o que o código faz: ele verifica o valor na variável do sistema FillMode. Se o valor for 0, a marca de seleção não será exibida; se o valor for 1, a marca de seleção é exibida.

Para usar esse código para outros itens de menu, copie e cole o texto e altere o nome da variável do sistema. Por exemplo, para adicionar uma marca de seleção ao comando Limits, use LimCheck variável de sistema. Simplesmente copie, cole e edite a string Diesel para que fique assim:

$ (se, $ (=, $ (getvar,LIMCHECK),0),,!.)

Reutilize o mesmo código para o Grade comando, que usa a variável de sistema GridMode:

$ (se, $ (=, $ (getvar,GRIDMODE),0),,!.)

Então, você realmente não precisa saber o que o código Diesel faz, apenas precisa saber qual palavra alterar!

Alternando Grayouts

Para alternar a cor do texto do menu entre preto e cinza, use o til ( ~ ) personagem:

  • Preto texto significa que o item de menu está disponível
  • cinzento texto significa que o item de menu está indisponível

RELATÓRIO DE VALORES DE VARIÁVEIS DO SISTEMA

Sendo os personalizadores que somos, não paramos de alternar com meras marcas de seleção ou cores de texto. Nós descobrimos como usar o Diesel para fazer mais.

Por exemplo, para exibir o valores das variáveis do sistema, podemos usar o $ (getvar função. Esta função Diesel fica o valor de um sistema varresponsável e depois a exibe no menu.

No tutorial a seguir, você altera o item de menu Elevação para que ele relate seu valor atual. (A elevação é encontrada no menu Configurações.) As figuras abaixo ilustram a aparência do menu antes e depois deste tutorial. Na imagem "depois", Elevation reporta seu valor atual de 10.9000:

Esq: A versão padrão de elevação no menu Configurações. Dir: Elevação modificada para mostrar o valor, usando o código Diesel

Para modificar um item de menu para que ele relate valores, siga estas etapas:

  1. Entre em Cui alias e escolha o Menus .
  2. Expandir o Configurações nó e, em seguida, selecione o Elevação item.
    Comando de elevação na caixa de diálogo Personalizar
  3. Mude sua atenção para a área Item do menu, o painel macro na parte inferior da caixa de diálogo. Clique no campo ao lado de Diesele digite o seguinte código:
                 $ (getvar, elevação)
    Esta parte do código Diesel obtém o valor da variável de sistema Elevation e a exibe.

    Adicionando código Diesel à macro
  4. Clique em OK para aplicar a alteração e sair da caixa de diálogo Personalizar.
  5. Escolha o menu Configurações e observe a alteração no item Elevação. Provavelmente será prefixado com 0,0000 - a elevação atual.
  6. Escolha Elevação para executar o comando e digite um valor diferente, como 1,23:
    : elevação
    Insira o novo valor atual para ELEVATION <0.0000>: 1,23
  7. Escolha o menu Configurações novamente. Observe que o valor próximo a Elevação foi alterado para 1,2300.
    Valor real de elevação adicionado ao menu

Você personalizou a exibição do item Elevação! Mas há um pequeno problema com a tela: ela não parece muito boa, com o “1.2300” encravado na palavra “Elevation”.

Neste próximo tutorial, você corrige o problema de espaçamento:

    1. Reinsira o Cui alias e, em seguida, retorne ao Configurações | Elevação item.
    2. Edite o campo ao lado de Título para que ele mude de:
              Elevação
      para isso:
              = Ele & vation
      Basta adicionar um espaço, sinal de igual e outro espaço.

      Aprimorando a macro
    3. Clique em OK para sair e tente o menu Configurações novamente. Parece melhor!
      Aparência aprimorada do item de menu

O número sempre aparecerá na frente da palavra. O motivo? Lembre-se de que o código Diesel foi feito para alternar as marcas de seleção, que aparecem na frente das palavras. Como exibir valores é um hackear, estamos presos ao "1.2300 = elevação", voltado para trás. Existe, no entanto, uma solução alternativa, conforme descrito posteriormente em "Como lidar com dois Sysvars".

APLICANDO VARIÁVEIS EM TODA PARTE

Você pode aplicar o mesmo tipo de alteração a outros itens no menu Configurações. Aqui estão os nomes das variáveis do sistema para algumas delas:

Menu Configurações          Variáveis do sistema  Código Diesel                                       
Precisão de snap à entidade Abertura $ (getvar,abertura)
Ponto base InsBase $ (getvar,insbase)
Limites de desenho * LimMin, LimMax ($ (getvar,limmin), $ (getvar,limmax))
Espessura Espessura $ (getvar,espessura)

Depois que as alterações são aplicadas, o menu Configurações fica assim:

Itens de menu adicionais que relatam valores

Há algumas coisas especiais a serem observadas sobre o menu ilustrado acima. Vamos passar por eles.

Como adicionar unidades

O valor 10 mostrado para Precisão de snap à entidade é um tanto sem sentido, então adicionei a palavra "pixels" ao parâmetro Title, assim:

pixels = Snap e precisão da entidade
BricsCAD código diesel de comando
Adicionando unidades a valores

Como resolver marcas de verificação que conflitam com ícones

Eu descobri que a imagem (ícone) para Preencher parece substituir a marca de seleção. Nas figuras abaixo, qual está ativado e desativado? Quando uma alternância está ativada, o ícone fica com uma borda preta fina, o que acho fácil de perder com o Preenchimento, porque ele já tem uma borda preta. É por isso que prefiro a marca de seleção em negrito sobre a borda essencialmente invisível.

Uma solução é remover o ícone do campo Imagem:

personalizar menus BricsCAD com código Diesel.
Topo: qual é o que está desligado?
Inferior esquerdo: O preenchimento está desativado com o ícone em branco Canto inferior direito: O preenchimento está ativado com o ícone de marca de seleção

Como lidar com dois Sysvars

No começo, não consegui o Limites de desenho item para funcionar corretamente. Extrai valores de duas variáveis de sistema, LimMin e LimMax, o que é complicado. Depois de algumas brincadeiras, descobri que era possível fazer o código Diesel funcionar colocando parte dele no Titulo parâmetro, assim:

Código para relatar duas variáveis

Observe que as partes do código Diesel estão entre parênteses e separadas por vírgula.

Isso torna o par de coordenadas 2D mais legível.

& Limites de desenho = ($ (getvar, limmin)), ($ (getvar, limmax))

Essa macro exibe os limites da seguinte maneira:

(0,0), (12,9)
Item de menu que informa os valores de duas variáveis

Relatórios através do diesel

Outros menus podem tirar proveito do recurso de relatório do Diesel. Aqui estão exemplos do que é possível:

  • Arquivo | Fechar pode relatar o nome do arquivo de desenho com o DwgName (variável de sistema).
  • Editar | Desfazer pode relatar o nome do comando que está sendo desfeito com CmdName.
  • Ver | Definir ponto de vista pode relatar as coordenadas da visão atual com VPointX, VPointY, e VPointZ.
  • Inserir Inserir bloco pode relatar o nome do último bloco inserido com InsBase.
  • Draw | Círculo pode relatar o raio atual com CircleRad.
  • Dimensão | Restaurar estilo de cota pode relatar o nome do estilo de dimensões atual com DimStyle.
  • Modificar | Filé pode relatar o raio atual do filete com FilletRad.
  • Configurações | TextStyle pode relatar o nome do estilo de texto atual com TextStyle.
  • Ferramentas | Inquérito | Variáveis de tempo pode relatar a duração em que o desenho foi aberto com TdInDwg.

Unidades de formatação

Na figura acima, os valores do ponto base e dos limites do desenho são mostrados em unidades arquitetônicas. Isso deve ser uma surpresa para você, porque normalmente eles seriam exibidos por padrão como unidades decimais. Nesse caso, trapacei: não usei Diesel, mas simplesmente mudei o formato das unidades com o Unidades .

Este exemplo ilustra que alguns valores nos menus são afetados pela configuração atual de Units. Outros valores, como Elevação e Espessura, ainda são mostrados por quatro casas decimais. Isso pode ser substituído usando o código Diesel, conforme descrito a seguir.

Formatando a saída de diesel

Você pode aplicar a formatação aos números e texto gerados pelo Diesel. Números e ângulos podem ser formatados para unidades, enquanto o texto pode ser convertido para maiúsculas ou truncado.

Formatação de números

O Diesel fornece funções para formatação rudimentar de números e coordenadas.

Consertar

O Consertar A função trunca números reais para números inteiros arredondados. Por exemplo, se um cálculo Diesel retornar o valor de 5.321, a aplicação da função Fix alterará o valor para 4. “Arredondar para baixo” significa que um valor como 5.987 (que você esperaria arredondar para 6) também será truncado para 4:

$(consertar,4.321)                retorna 5 

Índice

O Índice A função extrai um único valor de coordenada de uma série separada por vírgula. Por exemplo, a variável de sistema BasePoint retorna uma coordenada x, y, z assim:

(4,11,16)

Você usa a função Índice para extrair a coordenada x de (4,11,16), assim:

$(índice, 0, ($getvar, ponto base))                  retorna 4

Observe que Diesel usa uma raiz de 0, o que significa que começa a contar com 0, em vez de 1, como nós, humanos. Assim, o 0 na função acima extrai a primeira coordenada, x:

Número do índice Coordenada extraída
0 x
1 s
2 z

(Quando contamos, contamos assim: 1, 2, 3 ...; mas quando Diesel conta, conta assim: 0, 1, 2 ... Isso torna a contagem no complexo Diesel porque você usa um dígito um a menos que você esperaria.)

Enésimo

O Enésimo A função extrai o enésimo elemento de um ou mais itens. Aqui, o 2 retorna o terceiro elemento da sequência de números, 8 (porque o Diesel inicia conta com 0, não 1).

$(enésimo,2,10,9,8,7)                                 retorna 8

O Índice e a Nésima trabalham com números e texto.

Rtos

O Rtos A função formata números com unidades. O nome da função é abreviação de "real para string", mas não tem nada a ver com strings! (Uma função semelhante, Angtos, formata ângulos.) Veja como usá-lo.

Digamos que um desenho tenha unidades arquitetônicas, mas você deseja que o Diesel relate números em notação decimal, com uma casa decimal de precisão. No exemplo a seguir, a função Rtos formata a primeira distância do chanfro, ChamferA:

$(rtos, ($getvar, chamfera),2,1)

Onde:

($getvar, chamfera) - nome da variável do sistema, a fonte do número real que você deseja formatar.

2 - formato do número, decimal neste caso. Diesel usa o mesmo código que LUnits; veja a tabela abaixo para mais informações. Quando você deixa esse dígito de fora, BricsCAD lê o valor encontrado no sysvar LUnits (unidades lineares).

Modo (LUnits) Formato de exibição do número
1 Notação científica (formato exponencial) 2
2 Formato decimal (métrico)
3 Formato de engenharia (pés e polegadas decimais)
4 Formato arquitetônico (pés e polegadas fracionárias)
5 Formato fracionário (polegadas fracionárias, sem pés)

1 - precisão do número, uma casa decimal neste caso. Quando esse dígito é deixado de fora, o valor de LuPrec (precisão de unidades lineares) é usado por padrão. O intervalo é de 0 a 8, significando de zero a oito casas decimais, mas a precisão em si varia de acordo com as unidades do ângulo, conforme mostrado na tabela abaixo:

Unidades angulares Faixa de Precisão (AuPrec)                                                  
Decimal 0 para  0 .00000000
DMS 0d para 0d00'00 .0000 ”
Grads 0g para 0 .00000000g
Radianos 0r para 0 .00000000r
Unidades do agrimensor N0dE para N0d00'00 .0000 ”E

Formatação de ângulos

Os ângulos são formatados através do Angtos , abreviação de "ângulo para corda". Neste exemplo, a função Angtos formata o ângulo do chanfro, ChamferD:

$(angtos, ($getvar, chanfro),2,1)

Onde:

($getvar, chanfro) - especifica o nome da variável do sistema, a fonte do ângulo.

2 - especifica o formato do ângulo, grads neste caso. O diesel usa o mesmo código que a variável de sistema AUnits (unidades angulares). Quando esse dígito é deixado de fora, BricsCAD lê o valor atual em AUnits.

Modo (AUnits) Exibe ângulos como
0 Graus decimais (360,0 graus por círculo)
1 Graus / minutos / segundos
2 Notas (400 notas por círculo)
3 Radianos (2pi radianos por círculo)
4 Unidades do agrimensor (coordenadas N e E)

1 - especifica a precisão do ângulo, uma casa decimal neste caso. Quando esse dígito é deixado de fora, o AuPrec (precisão das unidades angulares)

FORMATANDO O TEXTO

O Diesel fornece as funções mais rudimentares para formatar texto.

Superior

O diesel inclui uma Superior função que converte toda a cadeia de texto em maiúsculas. Isso é útil para comparar duas seqüências de texto, para garantir que sejam idênticas. Não há função "Inferior".

StrnLen

O StrLen A função determina o número de caracteres em uma string, enquanto o Substr extrai uma parte de uma string. Detalhes sobre essas e outras funções são encontrados posteriormente neste post.

Outros tipos de formatação de texto, como negrito e coloração, não estão disponíveis no Diesel.

VARIÁVEIS NO DIESEL

Você pode usar variáveis com funções Diesel. Quando você obtiver o resultado de um cálculo, poderá armazená-lo para uso posterior em outro segundo cálculo - como usar memória na calculadora. Aqui está como você consegue isso:

  1. Primeiro, você usa o SetVar comando para armazenar o valor em uma das variáveis do sistema do usuário, como UserR1. (Isso deve ser feito fora da macro do menu.)
    Comando: setvar
    Digite o nome da variável ou [?]: userr1
    Digite um novo valor para USERR1 <0.0000>: 3.141
  2. Em seguida, você pode acessá-lo dentro da macro do menu com o $ (função getvar: $ (+, $ (getvar, userr1), 25)

As seguintes variáveis de sistema do usuário podem ser usadas com o Diesel:

  • UsuárioR1 através UsuárioR5 armazenar reais (números com decimais)
  • UsuárioI1 através UserI5 armazenar inteiros (números sem decimais)
  • UserS1 através UserS5 armazenar strings (texto)

Na verdade, você pode armazenar o que quiser nesses 15 sysvars; é útil que eles sejam rotulados com R (real), I (para inteiro) e S (para string). Cuidado, porém: o conteúdo desses sysvars é limpo quando o BricsCAD é fechado. Na próxima vez que você iniciar o BricsCAD, seus valores serão todos 0.

Catálogo Completo de Funções Diesel

Aqui estão os detalhes de todas as funções Diesel suportadas pelo BricsCAD.

FUNÇÕES DE MATEMÁTICA

O diesel suporta as quatro funções aritméticas básicas.

+

O + A função (adição) soma até nove números:

$(+,2,3.4,10,5)                   retorna 20.4

A função funciona com apenas um valor, adicionando o valor a 0:

$(+,2)                             retorna 2

O A função (subtração) subtrai até oito números de um nono. Por exemplo, a seguinte equação deve ser lida como 2 - 3,4 - 10 - 5 = -16,4:

$(,2,3.4,10,5)                   retorna -16.4

Como outro exemplo, esta equação deve ser lida como 2 - 0 = 2:

$(-,2)                             retorna 2

*

O * A função (Multiplicação) multiplica até nove números.

$(*,2,3.4,10,5)                   retorna 340

Quando você armazena o valor de pi (3.141) em UsuárioR1, você pode executar cálculos que envolvem círculos. Por exemplo, lembre-se de que, para encontrar a área de um círculo, a fórmula é pi * r2. O diesel não suporta quadrados ou expoentes, então você precisa R por si próprio: pi * r * r.

Para encontrar a área de um círculo de raio de 2,5 ”:

$ (*, $ (getvar, userr1), 2.5,2.5) retorna 19.63125

/

O / A função (Divisão) divide um número por até oito outros números.

$(/,2,3.4,10,5)                   retorna 0.01176471

Este lê como 2 / 3.4 / 10/5 = 0.1176471.

FUNÇÕES LÓGICAS

As funções lógicas testam para ver se dois (ou mais) valores são iguais (ou não).

=

O = A função (Igual) determina se dois números (ou cadeias) são iguais. Nesse caso, a função retornará 1; caso contrário, retornará 0.

$(=,2,2)                           retorna 1

$(=,2,3.4)                        retorna 0

<

O < A função (Menor que) determina se um número é menor que outro. Nesse caso, a função retornará 1; caso contrário, retornará 0.

$(<,2,2)                           retorna 0

$ (<, 2,3,4)                        retorna 1

>

O > A função (Maior que) determina se um número é maior que outro. Nesse caso, a função retornará 1; caso contrário, retornará 0.

$(>,2,2)                           retorna 0

$ (>, 2,3,4)                        retorna 1

!=

O != A função (Diferente) determina se um número não é igual a outro. Se não for igual, a função retornará 1; se igual, retorna 0.

$(!=,2,2)                          retorna 0

$(!=,2,3.4)                        retorna 1

<=

O <= A função (Menor que ou Igual) determina se um número é menor ou igual a outro. Nesse caso, a função retornará 1; caso contrário, retornará 0.

$(<=,2,2)                          retorna 1

$ (<=, 2,3,4)                        retorna 1

$ (<=, 9,0,5)                        retorna 0

> =

O > = A função (Maior que ou Igual) determina se um número é maior que ou igual a outro. Nesse caso, a função retornará 1; caso contrário, retornará 0.

$(> =,2,2)                          retorna 1

$ (> =, 9,0,5)                        retorna 1

$ (> =, 2,3,4)                        retorna 0

E

O e A função (Logical Bitwise AND) retorna o “AND” lógico bit a bit de dois ou mais números inteiros.

Esta função opera em até nove números inteiros.

EQ

O eq A função (Igualdade) determina se dois números (ou cadeias) são iguais. Se idêntico, a função retornará 1; caso contrário, ele retornará 0.

$(eq,2,2)                          retorna 1

$ (eq, 9,0,5)                        retorna 0

Os valores devem ser exatamente igual; por exemplo, um número real não é igual a um número inteiro, como o exemplo a seguir ilustra:

$ (eq, 2,0,2)                        retorna 0

Normalmente, você não testaria dois números; em vez disso, você testaria um número e um valor armazenados em uma variável. Por exemplo, para verificar se LUnits está definido como 4 (unidades arquitetônicas):

$ (eq, $ (getvar, lunits), 4)         retorna 1 quando LUnits = 4

retorna 0 se LUnits = qualquer outro número

E SE

O if A função verifica se duas expressões são iguais. Nesse caso, a função executa a primeira opção e ignora a segunda opção; se falso, realiza a segunda opção. Em termos genéricos:

$(if, teste, verdadeiro, falso)

Onde:

teste - especifica outra função lógica, como $ (eq, clayer, 0); teste espera um valor de 1 (verdadeiro) ou 0 (falso).

verdadeiro - indica a ação a ser tomada quando o teste for verdadeiro.

falso - indica a ação a ser tomada quando o teste é falso.

Por exemplo, o teste a seguir verifica se a camada atual não é 0. Nesse caso, obtém o nome da camada. Observe que o verdadeiro parâmetro está ausente.

$ (se, $ (eq, clayer, "0") ,, $ (getvar, clayer))

OU

O ou A função (OR lógico) retorna o "OR" lógico bit a bit de dois ou mais números inteiros.

XOR

O xor A função (Logical Bitwise Xor) retorna o “XOR” lógico bit a bit (OR eXclusivo) de dois ou mais números inteiros.

FUNÇÃO DE CONVERSÃO

As funções de conversão alteram o estado dos números.

CONSERTAR

O consertar A função remove a parte decimal dos números reais, convertendo-os em números inteiros. Esta função pode ser usada para extrair o número antes do ponto decimal de um número real. (Não há função "redonda".)

$ (correção, 3,99)                        retorna 3

FUNÇÕES DE STRING

As funções de string manipulam texto (e às vezes números).

ÍNDICE

O índice A função extrai um elemento de uma série separada por vírgula. Autodesk® sugere o uso dessa função para extrair as coordenadas x, ye z das variáveis retornadas pelo ($getvar (função).

Em termos genéricos, a função se parece com isso:

$(índice, item, sequência)

Onde:

item - um contador; começa com 0.

string - o texto que está sendo pesquisado; contém itens separados por vírgula.

Nota que o item contador começa com 0, em vez de 1; o primeiro item é #0:

$ (índice, 0, "2,4,6")                retorna 2

String deve ser texto entre aspas; deixe de fora as aspas e Diesel ignora a função. A cadeia consiste em um ou mais itens separados por vírgulas.

Aqui está um exemplo de extração da coordenada y da LastPoint variável de sistema:

$ (índice, 1,$ (getvar, último ponto)) retorna 64.8721

(O resultado será diferente, dependendo da coordenada armazenada em LastPoint.) Use o seguinte item valores para extrair coordenadas específicas:

  • 0 X
  • 1 ano
  • 2 Z

NTH

O enésimo A função extrai o nth elemento de um ou mais itens. Esta função lida com até oito itens. Gostar índice, o primeiro item da lista é #0. Em termos genéricos, a função se parece com isso:

$(enésimo, item, n1, n2, ...)

Onde:

item - um contador; O intervalo é de 0 a 7.

n - uma lista de itens separados por vírgulas; máximo de oito itens na lista.

Se item excede n, então Diesel ignora esta função.

Aqui estão exemplos de como usar a função com números e texto:

$ (enésimo, 2,2,3,4,5,6,7)              retorna 6.7

$ (enésimo, 1, Alfaiataria, BricsCAD, CAD) retorna BricsCAD

STRLEN

O strlen A função (Comprimento da string) retorna o número de caracteres na string. Essa função é útil para encontrar o comprimento de uma string antes de aplicar outra função, como substr.

$(strlen, Costurando BricsCAD)     retorna 18

Se a string estiver entre aspas, Diesel as ignorará.

$(strlen, "Costurando BricsCAD") também retorna 18

Esta função também trabalha com números e variáveis de sistema:

$ (ponto 3.14159)                 retorna 7

$ (strlen, $ (getvar, plataforma))     retorna 38

SUBSTR

O substr A função (SubString) retorna uma parte de uma string. Isso é útil para extrair texto de uma parte mais longa. Genericamente, a função fica assim:

$(substr, string, start, length)

onde

string - especifica o texto a ser tratado.

começar - indica a posição inicial da substring; O primeiro caractere é #1.

comprimento - especifica o comprimento da substring; opcional. Se deixado de fora, o restante da string será retornado.

Aqui estão alguns exemplos dessa função no trabalho:

$ (substr, Alfaiataria BricsCAD, 5) retorna oring BricsCAD

$ (substr, Alfaiataria BricsCAD, 5,7) retorna oring B

Se a string estiver entre aspas, Diesel as ignorará.

$ (substr, "Costurando BricsCAD", 5) também retorna oring BricsCAD

Esta função também trabalha com números e variáveis de sistema:

$ (substr, 3.14159,1,4)            retorna 3.14

$ (substr, $ (getvar, plataforma), 5,15) retorna osoft Windows N

SUPERIOR

O superior A função (maiúscula) converte seqüências de texto em caracteres maiúsculos. (Não há função "inferior" no Diesel.) Funciona com texto e variáveis do sistema, como a seguir:

$(superior, "Costurando BricsCAD") retorna TAILORING BRICSCAD

$ (superior, $ (getvar, plataforma)) retorna MICROSOFT WINDOWS NT VERSÃO 5.0

A função também funciona com números, mas os mantém inalterados.

FUNÇÕES DO SISTEMA

As funções do sistema são uma coleção de funções diversas.

EDTIME

O edtime A função (Avaliar data e hora) formata a exibição da hora do sistema. Esta função lê a data e a hora do Encontro variável de sistema e formata-a de acordo com suas instruções. Genericamente, a função fica assim:

$(edtime, $ (getvar, data), formato) em que

formato - especifica como a data e a hora devem ser exibidas, conforme ilustrado na tabela abaixo.

Quando formato contém texto que Diesel não pode interpretar, é exibido literalmente. A tabela mostra os códigos de formatação da data para uma data de 5 de setembro de 2006:

Formatos de data Significado Exemplo
D Data de um dígito 5
DD Data de dois dígitos 05
DDD Dia de três letras Sex
DDDD Dia da carta completa Sexta-feira
M Mês de um dígito 9
MO Mês de dois dígitos 09
SEG Mês de três letras Set
MÊS Mês de carta completa Setembro
AA Ano com dois dígitos 16
AAAA Ano de quatro dígitos 2016

A tabela abaixo lista os códigos de formatação de hora para 1: 51: 23.702AM:

Formatos de hora Significado Exemplo
H Hora de um dígito 1
HH Hora de dois dígitos 01
MILÍMETROS Minutos 51
SS Segundos 23
MSEC Milissegundos 702
MANHÃ TARDE AM ou PM maiúsculas SOU
manhã tarde AM ou PM minúsculas sou
A / P Maiúsculas abreviadas A
a / p Abreviado em minúsculas a

DICA Para usar vírgulas no código de formato, coloque-as em "," para que Diesel não a leia como um separador de argumentos.

O truque de aspas não funciona para palavras como "Data" e "Mês": o diesel retorna 1 e 7 dias.

Os códigos de data e hora não diferenciam maiúsculas de minúsculas; D e D funcionam da mesma maneira. As exceções são para os códigos AM / PM e am / pm.

Quando os códigos de formato AM / PM e A / P são usados, o Diesel exibe o relógio de 12 horas; quando são deixados de fora, o Diesel exibe o relógio de 24 horas.

Os códigos de formato AM / PM e A / P devem ser inseridos com a barra. Se, digamos, PM for digitado, Diesel retornará P literalmente e lerá M como o código do mês de um dígito.

Aqui estão alguns exemplos de como usar o EdTime função:

$ (edtime, $ (getvar, data), H: MMam / pm)                retorna 11:58

$ (edtime, $ (getvar, data), DDD "," DD-MO-AA)         retorna Sex, 01-07-05

$ (edtime, $ (getvar, data), DDD ”,” d mon ”,” AAAA) retorna Sexta-feira, 1 de julho de 2015

EVAL

O avaliação A função (Avaliar) exibe texto na barra de status:

Comando: modemacro

Digite um novo valor para MODEMACRO, ou. para nenhum <”” >: $ (eval, "Este é o texto")

É equivalente a usar o ModeMacro comando sem Diesel:

Comando: modemacro

Digite um novo valor para MODEMACRO, ou. para nenhum <”” >: Isso é texto

GETENV

O getenv A função (Obter ambiente) obtém os valores armazenados nas variáveis de ambiente. Esta função foi projetada para uso com o AutoCAD® LT, que possui dois comandos não encontrados no AutoCAD®: SetEnv define valores em variáveis de ambiente e GetEnv lê os valores. Essas variáveis de ambiente foram originalmente armazenadas em um arquivo chamado aclt.ini, mas agora estão armazenados no registro do Windows.

$(getenv, maxarray)                         retorna 10000

A partir do BricsCAD V12, o comportamento do $ (getenv) agora é consistente com o do LISP e SDS / BRX: procura variáveis de ambiente no registro do ambiente BricsCAD; no ambiente de processo do Windows, Linux ou Mac; e nas configurações BricsCAD CFG. A sequência de leitura é:

  1. Registro do Windows BricsCAD
  2. Ambiente de processo Linux, Mac ou Windows
  3. Configuração BricsCAD

A sequência de gravação é (a) configuração BricsCAD (se houver uma chave) e (b) registro BricsCAD do Windows.

GETVAR

O getvar A função (Obter variável) obtém os valores das variáveis do sistema.

$(getvar, lunits)                  retorna 4

LINELEN linelen (comprimento da linha) A função retorna o comprimento máximo da exibição.

$(linelen)                        retorna 240

DICAS DE PROGRAMAÇÃO DIESEL

Aqui estão algumas dicas para trabalhar com o Diesel:

  • Cada argumento deve ser separado por vírgula; não deve haver espaços dentro da expressão.
  • O comprimento máximo de uma macro Diesel é de 240 caracteres; a exibição máxima na barra de status é de 32 caracteres.
  • O ModeMacro variável de sistema envia texto diretamente para a barra de status até atingir um $(e, em seguida, começa a avaliar a macro.
  • Usar o MacroTrace variável de sistema para depurar macros.
  • Use LISP's (strcat) função para encadear macros Diesel no LISP.
  • Usar o $M = construa para usar expressões Diesel nas macros do menu e da barra de ferramentas.

Depurando Diesel

O objetivo do MacroTrace A variável de sistema é ajudar a rastrear erros nas macros do Diesel. Quando ativado, uma avaliação passo a passo da macro Diesel deve ser exibida na janela Texto. Embora o MacroTrace exista no BricsCAD, ele ainda não está implementado.

Em vez disso, o BricsCAD exibe erros diretamente, seja em um menu ou na linha de comando. Abaixo, digitei o código Diesel com um ant sysvar inexistente, "absurdo".

lição de código diesel
Erro relatado pelo Diesel

 ModeMacro: Exibindo texto na barra de status

O objetivo do comando ModeMacro é exibir texto na barra de status.

Caso o BricsCAD obtenha essa função, veja aqui como usá-la. Primeiro, vamos ver como exibir texto na barra de status:

  1. Entre em ModeMacro variável de sistema no prompt 'Command:' e digite algo:
    Comando: modemacro
    Novo valor para MODEMACRO, ou. para nenhum <”” >:
    Customizing BricsCAD
    As palavras "Personalizando BricsCAD" devem aparecer na extremidade esquerda da barra de status:

    Mensagem de alteração do código diesel em BricsCAD
    Usando Diesel para exibir texto na barra de status

    (Você não pode alterar o local em que o texto está posicionado na barra de status.)

  2. Para remover o texto da barra de status, digite o ModeMacro variável de sistema com um.  (cadeia nula), da seguinte maneira:
    Comando: modemacro
    Novo valor para MODEMACRO, ou. para nenhum <”Personalizando BricsCAD” >: .

 

Removendo texto definido pelo usuário da barra de status

Download Grátis do BricsCAD por 30 dias

Comece a usar o BricsCAD hoje

Licenças permanentes ou por aluguel, que funcionam em todos os idiomas, em todas as regiões.


  1. Introdução
  2. 55 Dicas para Usuários do BricsCAD
  3. Configurações
  4. Mudar o Ambiente
  5. Interface de Usuário Personalizada
  6. Introdução ao Diálogo Personalizar
  7. Personalizar a barra de Menus & Menus de Contexto
  8. Barras de ferramentas e ícones de botão
  9. Escrever Macros e o Código Diesel
  10. Painéis e guias da faixa de opções
  11. Atalhos de teclas, aliases e comandos do shell
  12. Botões do mouse, clique duplo e tablet
  13. Absolutamente tudo o que você precisa saber sobre o Quad
  14. Propriedades de sobreposição
  15. Áreas de trabalho e a interface do usuário
  16. Projetando Painéis de Ferramentas e Estrutura
  17. Criando tipos de linha simples e complexos
  18. Padronizar Hachuras
  19. Decodificação de formas e fontes
  20. Codificação com texto do campo
  21. Escrevendo scripts
  22. Programando com LISP (Introdução)
  23. Funções LISP