PDA

Ver versión completa : ¿Sabes si hay un error en código de VisualLisp?



alejandron2005
14/02/2006, 20:02
hola a todos quiero sabes si este codigo esta bien..... y si esta mal como autocad me lo corrige.... tengo el autocad 2004
EL CODIGO ES EL SIG:



; RUEDA.LSP: Dibujo de una rueda dentada
(defun dibuja_rueda
(centro radio numdi/ dang ang ang1 ang2 ang3 pto1 pto2 pto3 pto4 pto5 radd blip cmd)

(setq blip(getvar "BLIPMODE"))
(setq cmd(getvar "CMDECHO"))
(setvar "BLIPMODE" 0)
(setvar "CMDECHO" 0)

(setq dang (*3.141592 2))
(setq dang (/ dang numdi))
(setq ang1 (/ dang 4))
(setq ang2 (/ dang 2))
(setq ang3 (* 3 ang1))

(setq ang 0)
(repeat numdi
(setq pto1 (polar centro ang radio))
(setq pto3 (polar centro (+ ang ang2) radio))
(setq radd (/ (distance pto1 pto3) 2))
(setq pto2 (polar centro (+ ang ang1)(+ radio radd)))
(command "arco" pto1 pto2 pto3)

(setq pto5 (polar centro (+ ang dang) radio))
(setq radd(/ (distance pto3 pto5)2))
(setq pto4(polar centro (+ang ang3)(- radio radd)))
(command "arco" pto3 pto4 pto5)

(setq ang (+ ang dang))
)

(setvar "BLIPMODE" blip) ;restablecemos BLIPMODE
(setvar "CMDECHO" cmd) ;restablecemos CMDECHO
nil
)

;La función RUEDA es la que solicia los parámetros.
(defun c:rueda(/ cen rru ndi)

(initget 1)
(setq cen (getpoint" \nCentro de la rueda:"))
(initget 7)
(setq rru (getdist" \nRadio de la rueda:"))
(initget 7)
(setq ndi (getint" \nNúmero de dientes:"))
(dibuja_rueda cen rru ndi)
)

vorpal
15/02/2006, 06:51
Es bunea costumbre indentar las líneas para ver el nivel de anidamiento de o de paréntesis abiertos.

Creo que es el programa "visual lisp" el que te permite verificar la sintaxis de una rutina como esta.

Saludos.

patttxi
04/10/2007, 23:42
;Había unos cuantos errores, prueba con este codigo....
;Saludos


; RUEDA.LSP: Dibujo de una rueda dentada
(defun dibuja_rueda
( / );(centro radio ndi / dang ang ang1 ang2 ang3 pto1 pto2 pto3 pto4 pto5 radd blip cmd)
(setq blip(getvar "BLIPMODE"))
(setq cmd(getvar "CMDECHO"))
(setvar "BLIPMODE" 0)
(setvar "CMDECHO" 0)
(setq dang (* 3.141592 2))
(setq dang (/ dang ndi))
(setq ang1 (/ dang 4))
(setq ang2 (/ dang 2))
(setq ang3 (* 3 ang1))
(setq ang 0)
(repeat ndi
(setq pto1 (polar centro ang radio))
(setq pto3 (polar centro (+ ang ang2) radio))
(setq radd (/ (distance pto1 pto3) 2))
(setq pto2 (polar centro (+ ang ang1)(+ radio radd)))
(command "_arc" pto1 pto2 pto3)
(setq pto5 (polar centro (+ ang dang) radio))
(setq radd(/ (distance pto3 pto5)2))
(setq pto4(polar centro (+ ang ang3)(- radio radd)))
(command "_arc" pto3 pto4 pto5)
(setq ang (+ ang dang))
)
(setvar "BLIPMODE" blip) ;restablecemos BLIPMODE
(setvar "CMDECHO" cmd) ;restablecemos CMDECHO
nil
)
;La función RUEDA es la que solicia los parámetros.
(defun c:rueda(/)
(initget 1)
(setq centro (getpoint" \nCentro de la rueda:"))
(initget 7)
(setq radio (getdist" \nRadio de la rueda:"))
(initget 7)
(setq ndi (getint" \nNúmero de dientes:"))
(dibuja_rueda) ;)
)

Condiciones de uso | Publicidad | Acerca de | FacebookUnirse a Sólo Arquitectura en Facebook | TwitterSeguir a @SArquitectura en Twitter

Prohibida la reproducción total o parcial sin la autorización previa y por escrito del editor.