EXERCÍCIO 9 - Macro de configuração das margens de uma folha
- cat-gaspar
- 5 de abr. de 2016
- 3 min de leitura
5 DE ABRIL - EXERCÍCIO 9: Criação de uma macro para dimensionar diversas margens em folhas com recurso ao NotePad++ e AutoCAD.
PASSO 1 - No NOTEPAD++ escrever o seguinte:
(defun hoja (x y) (command "rectangle" (list 0 0) (list x y)) )
Guardar com o nome de "hoja.lsp" em formato LISP.

PASSO 2 - No AUTOCAD mudar para o Paperspace. Fazer o APPLOAD do autolisp "hoja.lsp successfully loaded" Introduzir o comando (hoja 0.420 0.297) Modificar a página PAGESETUP para um A3 horizontal





PASSO 3 - No NOTEPAD++ modificar o texto anterior para o seguinte: (defun hoja (x y) (command "rectangle" (list 0 0) (list x y)) (command "rectangle" (list 0.005 0.005) (list (- x 0.005) (- y 0.005))) )
Guardar por cima do outro ficheiro.
PASSO 4 - No AUTOCAD fazer o APPLOAD de novo no autolisp guardado anteriormente. "hoja.lsp successfully loaded."
PASSO 5 - PARA FAZER A MARGEM DA FOLHA A3 ao BAIXO - introduzir o comando seguinte:
(hoja 0.420 0.297) Deverá aparecer as margens


PASSO 6 - PARA FAZER A MARGEM DA FOLHA A2 ao BAIXO - introduzir o comando seguinte: (hoja 0.594 0.420)
Command: (setq a (sqrt (/ 1 (sqrt 2)))) 0.840896
Command: (setq b (* a (sqrt 2))) 1.18921
PASSO 7 - No NOTEPAD++ vamos determinar a macro que desenha as folhas da série A através da indicação das áreas de cada folha, na orientação da folha - neste caso ao BAIXO - e arrumadas em caixas com uma margem de 5mm. Fazemos então uma nova macro com o seguinte: (defun c:hojas () (setq area (getreal "qual a área da folha?")) (calculo area) (desenhar a b) ) (defun calculo (area) (setq b (sqrt (/ area (sqrt 2)))) (setq a (* b (sqrt 2))) ) (defun desenhar (a b) (command "rectangle" (list 0 0) (list a b)) (command "rectangle" (list 0.005 0.005) (list (- a 0.005) (- b 0.005))) ) Guardamos com o nome "macro folhas serie A.lsp" em formato LISP.

PASSO 8 - No AUTOCAD fazemos o APPLOAD da macro. "macro folhas serie A.lsp successfully loaded."
PASSO 9 - Introduzir o comando HOJAS. Verificamos que a macro precisa de ser completada pois após introduzirmos o comando HOJAS verificamos a seguinte mensagem "HOJAS qual a área da folha?1 rectangle"


PASSO 10 - Voltamos ao NOTEPAD++ e mudamos o texto para o seguinte, com o acrescento das margens A0 / A1 / A2 / A3 e A4:
(defun c:hojas () (setq spontos (getvar "osmode")) (setvar "osmode" 0) (setq nome (getstring "qual o nome da folha?")) (escolha nome) (calculo area) (desenhar a b) (setvar "osmode" spontos) ) (defun calculo (area) (setq b (sqrt (/ area (sqrt 2)))) (setq a (* b (sqrt 2))) ) (defun desenhar (a b) (command "rectangle" (list 0 0) (list a b)) (command "rectangle" (list 0.005 0.005) (list (- a 0.005) (- b 0.005))) ) (defun escolha (nome) (cond ((= nome "a0")(setq area 1)) ((= nome "a1")(setq area (/ 1 2.0))) ((= nome "a2")(setq area (/ 1 4.0))) ((= nome "a3")(setq area (/ 1 8.0))) ((= nome "a4")(setq area (/ 1 16.0))) ) )
Guardamos de novo.


PASSO 11 - No AUTOCAD fazemos APPLOAD "macro folhas serie A.lsp successfully loaded." e introduzimos o comando HOJAS, de seguida o comando pergunta "qual o nome da folha?" ao que introduzimos o tamanho da folha que queremos e ele introduz o rectângulo com as dimensões das margens correspondentes ao A0, A1, A2, A3 e A4.
- FOLHA A0:
HOJAS
qual o nome da folha?
a0 rectangle
- FOLHA A1: HOJAS
qual o nome da folha?
a1 rectangle
- FOLHA A2:
HOJAS
qual o nome da folha?
a2 rectangle
- FOLHA A3: HOJAS
qual o nome da folha?
a3 rectangle
- FOLHA A4: HOJAS
qual o nome da folha?
a4 rectangle

*
Comments