Escolar Documentos
Profissional Documentos
Cultura Documentos
2009@FEUP/DEMec-SDI
1 Exemplo - Rectngulo
pt4 Desenvolva um programa em AutoLISP que permita criar a figura junta. Utilize a funo LIST para definir d fi i as coordenadas d d d dos novos pontos. pt3
pt1 b
pt2
2009@JST/JOF
JST/JOF
2009@FEUP/DEMec-SDI
1 Exemplo - Rectngulo
pt4 ;Programa para desenhar um rectngulo atravs de: ; canto inferior esquerdo, largura e altura ; (D f c:rect() (Defun () ; LEITURA pt1 ; vai ler os valores de definio (setq b (getreal "\nLargura : ")) (setq h (getreal "\nAltura : ")) (setq pt1 (getpoint "\nCanto Inferior Esquerdo : ")) ; CLCULOS ; vai calcular os outros pontos necessrios (setq pt2 (list (+ (car pt1) b) (cadr pt1))) (setq pt3 (list (car pt2) (+ (cadr pt1) h))) (setq pt4 (list (car pt1) (cadr pt3))) ; DESENHO ; Vai desenhar atravs do comando LINE e opo final Close (command "line" pt1 pt2 pt3 pt4 "c") ) pt3
pt2 b
2009@JST/JOF
2 Exemplo - Porta
Desenvolva um programa em AutoLISP que permita criar a figura junta e traar as linhas a trao misto. Considere que as linhas a trao misto ultrapassam a figura em 5mm.
(O utilizador define a largura, a altura e o ponto pt0.)
AutoLISP - Programas Exemplo 2009@JST/JOF
pt6
pt7
pt4 a
JST/JOF
2009@FEUP/DEMec-SDI
2 Exemplo - Porta
;Programa para desenhar uma Porta de arco atravs de: ;Centro inferior, largura e altura direita. jof-92-11-25 pt8 (Defun c:porta() pt3 p 5 ; LEITURA ; vai ler os valores (setq a (getreal "\nLargura da porta : ")) (setq b (getreal "\nAltura direita da porta : ")) pt4 a (setq pt0 (getpoint "\nPonto Central inferior : ")) ; CLCULOS ; vai calcular outros pontos necessrios ao desenho da figura (setq ( q a2 ( (/ a 2)) )) (setq pi2 (/ pi 2)) (setq pt1 (polar pt0 0 a2)) (setq pt2 (polar pt1 pi2 b)) (setq pt4 (polar pt0 pi a2)) (setq pt3 (polar pt4 pi2 b))
AutoLISP - Programas Exemplo 2009@JST/JOF
pt6 pt7 pt2 p
2 Exemplo - Porta
(setq pt5 (polar pt0 (- pi2) 5)) (setq pt7 (polar pt2 0 5)) (setq pt8 (polar pt3 pi 5)) (setq pp (+ b a2 10)) (setq pt6 (polar pt5 pi2 pp)) ; DESENHO ; Altera o layer e desenha (command "layer" "m" "TG" "") (command "line" pt3 pt4 pt1 pt2 "" "arc" "" pt3 ; Arco contnuo ) (command "layer" "m" "tm" "") ( (command d "li "line" " pt5 pt6 6 "" "line" pt7 pt8 "" ) )
pt6
pt7
pt4 a
2009@JST/JOF
JST/JOF
2009@FEUP/DEMec-SDI
pt6
pt7 pt2
pt7
pt4 a
JST/JOF
2009@FEUP/DEMec-SDI
pt7 pt2
pt7
2009@JST/JOF
10
JST/JOF
2009@FEUP/DEMec-SDI
2009@JST/JOF
12
JST/JOF
2009@FEUP/DEMec-SDI
2009@JST/JOF
14
JST/JOF
2009@FEUP/DEMec-SDI
JST/JOF
2009@FEUP/DEMec-SDI
JST/JOF
2009@FEUP/DEMec-SDI
2009@JST/JOF
19
2009@JST/JOF
20
JST/JOF
10
2009@FEUP/DEMec-SDI
pt7
2009@JST/JOF
21
pt7
2009@JST/JOF
22
JST/JOF
11
2009@FEUP/DEMec-SDI
2009@JST/JOF
23
2009@JST/JOF
24
JST/JOF
12
2009@FEUP/DEMec-SDI
; fim do if de op = 1 ) ; fim da abertura do if de ierro = 0 (prompt "\nO dimetro introduzido no existe no ficheiro!") ; seno1 1 ) ; fim do if de ierro = 0 (command "layer" "m" olay "") ; repor estado anterior (setvar "osmode" oosnap)
2009@JST/JOF
25
JST/JOF
13
2009@FEUP/DEMec-SDI
pc
pt0
pt3 Y X b pt2 L
2009@JST/JOF
27
ptp0 ap
h
ap ap1
pt0
ap1 L3
pt3 t3
L2 ptp1 L1
pt1 X b pt2
Y L
2009@JST/JOF
28
JST/JOF
14
2009@FEUP/DEMec-SDI
2009@JST/JOF
2009@JST/JOF
JST/JOF
15
2009@FEUP/DEMec-SDI
2009@JST/JOF
31
2009@JST/JOF
JST/JOF
16
2009@FEUP/DEMec-SDI
2009@JST/JOF
2009@JST/JOF
34
JST/JOF
17
2009@FEUP/DEMec-SDI
JST/JOF
18
2009@FEUP/DEMec-SDI
2009@JST/JOF
37
2009@JST/JOF
38
JST/JOF
19
2009@FEUP/DEMec-SDI
2009@JST/JOF
39
; ; define o layer a alterar e qual a espessura ; (setq tlayer "TG") (setq tesp 0.4) ; ; Processa primeiro POLYLINE, seno repetiria o processamento ; das outras entidades, entretanto transformadas em POLYLINE ; cria lista com todas as entidades do desenho que satisfazem o ; "filtro definido 8=apontador do "layer" e 0=apontador do tipo
40
2009@JST/JOF
JST/JOF
20
2009@FEUP/DEMec-SDI
2009@JST/JOF
41
JST/JOF
21
2009@FEUP/DEMec-SDI
JST/JOF
22
2009@FEUP/DEMec-SDI
2009@JST/JOF
45
2009@JST/JOF
46
JST/JOF
23
2009@FEUP/DEMec-SDI
2009@JST/JOF
47
JST/JOF
24