AUTOLISP - Associação de Comandos

Pra quem não gosta de programação e gosta de usar lisps, a associação de comandos usando lisp é bem útil, pois trata-se apenas de alguns macetes para fazer macros usando lisps. Essa associação criará um novo atalho de comando e fará com que o AutoCAD execute a sequência de passos que você mandou. A sintaxe para fazer esses scripts é uma só e bem simples:

(defun c:<atalho> () (command <comandos>))

O que está escrito entre <> é genérico e deve ser mudado. Com essa simples linha, dá pra fazer muita coisa legal e, para quem não gosta de programação, isso basta. Para fazer algo como isso funcionar em seu AutoCAD, basta colar na barra de comandos e o novo comando já estará ativo; mas somente enquanto seu AutoCAD estiver aberto. Se fechá-lo, irá perder. Para ter permanentemente, ele deve ser colado em um arquivo do bloco de notas e salvo com a extensão lsp e adicionado através do comando APPLOAD. No mesmo arquivo .lsp você pode ter várias linhas com esses scripts; mas sempre lembre de fechar os parenteses e colocar cada script em uma linha.


Um exemplo seria:

(defun c:py ()(command "-purge" "a" "" "n")(princ))

O objetivo da função command é escrever na barra de commandos o que você escreveria. Para isso, tudo deve ser escrito entre aspas. Dessa forma, quando for chamado o comando "py" o AutoCAD chamará o comando purge, depois entrará com um “a” que significa all, depois um enter, representado pelas aspas vazias ("") e depois um “n” de No, para não verificar cada item purgado. Se você utilizar o comando "-purge", poderá reproduzir cada um desses passos. O que esse script faz é associar estes passos.

Dicas:

Você pode colocar na linha de comando a função prompt descrevendo o comando. A descrição aparecerá na linha de comando quando o comando for chamado e antes dele ser executado: 

(defun c:py () (prompt "\nPurgar tudo")(command "purge" "a" "" "n")(princ))

Quando (princ) é colocado no final, evita que um "nil" seja escrito na barra de comandos no final da execução do comando.

Para simular um enter na barra de comandos, utilize aspas vazias: "".

Para permitir a entrada de dados do usuário no meio do comando, utilize a palavra pause, sem aspas.

Quando um comando pede um ponto como entrada de dados, utilize “@”, entre aspas, para utilizar o último ponto clicado pelo usuário.

Para fazer macros com comandos que usam caixa de diálogo, como hatch, array, layer, e outros, utilize um traço "-" antes do nome do comando. Ex: -hatch, -array, -layer, -purge. Quando isso é utilizado, o AutoCAD reproduz as funções da caixa de diálogo na barra de comandos.

Os modos de seleção também podem ser utilizados nessas macros. Utilize o nome completo deles entre aspas: “last”, “previous”, “fence”, etc.

Mais exemplos:

Comando para desenhar um arco com start, end, direction:
(defun c:sed () (prompt "\n*Adson*- arco (start, end, direction)") (command "arc" pause "e" pause "d")(princ))

Comando para quebrar uma linha em um ponto:
(defun c:bp () (prompt "\n*Adson*-Quebrar em um ponto")(command "break" pause "f" pause "@")(princ))

Comando para somar áreas:
(defun c:ad () (prompt "\n*Adson*-Somar Áreas")(command "area" "a" "o")(princ))

E se você gosta de usar LISPs, conheça a Barra de Ferramentas AdCAD Toolsuma barra exclusiva com mais de 30 LISPs para instalar no AutoCAD  para te ajudar a fazer seus projetos com mais rapidez, mais produtividade, mais qualidade e mais precisão. 

barra de ferramentas adcadtools mais de 40 lisps
Gostou do artigo? Então me siga no FacebookInstagram LinkedIn para ficar por dentro das atualizações do site.

Comentários

Postagens mais visitadas deste blog

Requisitos do AutoCAD todas as versões e notebooks indicados (atualizado versão 2023)

Blocos dwg Drenagem Álbum DNIT 2018

Blocos dwg de Sinalização Manual CONTRAN

Configurando as unidades do desenho no AutoCAD

Mudando as cores do AutoCAD

Formas de copiar e colar no AutoCAD

Como diminuir o tamanho de um arquivo do AutoCAD (dwg)

FATAL ERROR: Como recuperar arquivos do AutoCAD

Os melhores mouses para AutoCAD (atualizado 2022)