3
Magazine Digital eUAU! - Setembro 2010 www.tecad.pt seguintes regras: Cada uma das linhas do ficheiro contém um comando e as respectivas opções. Em alternativa, podem colocar-se cada uma das opções por linha. Cada espaço em branco equivale à pressão da tecla <ENTER> no AutoCAD. Através dos ficheiros de macros não podemos colocar pedidos ao utilizador e aguardar as suas respostas. Por exemplo, se usarmos o comando CIRCLE, o centro tem de ser dado pelas suas coordenadas. A macro não pára para marcarmos um ponto. Só podem ser usados comandos que não mostrem caixas de diálogo. A maioria dos comandos com caixas de diálogo incluem uma versão que funciona na linha de comandos desde que se preceda o seu nome do sinal menos. O AutoCAD efectua esta substituição de forma automática, isto é, se escrevermos LAYER, o AutoCAD assume -LAYER. Podemos introduzir linhas de comentários. Estas linhas têm de ser iniciadas por pontos-e-vírgula “;”, sendo ignoradas pelo AutoCAD quando a macro é executada. Nomes de pastas ou de desenhos que contenham espaços têm de ser incluídos entre aspas. Se estiver a usar o Notepad, não deve esquecer de dar um <ENTER> no final de cada linha. A execução de uma macro é interrompida pela pressão de <ESC> ou fica em pausa com <BACKSPACE>. O comando RESUME permite recomeçar a macro. O conjunto de comandos de um ficheiro de macros é considerado um grupo de comandos, pelo que todos são anulados por um único U. E um dado importante: as macros de comandos permitem abrir e fechar desenhos. Vejamos alguns exemplos de comandos que se podem colocar em ficheiros script: INSUNITS 6 - Coloca a variável INSUNITS, que controla a unidade para a inserção de conteúdos, com o valor 6 (metros). LAYERDLGMODE 0 - A variável LAYERDLGMODE controla se, ao usarmos o comando LAYER, é colocada a paleta das layers (a partir da versão 2009, sem botões OK/Cancel) ou a caixa das layers (com botões). O valor 0 garante a caixa das layers. GRID OFF - Desliga a grelha auxiliar de linhas (ou pontos). Se já estiver desligada, não faz nada. LINETYPE LOAD HIDDEN - Carregamento do tipo de linha Hidden. A seguir ao nome do tipo de linha é necessário deixar dois espaços, um para sair da escolha de tipos de linha e outro para confirmar o ficheiro onde estão as definições dos tipos de linha. LAYER NEW A-200---E-----------PAREDES COLOR 3 A-200---E---------- -PAREDES - Criação de uma layer (opção New), com cor (opção Color) 3 (verde). Tem de se deixar um espaço no final da linha para sair do comando. RENAME LAYER PAREDES A-200---E-----------PAREDES - Renomeia a layer PAREDES para A-200---E-----------PAREDES. PURGE ALL * NO - Efectua um Purge ao desenho a todas as definições não usadas (All), com qualquer nome (*) e não pede a verificação para cada definição a eliminar (No). ZOOM EXTENTS - Efectua um Zoom Extents no desenho. Para testar estas e outras instruções, iniciamos o AutoCAD. Na linha de comandos, digitamos NOTEPAD e damos <ENTER> ao pedido do AutoCAD - Macros de comandos (scripts) O AutoCAD permite a introdução de macros de comandos que efectuam sequências de operações. Truques e Dicas Eng. João Santos Formador certificado e Autor AutoCAD [email protected] Quando pretendemos executar uma sequência de operações por diversas vezes, carregar uma lista de pontos sem software adicional, proceder às mesmas alterações em múltiplos desenhos já criados ou fazer um slide show, um ficheiro de macros (script para o AutoCAD) é a solução. Para além da explicação dos comandos e conceitos, incluímos alguns exemplos interessantes. 1. Criação de ficheiro de macros Estas macros são escritas em ficheiros texto, com a extensão SCR, portanto criadas num qualquer editor de texto, como o bloco-notas (Notepad). Basicamente, devem figurar nestes ficheiros a lista de comandos e as respectivas opções, como se as escrevessemos na linha de comandos. O carregamento de um ficheiro de macros no AutoCAD é feito com o comando SCRIPT. Este comando mostra apenas uma caixa de ficheiros para a selecção do ficheiro SCR (figura 1). Tem a abreviatura... SCR (surpresa) e pode também ser acedido pelo menu de topo Tools, Run Script. Para interromper uma macro, basta pressionar a tecla <ESC> ou a barra de espaços do teclado. O comando tem de ser executado com um desenho aberto ou iniciado. A partir deste desenho, podemos fechar e abrir outros desenhos que a macro de comandos não é interrompida. Para escrever um ficheiro de macros, devem ser cumpridas as Figura 1 - Comando SCRIPT

