Desenhar Compartimentos

Continuando com as Rotinas Lisps (Como usar as Rotinas Lisp?)
Mais um exemplo:

;; A partir de um compartimento inicial (retângulo) desenha outros desde que o desenho esteja fora do pto -1000,-1000. Basta entrar com a largura e a altura e depois clicar nas quinas ou pontos médios dos retângulos.
(defun c:Compart ()
(command “_osmode” “3”)
(command “_cecolor” “6”)
(if k
(setq ks (strcat “Espessura da parede atual = ” (rtos k 2 3)))
(progn (setq ks “Defina para espessura da parede ___”)
(setq k (getreal ks)))
)
(setq pf (list -1000 -1000))
(setq p1 pf)
(while p1
(setq a2 a)
(setq b2 b)
(setq a (getreal “Lado A __”))
(setq b (getreal “lado B __”))
(setq p1 (getpoint “Quina __”))
(if p1 (setq p1 p1) (fim))
(if a (setq a a) (setq a a2))
(if b (setq b b) (setq b b2))
(setq x1 (nth 0 p1))
(setq y1 (nth 1 p1))
(setq ob (ssget p1))
(setq ko (/ a 2.1))
(command “_offset” ko ob pf “”)
(command “_change” “_l” “” “P” “_C” “2” “”)
(setq p2 (getpoint “Pick point __”))
(setq x2 (nth 0 p2))
(setq y2 (nth 1 p2))
(command “_erase” “_l” “”)
(setq dx (- x2 x1))
(if (> x2 x1) (setq mdx (- x2 x1)) (setq mdx (- x1 x2)))
(if (> y2 y1) (setq mdy (- y2 y1)) (setq mdy (- y1 y2)))
(setq dy (- y2 y1))
(setq q1 (/ mdx dx))
(setq q2 (/ mdy dy))
(if (= (rtos mdx 2 4) (rtos mdy 2 4) (rtos ko 2 4)) (progn (setq n1 q1) (setq n2 q2))
(progn
(if (= (rtos mdx 2 4) (rtos ko 2 4)) (progn (setq n1 q1) (setq n2 0)))
(if (= (rtos mdy 2 4) (rtos ko 2 4)) (progn (setq n1 0) (setq n2 q2)))
))
(setq pc1 (list (+ (* n1 k) x1) (+ (* n2 k) y1)))
(setq nl1 q1)
(setq nl2 q2)
(setq pc2 (list (+ (* nl1 a) (+ (* n1 k) x1) ) (+ (* nl2 b) (+ (* n2 k) y1))))
(command “_aperture” “1”)
(command “_rectang” pc1 pc2)
(command “_aperture” “5”)
)
)
(defun fim ()
(setq k (getreal “Nova Espessura para parede ___”))
(setq p1 (getpoint “Quina __”))
)
;; Criador: #######@gmail.com – ################@yahoo.com.br

Sobre NilsonRDG

Minha lista de scripts/rotinas em Autolisp, Autohotkey, JavaScript, PHP e VBA. Nilson Rodrigues - Ouro Preto - MG
Esse post foi publicado em Arquitetura, AutoCAD, Autolisp, Desenho, Engenharia Civil. Bookmark o link permanente.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s