acad hispano
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

ERROR en un LIPS para escalar en autocad

3 participantes

Ir abajo

ERROR en un LIPS para escalar en autocad Empty ERROR en un LIPS para escalar en autocad

Mensaje por SABRINA91 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.-


ERROR en un LIPS para escalar en autocad Sin_ty10

ERROR en un LIPS para escalar en autocad Sin_ty11

SABRINA91

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

Volver arriba Ir abajo

ERROR en un LIPS para escalar en autocad Empty Re: ERROR en un LIPS para escalar en autocad

Mensaje por Luis Alberto Benitez 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 : 112
Fecha de inscripción : 29/03/2016

Volver arriba Ir abajo

ERROR en un LIPS para escalar en autocad Empty no puede redefinir

Mensaje por devitg 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)

devitg
Admin

Mensajes : 257
Fecha de inscripción : 16/03/2016
Edad : 75
Localización : CORDOBA ARGENTINA

https://acadhispano.foroargentina.net

Volver arriba Ir abajo

ERROR en un LIPS para escalar en autocad Empty Re: ERROR en un LIPS para escalar en autocad

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Volver arriba

- Temas similares

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