mikarts Posted November 5, 2024 Posted November 5, 2024 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 ) Quote
devitg Posted November 5, 2024 Posted November 5, 2024 (edited) 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 November 5, 2024 by devitg my error Quote
devitg Posted November 5, 2024 Posted November 5, 2024 (edited) 14 minutes ago, devitg said: @mikarts Edited November 5, 2024 by devitg my error Quote
devitg Posted November 5, 2024 Posted November 5, 2024 @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 ) Quote
Recommended Posts
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.