ERROR en un LIPS para escalar en autocad

Ver el tema anterior Ver el tema siguiente Ir abajo

ERROR en un LIPS para escalar en autocad

Mensaje por SABRINA91 el Dom Ago 13, 2017 2:04 am

Buenas Tardes,
                    Tengo problemas para la aplicación de un lips para modificar escala. Probé en autocad 2012 y 2014 y no me es posible aplicarlo.
                    Seguidamente adjunto una screenshoot de lo que me aparece cuando quiero ejecutarla y el lips mismo esperando que puedan por favor ayudarme con este inconveniente. Gracias.


Saludos.-





SABRINA91

Mensajes : 1
Fecha de inscripción : 13/08/2017

Ver perfil de usuario

Volver arriba Ir abajo

Re: ERROR en un LIPS para escalar en autocad

Mensaje por Luis Alberto Benitez el Dom Ago 13, 2017 3:06 pm

Sabrina
Bienvenida al Foro, aquí coloco el lisp en código
para ser mas fácil la descarga del mismo.
Espero algunos de los maestros del Foro encuentre la
solución a tu inconveniente para la
ejecución del mismo.
Código:

/¯¯¯                   |  /¯¯¯¯    /¯\    |¯¯¯¯\
\__        __   __     | |        /___\   |     |
   \ |¯¯\ |__| |__| /¯¯| |       /     \  |     |
___/ |__/ |__  |__  \__|  \____ /       \ |____/
     |
     | 2008
|;
(defun escalar-eje-x-y ()
  (princ "\n*** seleccione objetos para escalar ***")
  (setq objetos (ssget))
  (if (/= objetos nil)
    (progn
      (setq num-objetos (sslength objetos))
      (setq ss (ssadd))
      (setq n 0)
      (initget 7)
      (setq pbase (getpoint "\nSelecione el punto de base: "))
      (setq escx (getreal "\nIndique escala en el eje X <1>: "))

      (vl-cmdf "_.COPY" objetos "" pbase pbase)

      (while (= escx 0)
 (prompt "\n*** la escala debe ser mayor o menor a cero. ***"
 )
 (setq escx (getreal "\nIndique escala en el eje X <1>: "))
      )
      (setq escy (getreal "\nIndique escala en el eje Y <1>: "))
      (while (= escy 0)
 (prompt "\n*** la escala debe ser mayor o menor a cero. ***"
 )
 (setq escy (getreal "\nIndique escala en el eje Y <1>: "))
      )
      (if (= escx nil)
 (setq escx 1)
      )
      (if (= escy nil)
 (setq escy 1)
      )
      (repeat num-objetos
 (setq nom-objeto (ssname objetos n))
 (setq add-objetos (ssadd nom-objeto ss))
 (setq n (1+ n))
      )
      (command "_.-block" "_$o$_" pbase add-objetos "")
      (command "_.-insert" "_$o$_" pbase escx escy "")
      (setq bloque (entlast))
      (command "_.explode" bloque)
      (command "_.purge" "_b" "_$o$_" "_n")
    ) ;_progn
    (prompt "\n*** nungún objeto seleccionado ***")
  ) ;_if
) ;_defun

(defun c:esc-xy (/    objetos    num-objetos     ss
 n    escx       escy  nom-objeto add-objetos
 bloque
 )
  (setvar "cmdecho" 0)
  (command "_.undo" "inicio");Comando deshacer Inicio (begin en Ingles)
  (escalar-eje-x-y)
  (command "_.undo" "fin");Comando deshacer Final(End en Ingles)
  (setvar "cmdecho" 0)
  (setq ss (ssget "p"));Selecciona todos los objetos de la seleccion anterior.
  ;(setq ss (ssget))
  (command "_pedit"  "m" ss"" "s""j""0""")
  (setq bloque (entlast));Selecciona la polilinea 2d
  (command "convertir" "p" "D" bloque"");Para Convertir Polilinea 2d a Polilinea
  (prin1)
) ;_defun

(prompt "\n*** nuevo comando ESC-XY definido. ***")
(prin1)

