miércoles, 11 de marzo de 2009

Ejemplo

Esta primera entrega esta dedicada a mi primera rutina "Grilla.lsp".
Para utilizar esta rutina (y todas las demás a futuro) solo debes seguir los siguientes pasos:

1.- Copiar el código y pegarlo en un archivo nuevo del notepad y guardarlo con la extensión ".lsp" es decir "grilla.lsp" (sin comillassss).

2.- Ese archivo lo ubicas en la carpeta de instalación de Autocad Ej.

C:\Archivos de programa\AutoCAD R14

3.- Cargar la rutina desde el menú Tools -> Load Aplication... ->File -> Seleccionas el archivo grilla.lsp -> Abrir ->Load.

4.- Al estar copiado el archivo en el directorio de instalación puedes ocupar esta alternativa al punto 3:

En la línea de comando escribes (load "grilla") ... esta vez con comillas y le das un enter

Ej. Command:(load "grilla")

5.- Para hacer correr la rutina escribes en la línea de comando "grilla" (sin comillas)

Command:grilla ... y le das un enter.

Solicita la escala y luego el extremo inferior izquierdo y después el extremo superior derecho.

Nota: trabaja con la configuración de unidades decimales.


El código


(defun c:grilla (/ e osm col la a n c sca scat alh alv nor est b xb
yb xc yc dix diy pt1 pt2 ptn ptxt txt)
(setq e (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setq osm (getvar "osmode"))
(setvar "osmode" 0)
(setq col (getvar "cecolor"))
(setvar "cecolor" "8")
(setq la (getvar "clayer"))
(if (tblsearch "layer" "grilla")
(command "layer" "set" "grilla" "")
(command "layer" "new" "grilla" "set" "grilla" "")
)
(command "style" "ro" "romans.shx" "" "" "" "" "" "")
(setq a (getint "Factor de escala: "))(terpri)
(setq n (getpoint "Extremo inferior izquierdo: "))(terpri)
(setq c (getpoint "Extremo superior derecho: "))(terpri)
(setq sca (/ a 10))
(setq scat (/ a 500.0))
(setq alh (/ sca 250.0))
(setq alv (/ sca 166.6666))
(setq nor "N = ")
(setq est "E = ")
(setq b n)
(setq xb (* (fix (/ (car b) sca)) sca))
(setq yb (* (fix (/ (cadr b) sca)) sca))
(setq xc (+ (* (fix (/ (car c) sca)) sca) sca))
(setq yc (+ (* (fix (/ (cadr c) sca)) sca) sca))
(setq dix (- xc xb))
(setq diy (- yc yb))
(repeat (+ (/ dix sca) 1)
(setq xb (* (fix (/ (car b) sca)) sca))
(setq yb (* (fix (/ (cadr b) sca)) sca))
(setq xc (+ (* (fix (/ (car c) sca)) sca) sca))
(setq yc (+ (* (fix (/ (cadr c) sca)) sca) sca))
(setq pt1 (list xb yb))
(setq pt2 (list xb yc))
(setq ptn (list (+ xb sca) yb))
(setq b ptn)
(setq ptxt (list (- xb alh)(+ yb alv)))
(setq txt (strcat est (itoa xb)))
(command "text" ptxt scat "90" txt)
(command "line" pt1 pt2 "")
)
(setq b n)
(repeat (+ (/ diy sca) 1)
(setq xb (* (fix (/ (car b) sca)) sca))
(setq yb (* (fix (/ (cadr b) sca)) sca))
(setq xc (+ (* (fix (/ (car c) sca)) sca) sca))
(setq yc (+ (* (fix (/ (cadr c) sca)) sca) sca))
(setq pt1 (list xb yb))
(setq pt2 (list xc yb))
(setq ptn (list xb (+ yb sca)))
(setq b ptn)
(setq ptxt (list (+ xb alh)(+ yb alv)))
(setq txt (strcat nor (itoa yb)))
(command "text" ptxt scat "0" txt)

(command "line" pt1 pt2 "")
)
(setvar "osmode" osm)
(setvar "cecolor" col)
(setvar "clayer" la)
(setvar "cmdecho" e)
)

8 comentarios:

  1. Jaime me parce una exelente iniciativa!!!!!!!!!, te voy ha estar cooperando.
    salu2

    ResponderEliminar
  2. Que bueno jaime, es una muy buena iniciativa, prepárate pues vas a ayudar a muchos "topos", suerte...

    ResponderEliminar
  3. buena jaimillo me parece muy bakan, esto si que sirve de mucho ojala lo sepan aprovechar, empesaste con el lisp grilla ese esta de pelos alivia mucho y todos los otros lisp que tienes vale compadre se agradece el blog

    ResponderEliminar
  4. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  5. Buenos días a todos en el blog, antes felicitarte por la iniciativa, y bueno tambien para consultarte sobre la ejecución de la rutina "grilla", con AUTOCAD.2007, si existe algun efecto sobre esta versión dado a que no puedo ejecutar el comando, previo haber cargado la misma("aapload"). Estare habido a la aclaración que me puedas hacer saber.....gracias de antemano....

    ResponderEliminar
  6. gracias jaime que lisp tan importante me ayudo mucho

    ResponderEliminar
  7. muy bueno, felicitaciones y gracias, el codigo funciona perfectamente

    ResponderEliminar