Jump to content

Lisp exportar todas las presentaciones


mikarts

Recommended Posts

Buenas tardes.
La orden exportarpresentacion (_exportlayout) exporta una presentación cada vez.
Estoy intentando hacer un lisp que exporte todas las presentaciones de un dwg, una por una.

Funciona, pero me guarda los nuevos archivos en Documentos y no en la ruta que quiero, que es la del archivo.

Adjunto el código, a ver si alguien me puede ayudar.
¡Gracias por vuestro tiempo!

(defun c:exx (/)
  (setq actual (getvar "CTAB"))        ;almacena el nombre de la presentación en la que estamos
  (setq presentaciones (layoutlist))    ;crea una lista con los nombres de las presentaciones
  (setq n 0)
  (while n
    (setq presentacion (nth n presentaciones))    ;toma la presentación n de la lista
    (if    (/= presentacion nil)
      (progn
         (command "_.-layout" "d" presentacion)
         (command "_exportlayout" presentacion
               (strcat (getvar "dwgprefix") (cadr (fnsplitl (getvar 'dwgname))) " " (getvar "ctab") ".dwg")
           ) ; esto es lo que debería hacer que el nuevo dwg se guardase en la ruta del archivo abierto.
    (setq n (+ 1 n))
      )
      (setq n nil)
    )
  )
  (setvar "CTAB" actual)        ;define como actual la presentación en la que estábamos trabajando al principio
)

 

Link to comment
Share on other sites

5 hours ago, mikarts said:

Buenas tardes.
La orden exportarpresentacion (_exportlayout) exporta una presentación cada vez.
Estoy intentando hacer un lisp que exporte todas las presentaciones de un dwg, una por una.

Funciona, pero me guarda los nuevos archivos en Documentos y no en la ruta que quiero, que es la del archivo.

Adjunto el código, a ver si alguien me puede ayudar.
¡Gracias por vuestro tiempo!

(defun c:exx (/)
  (setq actual (getvar "CTAB"))        ;almacena el nombre de la presentación en la que estamos
  (setq presentaciones (layoutlist))    ;crea una lista con los nombres de las presentaciones
  (setq n 0)
  (while n
    (setq presentacion (nth n presentaciones))    ;toma la presentación n de la lista
    (if    (/= presentacion nil)
      (progn
         (command "_.-layout" "d" presentacion)
         (command "_exportlayout" presentacion
               (strcat (getvar "dwgprefix") (cadr (fnsplitl (getvar 'dwgname))) " " (getvar "ctab") ".dwg")
           ) ; esto es lo que debería hacer que el nuevo dwg se guardase en la ruta del archivo abierto.
    (setq n (+ 1 n))
      )
      (setq n nil)
    )
  )
  (setvar "CTAB" actual)        ;define como actual la presentación en la que estábamos trabajando al principio
)

 

@mikarts

 

 

 

 

Edited by devitg
my error
Link to comment
Share on other sites

@mikarts

Creo que esto puede funcionar 

 

 

(defun c:exx+devitg (/)
  (setq actual (getvar "CTAB"))        ;almacena el nombre de la presentación en la que estamos
  (setq presentaciones (layoutlist))    ;crea una lista con los nombres de las presentaciones
  ;(setq n 0)
  ;(while n
   ; (setq presentacion (nth 2 presentaciones))    ;toma la presentación n de la lista
   ;  (if    (/= presentacion nil)
    ( FOREACH presentacion presentaciones

           (setvar 'ctab presentacion)
           ;(command "_.-layout" "_d" presentacion)
         (command "_exportlayout" 
               (strcat (getvar "dwgprefix") (vl-filename-base (getvar "dwgname")) presentacion )
		  ;(getvar "ctab") ".dwg")
           ) ; esto es lo que debería hacer que el nuevo dwg se guardase en la ruta del archivo abierto.
    ;(setq n (+ 1 n))
      ); fin del FOREACH
     ; (setq n nil)
    
  
  (setvar "CTAB" actual)        ;define como actual la presentación en la que estábamos trabajando al principio
)

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...