Autocad - Macros de Comandos Scripts Artigo de Joao Santos

Embed Size (px)

Citation preview

Page 1: Autocad - Macros de Comandos Scripts Artigo de Joao Santos

Magazine Digital eUAU! - Setembro 2010 www.tecad.pt

seguintes regras:Cada uma das linhas do ficheiro contém um comando e as • respectivas opções. Em alternativa, podem colocar-se cadauma das opções por linha.Cada espaço em branco equivale à pressão da tecla <ENTER>• no AutoCAD.Através dos ficheiros de macros não podemos colocar pedidos • ao utilizador e aguardar as suas respostas. Por exemplo, se usarmos o comando CIRCLE, o centro tem de ser dado pelas suas coordenadas. A macro não pára para marcarmos um ponto.Só podem ser usados comandos que não mostrem caixas de • diálogo. A maioria dos comandos com caixas de diálogo incluem uma versão que funciona na linha de comandos desde que se preceda o seu nome do sinal menos. O AutoCAD efectua esta substituição de forma automática, isto é, se escrevermos LAYER, o AutoCAD assume -LAYER.Podemos introduzir linhas de comentários. Estas linhas têm de ser • iniciadas por pontos-e-vírgula “;”, sendo ignoradas pelo AutoCAD quando a macro é executada.Nomes de pastas ou de desenhos que contenham espaços têm de • ser incluídos entre aspas.Se estiver a usar o Notepad, não deve esquecer de dar um • <ENTER> no final de cada linha.

A execução de uma macro é interrompida pela pressão de <ESC>ou fica em pausa com <BACKSPACE>. O comando RESUME permite recomeçar a macro.O conjunto de comandos de um ficheiro de macros é considerado um grupo de comandos, pelo que todos são anulados por um único U.E um dado importante: as macros de comandos permitem abrire fechar desenhos.

Vejamos alguns exemplos de comandos que se podem colocar em ficheiros script:INSUNITS 6 - Coloca a variável INSUNITS, que controla a unidade para a inserção de conteúdos, com o valor 6 (metros).LAYERDLGMODE 0 - A variável LAYERDLGMODE controla se,ao usarmos o comando LAYER, é colocada a paleta das layers(a partir da versão 2009, sem botões OK/Cancel) ou a caixa das layers(com botões). O valor 0 garante a caixa das layers.GRID OFF - Desliga a grelha auxiliar de linhas (ou pontos).Se já estiver desligada, não faz nada.LINETYPE LOAD HIDDEN - Carregamento do tipo de linha Hidden.A seguir ao nome do tipo de linha é necessário deixar dois espaços,um para sair da escolha de tipos de linha e outro para confirmar o ficheiro onde estão as definições dos tipos de linha.LAYER NEW A-200---E-----------PAREDES COLOR 3 A-200---E-----------PAREDES - Criação de uma layer (opção New), com cor (opção Color) 3 (verde). Tem de se deixar um espaço no final da linha para sair do comando.RENAME LAYER PAREDES A-200---E-----------PAREDES - Renomeia a layer PAREDES para A-200---E-----------PAREDES.PURGE ALL * NO - Efectua um Purge ao desenho a todas as definições não usadas (All), com qualquer nome (*) e não pede a verificação para cada definição a eliminar (No).ZOOM EXTENTS - Efectua um Zoom Extents no desenho.

