Sei sulla pagina 1di 6

Autor:MarcoJacinto Enero2010

AutoCADylosarchivosdeguin
Una de las ventajas que ha mostrado AutoCAD a lo largo de sus ms de 20 aos de desarrollo ha sido la capacidad de personalizacin que ofrece a los usuarios, las primeras versiones solo contaban con scripts o archivos de guion, los cuales no son sino una secuencia de instrucciones tal como la solicitan los comandos dentro del editor de dibujo, muy similar en uso a lenguaje de macros DIESEL (otra herramienta ms de personalizacin), el cual se usa principalmente para indicar las acciones que ejecutaran los botones de las barrasdeherramientas,posteriormenteseintrodujoellenguajedeprogramacinLISP,elcualalmodificarse para su uso dentro AutoCAD se denomin AutoLISP, con esta adicin se ampli el panorama para poder modificar la base de datos que es el dibujo y algunos aspectos de la interfaz grfica. (Para un breve historia en
imgenes ver http://myfeedback.autodesk.com/history/area51.htm http://www.fourmilab.ch/autofile/www/autoframe.html) y para saber todo del programa y su empresa

Esta pequea gua intentara mostrar como modificar las entidades de dibujo, primero mediante archivos de guin y posteriormente usando funciones de AutoLISP y VisualLisp, por su alcance no pretende ser una gua extensa,yalestarbasadaenelconocimientoautodidactanoestarexentadeomisionesy/oerrores. Comenzaremos pues por analizar los archivos de guin o scripts los cuales como se menciona arriba, no son sinolallamadaacomandosdeAutoCADconsucorrespondientesecuenciadeopcionesydatosquerequiere parapoderejecutarseasatisfaccin,estosarchivosdeguionsegrabanenunarchivodetextosinformato,el cualdebertenerlaextensin.scr(script). Alcrearlosarchivosdeguinsedeberntenerencuentalassiguientescaractersticas: 1.Lasecuenciadecomandosnopermitequeelusuarioingresedatosdemaneramanual,esdecir,si se requiere seleccionar un objeto, el guion no puede detenerse para hacer esta seleccin, pero si puede seleccionarelobjetomediantealgunaopcindeltipoALL,LAST,etc. 2.Cadalneadelarchivodetextoesunasecuenciadecomando,unanuevalneaindicaalprograma quedebedeejecutarunENTER. 3.Alescribirelarchivodeguin,losespaciossoninterpretadoscomounENTER. 4. Para ingresar una cadena de texto que lleve espacios, esta deber colocarse entre comillas, por ejemplo:"Esteesuntextoconespacios" 5.Elnombredelcomandodeberescribirsesinusarlosalias,estoparamantenercompatibilidaden futurasversiones. 6.Serecomiendaprecederelnombredelcomandoeninglesconunguionbajo"_"estoparaquelas versiones internacionales de AutoCAD puedan reconocerlo, se debe usar este mismo concepto con las opcioneseningles. 7. Para colocar algn comentario en un archivo de guion, se debe preceder la lnea con un punto y coma; 8.Siseproduceunerrorenlaejecucindelguion,elrestodeaccionesnoseprocesaran.
1

Autor:MarcoJacinto Enero2010

AutoCADylosarchivosdeguin
9. No se pueden usar comandos que requieran un cuadro de dialogo, en su lugar se debe usar la versin para la lnea de comandos si lo tuviera. Para saber si tiene una versin para la lnea de comandos, bastaprecederelcomandoconunguionmedio,porejemplo_insertllamaraalcomandoinsertsinelcuadro dedialogo. 10. Los archivos deben de terminar con una lnea en blanco, asegurndose que la ltima lnea no tengaunespacioenblanco(ENTER)yaqueconestoseiniciaradenuevoelcomandoantesejecutado. Despus de este pequeo prembulo, comencemos con un pequeo ejemplo el cual cambiara el layer y color de todos los objetos de un archivo a 0 y Byblock respectivamente, para lograr este fin utilizaremos el comando change, el cual solicita seleccionar los objetos y despus nos permite cambiar los objetos.PrimeroanalicemoslasecuenciadelcomandodesdeAutoCAD:

Para hacer el archivo de guin hay que considerar que cada nueva lnea despus de una solicitud de informacinrepresentaunENTER,conlocuallalneadenuestroarchivoquedaraas:
;;;Iniciaguin _change_all_properties_layer0 _colorByblock ;;;Terminaguion

Las instrucciones anteriores se deben grabar en un archivo con extensin scr en la direccin que ms nos convenga, estos archivos se abren con el comando Guion o _Script, en el cual aparece un cuadro de dialogo quenospermiteseleccionarelarchivoquedeseemoscorrer,asbuscamoselarchivoquerecincreamosylo abrimos,consideremosqueelarchivosellamaCambia0.scr. Enelejemploanterioresdenotarquejustodespusdelnombredellayer(enestecaso0)esnecesariohacer un salto de lnea, ya que si se continua en la misma, el comando toma todo lo que se ingrese despus del

Autor:MarcoJacinto Enero2010

AutoCADylosarchivosdeguin
nombredellayercomopartedeesteynocomoelrestodelasinstrucciones,aspuesestaesunarestriccin quedebemostomarencuentaparapoderingresarcadenasdetextocomorespuestaauncomando. Un problema que puede resultar con el guion anterior es que el archivo no est actualmente en espacio modelo, con lo que se seleccionara solamente los objetos en espacio papel, as, antes de correr el comando change,primerocambiamosalespacioquenosinteresa:
;;Iniciaguin Tilemode1 _change_all_properties_layer0 _colorByblock ;;;Terminaguion

Elguionanteriorlopodemosmejorarparaqueademsdecambiarellayer,seasegurequelosobjetosestn con el valor Z en 0, que el dibujo se purgue, y adems le haga un Zoom Extents, siendo las instrucciones comosigue::
;;Iniciaguion ;;;Tilemodeeslavariablequecontrolasiestamosenespaciopapelomodelo _Tilemode1 _Change_All_Properties_LAyer0 _ColorByblock ;;;esteopcinlatomedeesteposthttp://www.hispacad.com/foro/viewtopic.php?p=127149#127149 _Move_All0,0,00,0,1e99 _Move_All0,0,00,0,1e99 _Zoom_Extents _Purge_All*n ;;;Terminaguion

Unapuntoanotarenelingresodelasordenesdeuncomandoescuandoesterequierehacerunaseleccin, siempre se deben colocar dos espacios (dos ENTER), ya que uno ejecuta la opcin elegida (en este caso SeleccionarTodo),yelsiguienteterminaconel mododeseleccindeobjetos,sisoloseingresaraunENTER, el comando seguira esperando que seleccionemos objetos adicionales, pero el guion le dara el resto de las instrucciones,conlocualsecrearaunerroryelarchivodeguionfallara. Este guion nos servir para lograr que nuestra biblioteca de bloques tenga cada uno de los archivos segn dictanloscnonesdelCAD,esdecirenellayer0yencolorByBlock,peronosencontramosconunproblema: Comohagocorrerestearchivodeguinencadaunodelosdibujosquelacomponen? Abrir cada uno de los archivos y ejecutar la instruccin resultara muy cansado y contrario a nuestra alma de hackers Entonces? La respuesta viene de mano del viejo y vilipendiado DOS, el cual con el comando DIR nos permite crear un archivodetextoquecontengalasdireccionesdecadaunodelosarchivosenunacarpeta.Lainstruccines:
3

Autor:MarcoJacinto Enero2010

AutoCADylosarchivosdeguin
dirNombreDirectorio>NombreArchivo/b/s/n Ejemplo: C:\HispaCAD\bloques>C:\HispaCAD\Lista.scr/aD/b/s Esta instruccin buscara todos los archivos dwg en la carpeta C:\HispaCAD\bloques y creara el archivo Lista.screneldirectorioC:\HispaCAD\,elparmetro/aDharquenoselistenlosdirectorios,esdecirsolo se agregarn los archivos en la carpeta origen, /b le indica que se creen los archivos sin encabezados y /s buscaraeneldirectorioespecificadoyentodoslossubdirectoriosqueposealacarpetadeorigen. ElarchivoLista.scrcontendrahoraladireccindelosarchivosquenosinteresaabrir: C:\HispaCAD\Bloques\ELEVADOR.dwg C:\HispaCAD\Bloques\EMERGENCIA.dwg C:\HispaCAD\Bloques\ESTRUCTURA.dwg C:\HispaCAD\Bloques\FUENTES.dwg C:\HispaCAD\Bloques\GENTE.dwg C:\HispaCAD\Bloques\GIMNASIO.dwg C:\HispaCAD\Bloques\HOSPITALES.dwg C:\HispaCAD\Bloques\HOTSPRINGSPA.dwg Estas direcciones por si solas no harn que AutoCAD abra y corra las instrucciones, debemos indicarle al programa que abra cada una de las direcciones, esto lo haremos manualmente usando la herramienta reemplazardelblockdenotas.

Ntese que se est precediendo el nombre del archivo con comillas, esto para evitar un error en caso que la rutatengaalgnespacioenelnombredelosarchivosocarpetas Despusagregamoslascomillasalfinaldelaruta

Autor:MarcoJacinto Enero2010

AutoCADylosarchivosdeguin
._qsave_open "C:\HispaCAD\bloques\ELEVADOR.dwg" ._qsave_open "C:\HispaCAD\bloques\EMERGENCIA.dwg" ._qsave_open "C:\HispaCAD\bloques\ESTRUCTURA.dwg" ._qsave_open"C:\HispaCAD\bloques\FUENTES.dwg" ._qsave_open"C:\HispaCAD\bloques\GENTE.dwg" ._qsave_open"C:\HispaCAD\bloques\GIMNASIO.dwg" ._qsave_open "C:\HispaCAD\bloques\HOSPITALES.dwg" ._qsave_open"C:\HispaCAD\bloques\HOTSPRING SPA.dwg" Con lo anterior ya indicamos en el archivo de guion que se debe grabar el dibujo actual y abrir el que se indica a continuacin, ahora falta agregar las instrucciones, esto lo haremos manualmente, ya que hasta el momento no he sabido como agregarlos desde el DOS o de alguna otra manera, bueno si se hacerlo en LISP peroesemtodovamasalldeltemaqueestamosestudiandoahora.
;;;iniciaguion ._qsaveopen"C:\HispaCAD\bloques\ELEVADOR.dwg" _Tilemode1 _Change_All_Properties_LAyer0 _ColorByblock _Move_All0,0,00,0,1e99 _Move_All0,0,00,0,1e99 _Zoom_Extents ._qsaveopen"C:\HispaCAD\bloques\EMERGENCIA.dwg" _Tilemode1 _Change_All_Properties_LAyer0 _ColorByblock _Move_All0,0,00,0,1e99 _Move_All0,0,00,0,1e99 _Zoom_Extents ;;;Terminaguion En el guion anterior deliberadamente quite los comentarios que estaban en el ejemplo original para hacer ms corto el texto,ascomoelhabereliminadoelrestodearchivosqueaparecenenlista.scr Antes de correr el archivo de guion que recin creamos, es necesario que se establezca la variable SDI en 1, al ponerle este valor le indicamos a AutoCAD que prenda la Interface de Dibujo nico (Single Drawing Interface), ya que de no hacerlo se abrirn todo los archivos en la sesin actual, con el riesgo que el AutoCAD se cuelgue y despus habr que cerrarcadaunodelosarchivosmanualmente. Con todo lo expuesto hasta aqu, trato de demostrar lo que se puede hacer con una herramienta sencilla como son los archivos de guion, los cuales se requieren que el usuario conozca a profundidad los comandos de AutoCAD y sus variables,lograndoasautomatizarunsinfndetareasqueresultanenhorasodasdetrabajoperdido. 5

Autor:MarcoJacinto Enero2010

AutoCADylosarchivosdeguin

Amaneradeejemplo,colocoaquotrosguionesquerealizandiversastareas. ;;;Crealoslayersconelcolorqueseespecifica _Layer_newMuro _color7Muro _newVentanas _color3Ventanas ;;;Findeguion ;;;ApagatodosloslayersexceptoellayerMuro,estableceestelayercomoelactual _Layer_SetMuro _Off* _No ;;;Findeguion Y para todos aquellos queno quierancrearel listado de archivos y modificarlo manualmente,puedenusar el programa ScriptPro (descarga aqu), tiene el problema (para m) de que cada archivo de AutoCAD abre una nueva sesin de AutoCAD volviendo lenta la ejecucin, pero esto tiene la ventaja que los archivos que no se abren o presentan un problemadurantelaejecucindelguinseenlistanalfinalizardeprocesarlosarchivos. Otra opcin bastante buena es usar este cdigo lisp que cre Kean Wamsley en su blog Through the interface, este cdigopermitecrearelscriptalvuelo,esdecirseledaunalistadearchivosyelcomandocreaunarchivoconlalistade dibujos a procesar y va eliminando los dibujos ya procesados, el nico problema es crear la lista de archivos antes de correrelprogramayestablecerloenlalistadeparmetros. Esperolainformacinlesseadeutilidadyenlaprximaentregaveremoscomocrearlasmacrosparalosbotonesdelas barrasherramientas. Saludos MarcoJacinto
Rev0.0 Enero2010

Potrebbero piacerti anche