How to Draw Polyline in Autocad Using Excel

Draw A Polyline In AutoCAD Using Excel


Introduction


A friend of mine, a surveying engineer, asked me recently if it is possible to draw a polyline in AutoCAD using coordinates from an Excel file. He had a large Excel file with point coordinates (x, y), and he wanted to connect them through a polyline to create a 2D profile. I manage to fulfill his request by using a lightweight polyline, a 2D line consisting of straight and arched segments.

I thought that the interaction between Excel and AutoCAD using VBA might be useful for all types of engineers using AutoCAD (primarily civil and surveying engineers), so I decided to post the VBA code here. Although the example is quite simple, it illustrates the general idea of using VBA from Excel to draw objects in AutoCAD.


VBA code to draw a polyline in AutoCAD using early binding


            Option Explicit Option Private Module  Sub DrawPolyline()      'Draws a polyline in AutoCAD using X and Y coordinates from sheet Coordinates.              'By Christos Samaras     'http://www.myengineeringworld.net          'In order to use the macro you must enable the AutoCAD library from VBA editor:     'Go to Tools -> References -> Autocad 1234 Type Library, where 1234 depends     'on your AutoCAD version (i.e. 2010, 2011, 2012, etc.) you have installed on your PC.              'Declaring the necessary variables.     Dim acadApp As AcadApplication     Dim acadDoc As AcadDocument     Dim LastRow As Long     Dim acadPol As AcadLWPolyline     Dim dblCoordinates() As Double     Dim i As Long     Dim j As Long     Dim k As Long          shCoordinates.Activate          'Find the last row.     With shCoordinates         LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row     End With              'Check if there are at least two points.     If LastRow < 3 Then         MsgBox "There not enough points to draw the polyline!", vbCritical, "Points Erro"         Exit Sub     End If              'Check if AutoCAD is open.     On Error Resume Next     Set acadApp = GetObject(, "AutoCAD.Application")     On Error GoTo 0          'If AutoCAD is not opened create a new instance and make it visible.     If acadApp Is Nothing Then         Set acadApp = New AcadApplication         acadApp.Visible = True     End If          'Check if there is an active drawing.     On Error Resume Next     Set acadDoc = acadApp.ActiveDocument     On Error GoTo 0          'No active drawing found. Create a new one.     If acadDoc Is Nothing Then         Set acadDoc = acadApp.Documents.Add         acadApp.Visible = True     End If          'Get the array size.     ReDim dblCoordinates(2 * (LastRow - 1) - 1)          'Pass the coordinates to array.     k = 0     For i = 2 To LastRow         For j = 1 To 2             dblCoordinates(k) = shCoordinates.Cells(i, j)             k = k + 1         Next j     Next i          'Draw the polyline either at model space or at paper space.     If acadDoc.ActiveSpace = acModelSpace Then         Set acadPol = acadDoc.ModelSpace.AddLightWeightPolyline(dblCoordinates)     Else         Set acadPol = acadDoc.PaperSpace.AddLightWeightPolyline(dblCoordinates)     End If          'Leave the polyline open (the last point is not connected with the first point.     'Set the next line to true if you need to connect the last point with the first one.     acadPol.Closed = False     acadPol.Update          'Zooming in to the drawing area.     acadApp.ZoomExtents          'Inform the user that the polyline was created.     MsgBox "The polyline was successfully created!", vbInformation, "Finished"  End Sub  Sub ClearCoordinates()          Dim LastRow As Long          shCoordinates.Activate          'Find the last row.     With shCoordinates         LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row         .Range("A2:B" & LastRow).ClearContents         .Range("A2").Select     End With      End Sub                      

Demonstration video


The short video below demonstrates the results of the above VBA code.


Note


If you try to use the above VBA code and get the following error "Compile error: User-defined type not defined" (see figure below), the first thing you should do is to check if the AutoCAD reference in the VBA editor is enabled. So, go to Tools => References => and enable Autocad 1234 Type Library, where 1234 depends on your AutoCAD version (i.e., 2010, 2011, 2012, etc.) you have installed on your computer.

VBA Compile Error

If you have AutoCAD 2010 or newer, you will need to download the VBA module from Autodesk since from 2010, VBA is not installed with AutoCAD.


Downloads


Download

The above code was successfully tested in Excel and AutoCAD 2010. However, it should also work in other Excel/AutoCAD versions.


Read also


Draw A 3D Polyline (Pipe-Like) In AutoCAD Using Excel & VBA
AutoCAD VBA Add-In: Calculate Polylines Length & Area
Drawing Circles In AutoCAD Using Excel & VBA
Add Text In AutoCAD Using Excel & VBA
Drawing Points In AutoCAD Using Excel & VBA

Page last modified: December 21, 2021

Hi, I am Christos, a Mechanical Engineer by profession (Ph.D.) and a Software Developer by obsession (10+ years of experience)! I founded this site back in 2011 intending to provide solutions to various engineering and programming problems.

Add Content Block

petersuniagard.blogspot.com

Source: https://myengineeringworld.net/2013/04/draw-polyline-in-autocad-using-excel-vba.html

0 Response to "How to Draw Polyline in Autocad Using Excel"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel