Desenhar uma linha contínua a partir de pequenos incrementos

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

;; Rotina para desenhar uma linha contínua (vertical ou horizontal) a partir de pequenos incrementos

(defun c:iLinha()

(command “_osmode” “1”)

(setq ct (getstring “X ou Y ????”))

(setq dx 0)

(setq dy 0)

(setq p1 (getpoint “P1__”))

(setq x1 (nth 0 p1))

(setq y1 (nth 1 p1))

(if (= ct “X”) (setq ct “x”))

(if (= ct “Y”) (setq ct “y”))

(if (= ct “x”)

(progn

(setq s (getreal “dx __”))

(while s

(setq dx (+ dx s))

(setq s (getreal “dx __”))

)

)

)

(if (= ct “y”)

(progn

(setq s (getreal “dy __”))

(while s

(setq dy (+ dy s))

(setq s (getreal “dy __”))

)

)

)

(setq p2 (list (+ x1 dx) (+ y1 dy)))

(command “_osmode” “0”)

(command “_line” p1 p2 “”)

(command “_osmode” “1”)

)

Anúncios

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 )

Imagem do Twitter

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

Foto do Facebook

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

Foto do Google+

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

Conectando a %s