Luis Alberto Benitez

Mensajes : 45
Fecha de inscripción : 29/03/2016

Ver perfil de usuario

Volver arriba Ir abajo

no puede redefinir

Mensaje por Admin el Dom Ago 13, 2017 3:47 pm

Sabrina , el problema es que el LISP, quiere redefinir el bloque "_$o$_", que esta orden lo quiere crear

Código:
(command "_.-block" "_$o$_" pbase add-objetos "")

Por favor sube el DWG , así lo podemos verificar .

Puedes subirlo con algún servicio de nube , DROPBOX o similar , o enviarlo a mi e-mail  devitg@gmail.com

Los archivos de LISP  los puedes subir , si le cambias la extensión a TXT, o lo puedes poner en el POST , como código .

Código:
/¯¯¯                   |  /¯¯¯¯    /¯\    |¯¯¯¯\
\__        __   __     | |        /___\   |     |
   \ |¯¯\ |__| |__| /¯¯| |       /     \  |     |
___/ |__/ |__  |__  \__|  \____ /       \ |____/
     |
     | 2008
|;
(defun escalar-eje-x-y ()
  (princ "\n*** seleccione objetos para escalar ***")
  (setq objetos (ssget))
  (if (/= objetos nil)
    (progn
      (setq num-objetos (sslength objetos))
      (setq ss (ssadd))
      (setq n 0)
      (initget 7)
      (setq pbase (getpoint "\nSelecione el punto de base: "))
      (setq escx (getreal "\nIndique escala en el eje X <1>: "))

      (vl-cmdf "_.COPY" objetos "" pbase pbase)

      (while (= escx 0)
 (prompt "\n*** la escala debe ser mayor o menor a cero. ***"
 )
 (setq escx (getreal "\nIndique escala en el eje X <1>: "))
      )
      (setq escy (getreal "\nIndique escala en el eje Y <1>: "))
      (while (= escy 0)
 (prompt "\n*** la escala debe ser mayor o menor a cero. ***"
 )
 (setq escy (getreal "\nIndique escala en el eje Y <1>: "))
      )
      (if (= escx nil)
 (setq escx 1)
      )
      (if (= escy nil)
 (setq escy 1)
      )
      (repeat num-objetos
 (setq nom-objeto (ssname objetos n))
 (setq add-objetos (ssadd nom-objeto ss))
 (setq n (1+ n))
      )
      (command "_.-block" "_$o$_" pbase add-objetos "")
      (command "_.-insert" "_$o$_" pbase escx escy "")
      (setq bloque (entlast))
      (command "_.explode" bloque)
      (command "_.purge" "_b" "_$o$_" "_n")
    ) ;_progn
    (prompt "\n*** nungún objeto seleccionado ***")
  ) ;_if
) ;_defun

(defun c:esc-xy (/    objetos    num-objetos     ss
 n    escx       escy  nom-objeto add-objetos
 bloque
 )
  (setvar "cmdecho" 0)
  (command "_.undo" "inicio");Comando deshacer Inicio (begin en Ingles)
  (escalar-eje-x-y)
  (command "_.undo" "fin");Comando deshacer Final(End en Ingles)
  (setvar "cmdecho" 0)
  (setq ss (ssget "p"));Selecciona todos los objetos de la seleccion anterior.
  ;(setq ss (ssget))
  (command "_pedit"  "m" ss"" "s""j""0""")
  (setq bloque (entlast));Selecciona la polilinea 2d
  (command "convertir" "p" "D" bloque"");Para Convertir Polilinea 2d a Polilinea
  (prin1)
) ;_defun

(prompt "\n*** nuevo comando ESC-XY definido. ***")
(prin1)

Admin
Admin

Mensajes : 164
Fecha de inscripción : 16/03/2016
Edad : 69
Localización : CORDOBA ARGENTINA

Ver perfil de usuario http://acadhispano.foroargentina.net

Volver arriba Ir abajo

Re: ERROR en un LIPS para escalar en autocad

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.