Para testar estas e outras instruções, iniciamos o AutoCAD. Na linha de comandos, digitamos NOTEPAD e damos <ENTER> ao pedido do

AutoCAD - Macros de comandos (scripts)

O AutoCAD permite a introdução de macros de comandos que efectuam sequências de operações.

Truques e Dicas

Eng. João SantosFormador certificado e Autor AutoCAD

[email protected]

Quando pretendemos executar uma sequência de operações por diversas vezes, carregar uma lista de pontos sem software adicional, proceder às mesmas alterações em múltiplos desenhos já criados ou fazer um slide show, um ficheiro de macros (script para o AutoCAD)é a solução. Para além da explicação dos comandos e conceitos, incluímos alguns exemplos interessantes.

1. Criação de ficheiro de macrosEstas macros são escritas em ficheiros texto, com a extensão SCR, portanto criadas num qualquer editor de texto, como o bloco-notas (Notepad). Basicamente, devem figurar nestes ficheiros a lista de comandos e as respectivas opções, como se as escrevessemosna linha de comandos.

O carregamento de um ficheiro de macros no AutoCAD é feito com o comando SCRIPT. Este comando mostra apenas uma caixa de ficheiros para a selecção do ficheiro SCR (figura 1). Tem a abreviatura... SCR (surpresa) e pode também ser acedido pelo menu de topo Tools, Run Script.

Para interromper uma macro, basta pressionar a tecla <ESC> ou a barra de espaços do teclado. O comando tem de ser executado com um desenho aberto ou iniciado. A partir deste desenho, podemos fechar e abrir outros desenhos que a macro de comandos não é interrompida.Para escrever um ficheiro de macros, devem ser cumpridas as

Figura 1 - Comando SCRIPT

Page 2: Autocad - Macros de Comandos Scripts Artigo de Joao Santos

Magazine Digital eUAU! - Setembro 2010www.tecad.pt

Properties/Propriedades. Na linha Target acrescentamos /b, espaço e o nome da macro (ficheiro SCR) a desencadear. Se for necessário incluir o nome completo do ficheiro (incluindo pasta) e havendo espaços, o nome tem de ficar entre aspas. A figura 2 inclui um exemplo.

Exemplo 2 - Script de arranqueCriamos um ficheiro com o Notepad e damos o nome Iniciar.scr(não se esqueça da extensão SCR). Digitamos as seguintes instruções:; Unidade para inserção de conteúdos em metrosINSUNITS 6; Ângulo do Polar a 15º.POLARANG 15; Osnaps automáticos Endpoint, Midpoint, Center, Node, ; Quadrant, Intersection e ExtensionOSMODE 4159; Retirar a grelhaGRID OFF; Desligar o Dynamic InputDYNMODE -3; Caixa das layers em vez da paletaLAYERDLGMODE 0; Escolher o workspace AutoCAD Classic (sem aspas)WSCURRENT AutoCAD Classic; Visualizar o desenhoZOOM EXTENTS

No Desktop, copiamos o ícone do AutoCAD e damos um nome diferente. Com a tecla direita sobre o ícone, marcamos Properties.Na linha Target, diante de ...acad.exe” acrescentamos espaço, /b, espaço e o caminho para o ficheiro SCR (conforme mostrado na figura 2).E é só testar. Verifique que todas as instruções do script são processadas na linha de comandos, o que permite facilmente detectar erros.

Nota 1: Esta macro poderá ser útil também para aplicar a desenhos abertos. Neste caso, aplica-se com o comando SCRIPT.Nota 2: No arranque, se tiver um workspace com o ribbon e não usara instrução WSCURRENT, o ribbon não é colocado (bug).

4. Alterações de todos os desenhos em pastaPara correr uma macro em todos os desenhos de uma pasta, recorremos ao velhinho MS-DOS, através da criação de um ficheiro BAT. Alguns de vocês são ainda capazes de se lembrar do MS-DOS e de como era muito fácil, naqueles tempos, controlar o sistema operativo. Não desprezando as enormes vantagens dos sistemas operativos actuais, por vezes, torna-se necessário recorrer a expedientes MS-DOS para resolver problemas. O ambiente MS-DOS está disponível através da instrução CMD que se digita através da caixa Start/Run (Iniciar/Executar). Esta caixa também aparece se digitarmos < + R>.

