Ya probaron explorar Autodesk Revit? Revit además de modelar en 3D puede generar automáticamente los planos constructivos que típicamente hacen en AutoCAD, y además puede usarse para presupuestar las edificaciones que diseñan!

Si vieron el video de como convertir de PDF a DWG, habrán notado que se utiliza un script para crear layers y layer states. Muchos han pedido el script, por lo que se los comparto acá. Lo que tienen que hacer es crear un archivo con extensión .SCR en su directorio preferido, usando notepad (por ejemplo), e insertar los siguientes comandos:

;;;
;;; Script para crear capas y escalar dibujo
;;;
;;;
-layer make Azul
-layer make Verde
-layer make Rojo
-layer make Amarillo
-layer make Savemyass
-layer make Gris1
-layer make Gris2
-layer make Gris3
-layer make Gris4
-layer make Hatch
-layer set 0
-layer OFF *
Yes
ON Savemyass
(prompt "Guardando layerstate SAVEMYASSn")
(layerstate-save "SaveMyAss" 1 nil)
-layer ON *
(prompt "Guardando layerstate ALLONn")
(layerstate-save "AllOn" 1 nil)
-layer OFF *
Yes
(prompt "Guardando layerstate ALLOFFn")
(layerstate-save "AllOff" 1 nil)
(layerstate-restore "AllOn" nil)
-layer OFF Hatch
(layerstate-save "HatchOff" 1 nil)
(layerstate-restore "AllOn" nil)
scale all
0,0 ref

Tienen que insertar los comandos con todos los caracteres que se muestran, pongan especial atención a los guiones del inicio de los comandos layer y a los punto y coma en las primeras tres líneas. Al copiar los comandos, no inserten líneas en blanco, ya que generarán errores al correr el script.
Luego hacen como en el video: escriben SCR en AutoCAD, seleccionan el archivo que crearon, y lo ejecutan.
Qué hace el script, para los curiosos?
  • Las primeras tres líneas no hacen nada, son comentarios.
  • El comando -layer lo que hace es crear y manipular capas. Se le pone el guión al inicio para que no esté desplegando prompts. Los prompts hacen que no funcione correctamente el script, por lo que el guión los elimina. El guión es algo que existe en el caso del comando layer, en otros comandos de CAD no necesariamente sirve.
  • Los comandos entre paréntesis son comandos formato LISP. Los scripts de AutoCAD pueden contener comandos ordinarios (como los renglones de layer) o pueden contener comandos LISP, que son un formato que se acerca un poco más a los lenguajes de programación comunes tipo C++ o VB. Principalmente uso LISP para manipular los layerstate, dado que el comando layerstate no es fácil de usar en formato de comando ordinario.
  • Los layerstate lo que hacen es que apagan todas las capas, y van encendiendo las que corresponden a cada layerstate que voy a crear. 
  • Finalmente los últimos dos renglones hacen el comando SCALE/REF. Eligen como punto base el origen (0,0). Ahí termina el script porque es donde el usuario especifica las medidas de referencia.
 
Para los que quieran aprender un poco más acerca de AutoLISP, pueden revisar este tutorial.
 
Y eso es todo el script. Me imagino que muchos encontrarán otras formas de optimizar y mejorar el código. En mi caso, no requiero mucho más que esas funciones que muestro arriba, por lo que el script a como está me funciona bien.
 
De paso, si les interesa aprender AutoCAD, o conocen a alguien que ocupe aprender rápidamente, aquí pueden encontrar nuestro tutorial de AutoCAD en 15 minutos. O si ni siquiera tienen AutoCAD, aquí hay un tutorial de como obtener una copia gratuita para aprendizaje. Echenles un vistazo!
 
Script para crear layers en AutoCAD automáticamente
Leer  Como usar el comando SKETCH en AutoCAD para dibujar curvas de nivel
Etiquetado en:        

Un pensamiento en “Script para crear layers en AutoCAD automáticamente

  • 05/03/2016 a las 01:06
    Enlace permanente

    Creo que es una herramienta muy útil, pues programas como el civil 3d, que estan soportados en una estructura de capas grande, se vuelven inconsistentes si estas no funcionan adecuadamente, y por esto se debe organizarlas adecuadamente, voy a probarlo y utilizarlo para solucionar este tipo de conflictos en civil 3d, muchas gracias.

    Responder

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *