Veremos como colocar uno o varios HATCH en nuestros proyectos de AutoCAD a través de EXCEL con la ayuda de macros. Si no lo recuerdas o no sabes cómo hacerlo ve al artículo Macro para iniciar un dibujo en AutoCAD.
-
Abre Excel y ten preparado el editor de Visual Basic.
-
La función que permite AutoCAD para realizar esto es la siguiente:
AddHatch(PatternType As Long, PatternName As String,Associativity As Boolean)
-
Ahora debes dimensionar una variable o las necesarias para que estos sean los contornos que mantendrán el HATCH, para este ejemplo:
Dim CREF(0 to 0) As AcadEntity
Para poder explicar esto necesitamos crear una figura que va a contener el HACTH. En este ejemplo usaremos un círculo. Si no recuerdas como hacer un círculo en AutoCAD a través de macros, puedes primero leer el artículo: Macro Excel para dibujar en AutoCAD - Círculos
-
PatternType As Long. En AutoCAD debemos conocer que tipo de Pattern vamos a usar, si estos serán los predefinidos por el programa o unos creados por el usuario. Cuando son los predefinidos del programa, tenemos dos opciones de colocar este parámetro: 1 o acHatchPatternTypePreDefined.
-
PatternName As String. En AutoCAD debemos conocer nombre del Pattern o patrón de los predefinidos que vamos a usar. En este ejemplo usaremos: "SOLID"
-
Associativity As Boolean. Es un parámetro que nos permite indicar que el HATCH será o no asociativo, lo que significa que cuando realicemos algún cambio al contorno el HATCH se ajustará al contorno. Por lo que para este ejemplo lo dejaremos como True, es decir que si sea asociativo.
Es importante saber que el dejar que sea un HATCH asociativo puede disminuir el rendimiento de tu proyecto (la máquina podría alentarse si usas mucho HATCH). Si este esta lleno de HACTH y si nunca cambiaran los objetos, lo recomendable es dejarlo como False
-
Ya tenemos lista nuestra linea para colocar el HATCH, sin embargo, debemos indicar ahora a que objeto u objetos les colocaremos el HATCH. Para ello esta linea debe estar antes de crear el objeto y después de crearlo se colocarán las propiedades del HATCH que deseemos configurar.
Dim CREF(0 to 0) As AcadEntity
For i = 1 To Range("I6").Value
Set SolidoVar = AutoCAD.Application.ActiveDocument.ModelSpace.AddHatch(1,"SOLID", True)
CIRREF(0) = x + Range("I2").Value * i: CIRREF(1) = y
Set CREF (0) = AutoCAD.Application.ActiveDocument.ModelSpace.AddCircle(CIRREF, Range("I5").Value)
CREF(0).Layer = "2"
SolidoVar.AppendOuterLoop (CREF)
SolidoVar.Evaluate
SolidoVar.Layer = "Varilla"
Next i
Notas:
El parámetro .AppendOuterLoop (Variable) es el que nos permite identificar en AutoCAD el limite de la figura o bien la forma en la que queremos que tome como limite el HATCH. Existe otro parámetro llamado .AppendInnerLoop (Variable) que nos permite indicar cual sería el limite de un AcadEntity en caso de que este sea un objeto interno al cual no queremos que se le aplique el HATCH.
Recuerda que existen más parámetros que pueden modificar al HACTH y que dependen del patrón que uses, como por ejemplo: Si usas "ANSI31", podrías modificar la escala, la transparencia, el ángulo de las lineas. Por lo que podría quedar de la siguiente manera:
SolidoVar.AppendOuterLoop (CREF)
SolidoVar.Evaluate
SolidoVar.PatternScale = 50
SolidoVar.PatternAngle = 10*3.1416/180
SolidoVar.EntityTransparency = 50
SolidoVar.Layer = "Varilla"
Recuerda que puedes referenciar todos los valores de los parámetros a las celdas de Excel.
En el siguiente video podrás encontrar este procedimiento y un ejemplo con una polilinea en forma de rectángulo.
Si deseas descargar los archivos usados en este video, por favor ve al artículo de descargas que te permitirá descargar este material. Ayúdanos compartiendo o dejándonos un comentario sobre lo que te ha parecido esta macro.