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
ivaj Posted 21 hours ago Posted 21 hours ago Buenos días Me parece muy interesante, se pudiera colocar un guion en el archivo de DWG. Ejemplo: el Archivo de llama Tomo.dwg y tengo varias presentaciones, 001,002, etc. ya la hora de crear el archivo independiente de cada una de las presentaciones me crea un fichero Tomo001.dwg, Tomo002.dwg, etc. y en mi caso me haría falta que saliera Tomo-001.dwg, Tomo-002.dwg, etc. Quote
devitg Posted 5 hours ago Posted 5 hours ago 15 hours ago, ivaj said: Buenos días Me parece muy interesante, se pudiera colocar un guion en el archivo de DWG. Ejemplo: el Archivo de llama Tomo.dwg y tengo varias presentaciones, 001,002, etc. ya la hora de crear el archivo independiente de cada una de las presentaciones me crea un fichero Tomo001.dwg, Tomo002.dwg, etc. y en mi caso me haría falta que saliera Tomo-001.dwg, Tomo-002.dwg, etc. @ivaj Please upload tomo.dwg Quote
mikarts Posted 1 hour ago Author Posted 1 hour ago (edited) Hola. Contesto desde el móvil y sin probarlo, pero si no me equivoco bastaría con introducir el guión modificando esta parte del código así: (command "_exportlayout" (strcat (getvar "dwgprefix") (vl-filename-base (getvar "dwgname")) "-" presentacion ) ;(getvar "ctab") ".dwg") @ivaj Ya nos dices si te va. Edited 1 hour ago by mikarts Mistake 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.