En esta ocasión les mostraremos como dibujar círculos a través de una macro en Excel. Para ello debes tener listo tu libro de Excel con el código para definir el punto base en AutoCAD donde quieres que la macro se ejecute. 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:
AddCircle(Center, Radius As Double)
-
Ahora debes dimensionar la variable con las tres coordenadas de los puntos donde se va a colocar el bloque, para este ejemplo:
Dim CIRREF(0 To 2) As Double
-
Center. Partiendo del punto (x,y), debes sumar o restar para ubicar el punto base de tu bloque. Para este ejemplo:
CIRREF(0) = x: CIRREF(1) = y
-
Radius As Double. El radio del círculo puedes colocarlo de dos maneras; una forma es colocar el valor directamente en el código, y la otra es tomando el valor de alguna celda de Excel. Para este ejemplo:
50
-
Ahora aplicamos la función con los parámetros obtenidos. También se debe colocar el layer a utilizar para dibujar el círculo. Para este ejemplo:
Set CREF = AutoCAD.Application.ActiveDocument.ModelSpace.AddCircle(CIRREF, 50)
CREF.Layer = "2"Si requieres hacer una hilera de círculos ya sea de manera horizontal o vertical debes seguir los siguientes pasos (se usará el ciclo for con la variable i):
-
Se debe crear una linea con el ciclo for, donde se evaluarán los círculos de 1 a n. Para este ejemplo:
n= 6
For i=1 to n -
Se deben definir las ubicaciones de todos los círculos - dentro del For. Se usará la separación que habrá entre los círculos de centro a centro. Para este ejemplo:
Cuando se quieren los círculos de manera horizontal:
CIRREF(0) = x + 100 * i: CIRREF(1) = y
Cuando se quieren los círculos de manera vertical:
CIRREF(0) = x: CIRREF(1) = y + 100 * i
-
Ahora aplicamos la función con los parámetros obtenidos - dentro del For. También se debe colocar el layer a utilizar para dibujar el círculo. Para este ejemplo:
Set CREF = AutoCAD.Application.ActiveDocument.ModelSpace.AddCircle(CIRREF, 50)
CREF.Layer = "2" -
Cerramos el For con: Next i
n= 6
For i=1 to nCIRREF(0) = x + 100 * i: CIRREF(1) = y
Set CREF = AutoCAD.Application.ActiveDocument.ModelSpace.AddCircle(CIRREF, 50)
CREF.Layer = "2"Next i
Notas:
Recuerda que los valores usados dependerán de la escala que manejes es tu espacio de trabajo de AutoCAD así como la escala de tus cotas.
Si tu hoja de calculo tendrá celdas con información de la separación de los círculos, número de círculos y el radio, entonces podrás referenciar a esas celdas. Por lo que el código para este ejemplo queda de la siguiente manera:
For i = 1 To Range("I6").Value
CIRREF(0) = x + Range("I2").Value * i: CIRREF(1) = y
Set CREF = AutoCAD.Application.ActiveDocument.ModelSpace.AddCircle(CIRREF, Range("I5").Value)
CREF.Layer = "2"
Next i
En el siguiente video se muestra este procedimiento.
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.