Um ficheiro BAT é um ficheiro criado no Notepad ou em outro editor de texto, gravado com a extensão BAT (tipo All Files/Todos os Documentos) e onde colocamos sequências de instruções MS-DOS. Digitando HELP, vemos uma lista de todas as instruções. Digitando HELP nome_instrução, é dada ajuda sobre essa instrução (figura 3).

Através das instruções MS-DOS temos a possibilidade de correr um ficheiro BAT que possa, para cada desenho de uma ou mais pastas, executar o AutoCAD, abrir cada um dos desenhos, executar um ficheiro

Truques e Dicas

nome do ficheiro. Gravamos o ficheiro com o nome Exemplo.scr(não se esqueça de indicar All Files/”Todos os ficheiros”). Vamos digitando estas e outras instruções, gravando o ficheiro (não precisamos de sair do Notepad) e carregando-o com o comando SCRIPT.

2. Outros comandos relacionados com macrosExistem ainda os seguintes comandos relacionados com macros:

DELAY - Aplica uma pausa na introdução de comandos.• Este comando tem uma particular utilidade para ficheiros de macros com sequências de slides ou para simulação de animações. Pede apenas a duração da pausa em milisegundos, com um valor máximo de 32767 milisegundos.RESUME - Permite continuar uma macro de comandos interrompida • pelo utilizador ou por o comando SCRIPT ter encontrado um erro.RSCRIPT - Este comando, colocado como a última linha de um • ficheiro macro, executa a macro em ciclo até ser interrompida.

Os slides do AutoCAD são ficheiros com a extensão SLD, que retratam a área de desenho numa determinada altura. A aplicação de slides,por vezes em conjunção com ficheiros de macros, permite efectuar rápidas apresentações de trabalhos, em que apenas um conjunto seleccionado de imagens é mostrado. A visualização de um slideé muito mais rápida do que a entrada num desenho, não afectandoo desenho actual. Outra aplicação para os slides é a possibilidadede se mostrarem imagens elucidativas para a introdução de parâmetros em programação. Comandos:

MSLIDE - Cria um ficheiro slide (SLD) da vista actual da janela • activa. No caso do espaço de composição, o slide inclui todas as janelas e os respectivos conteúdos. Se houver imagens anexada ao desenho, estas aparecem nos slides.VSLIDE - Permite ver slides, ou seja, ficheiros com a extensão SLD. • A visualização de slides não interfere com o desenho actual e um simples REDRAW retira o slide. Podemos especificar a localização completa dos slides, mesmo com espaços, desde que a sua localização e nome fiquem entre aspas. Exemplo: VSLIDE “c:/optim acad/slide1”.

Em apresentações de slides, com um ficheiro de macros SCR, se o slide tiver muita informação é necessário algum tempo para este ser carregado e mostrado. Assim, enquanto visualizamos o slide anterior, o AutoCAD procede à entrada do seguinte, desde que coloquemos um asterisco antes do seu nome.

3. Macro iniciada com o arranque do AutoCADImaginemos que queremos que, ao entrar no AutoCAD, sejam efectuadas diversas operações, como a atribuição de determinados valores a variáveis.Ao atalho de arranque do AutoCAD, podemos associar um ficheiro de macro, fazendo com que este seja executado, mal se inicie o AutoCAD. Marcando a tecla direita sobre o ícone de atalho, escolhemos

Figura 2 - Arranque do AutoCAD

Page 3: Autocad - Macros de Comandos Scripts Artigo de Joao Santos

Magazine Digital eUAU! - Setembro 2010 www.tecad.pt

PUBLICIDADE

www.qualicad.com

[+] Qualidade [+] Flexibilidade [+] Inovação

Tel: 213 427 [email protected]

de João Santos (Autor e Formador CAD)

de script, gravar o desenho e sair. A instrução vai ser algo do tipo:FOR %%f IN (“pasta”\*.dwg) DO START /WAIT c:\”Program Files”\”AutoCAD 2011”\acad.exe %%f /b fich_script

A instrução FOR ... IN ... DO permite executar uma instrução para cada um dos ficheiros mencionados a seguir. O símbolo % define uma variável, mas no caso de processamentos BAT deve-se colocar %%, seguindo-se uma letra, neste caso f. A instrução START (lembram-se do ACAD.PGP?) abre uma nova janela para correr a aplicação especificada a seguir, neste caso, o executável do AutoCAD.O parâmetro /WAIT de START espera que a aplicação termine para continuar o ficheiro BAT. Assim, basicamente, esta instrução vai abrirno AutoCAD cada um dos desenhos (ficheiros DWG) contido em “pasta” e corre o ficheiro script “fich_script”.Nota: Não se pode especificar o caminho completo do executávelentre aspas (por forma a incluir os espaços), do tipo:“c:\Program Files\Autodesk\AutoCAD 2011\acad.exe”Assim, o ficheiro SCRIPT não é executado. Para que isso aconteça,as aspas têm de ser colocadas apenas nas pastas:c:\”Program Files”\Autodesk\”AutoCAD 2011”\acad.exe

Exemplo 3 - Renomeação de layers em múltiplos desenhosImaginemos que temos 2000 desenhos em que temos de renomear 10 layers, conforme a tabela seguinte (de acordo com a NP EN ISO 13567).

Nome antigo Nome novoCOTAS Z-0-----D-----------COTAS

TRAMAS A-0-----H-----------HATCH

PAREDES A-200---E-----------PAREDES

PORTAS A-364---S-----------PORTAS

JANELAS A-365---E-----------JANELAS

ESCAD A-240---E-----------ESCADAS

MOB E-740---S-----------MOBILIARIO

EQUIP A-700---E-----------EQUIPAMENTOS

LEG Z-0-----C-----------LEGENDAS

TEXTO Z-0-----T-----------TEXTOS

1. Efectuamos uma cópia dos desenhos para uma pasta de processamento. Através do script, há a possibilidade de colocaro carregamento de uma rotina Lisp que permita alterar o nomedos desenhos, mas é mais simples fazer uma cópia prévia dos desenhos. Neste exemplo, usa-se a pasta “Testes-SCR” no disco C:

2. Com o Notepad, criamos o ficheiro REN_LAYERS.SCR na mesma pasta onde estão os desenhos e com as seguintes instruções:

rename layer cotas Z-0-----D-----------COTASrename layer tramas A-0-----H-----------HATCHrename layer paredes A-200---E-----------PAREDESrename layer portas A-364---S-----------PORTASrename layer janelas A-365---E-----------JANELASrename layer escad A-240---E-----------ESCADASrename layer mob E-740---S-----------MOBILIARIOrename layer equip A-700---E-----------EQUIPAMENTOSrename layer leg Z-0-----C-----------LEGENDASrename layer texto Z-0-----T-----------TEXTOSqsavequitNão se esqueça de dar um <Enter> no final de cada linha.

3. Testamos a macro num desenho a transformar e verificamos a sua correcção.

4. Ainda com o Notepad, criamos o ficheiro RENOMEIA.BAT,por exemplo na mesma pasta, apenas com as seguintes duas instruções (digitamos as duas primeiras linhas numa única linhado Notepad):for %%f in (c:\testes-scr\*.dwg) do start /wait c:\”Program Files”\Autodesk\”AutoCAD 2011”\acad.exe %%f /b c:\testes-scr\ren_layersecho Trabalho Feito!Substituímos a versão AutoCAD pela que utiliza e corrigimos o caminho para o ficheiro executável

5. Depois, basta apenas fazer duplo clique em cima do ficheiro BAT para este ser executado. Se o quisermos editar, através da tecla direita marcamos Edit.

ConclusãoEspero ter demonstrado o enorme potencial dos ficheiros script e de como uma sua aplicação permite poupar horas ou dias de trabalho.

Figura 3 - Help do MS-DOS

Truques e Dicas