TheSwamp

Code Red => AutoLISP (Vanilla / Visual) => Topic started by: dibraz0rd on April 23, 2021, 02:15:37 PM

Title: Sequence of tasks into AutoCAD command prompt
Post by: dibraz0rd on April 23, 2021, 02:15:37 PM
Hello there again!

I have 300+ lines of task sequences in AutoCAD that, when copied from Excel and pasted onto the AutoCAD' command line, draw six views automatically. The sequence is more like that:

Code: [Select]
POLYLINE
0,0
0,-45
930,-45
930,0
0,0

POLYLINE
0,1240
0,1285
930,1285
930,1240
0,1240

POLYLINE
930,0
975,0
975,1240
930,1240
930,0

POLYLINE
0,0
-45,0
-45,1240
0,1240
0,0

_ARC
_C
0,0
-45,0
0,-45

.
.
.

(keeps repeating for like 300+ lines)

Is there a way to create a VBA script that, when clicking on a button, automatically copy it and paste it onto the command prompt to draw it? If not, is there a way to "make it easier" in your point of view?

Hope someone helps :)

Thanks!
Title: Re: Sequence of tasks into AutoCAD command prompt
Post by: BIGAL on April 24, 2021, 06:14:34 AM
Excel can take control of autocad so can draw objects directly look at this excel example macro.

Code: [Select]
 
Public Sub Opendwg()
 
    Dim acadApp As Object
    Dim acadDoc As Object

 'Check if AutoCAD application is open. If is not opened create a new instance and make it visible.
    On Error Resume Next
    Set acadApp = GetObject(, "AutoCAD.Application")
    If acadApp Is Nothing Then
        Set acadApp = CreateObject("AutoCAD.Application")
        acadApp.Visible = True
    End If
 
    'Check (again) if there is an AutoCAD object.
    If acadApp Is Nothing Then
        MsgBox "Sorry, it was impossible to start AutoCAD!", vbCritical, "AutoCAD Error"
        Exit Sub
    End If
    On Error GoTo 0
 
    'If there is no active drawing create a new one.
    On Error Resume Next
    Set acadDoc = acadApp.ActiveDocument
    If acadDoc Is Nothing Then
        Set acadDoc = acadApp.Documents.Add
    End If
    On Error GoTo 0
 
    'Check if the active space is paper space and change it to model space.
    If acadDoc.ActiveSpace = 0 Then '0 = acPaperSpace in early binding
        acadDoc.ActiveSpace = 1     '1 = acModelSpace in early binding
    End If

 End Sub
 
Public Sub addline(x1, y1, z1, x2, y2, z2)
 
 ' Create the line in model space
    'Dim acadApp As Object
    'Dim acadDoc As Object
    Set acadApp = GetObject(, "AutoCAD.Application")
    Set acadDoc = acadApp.ActiveDocument

    Dim startpoint(0 To 2) As Double
    Dim endpoint(0 To 2) As Double
    Dim lineobj As Object

    startpoint(0) = x1: startpoint(1) = y1: startpoint(2) = z1
    endpoint(0) = x2: endpoint(1) = y2: endpoint(2) = z2

    Set lineobj = acadDoc.ModelSpace.addline(startpoint, endpoint)
    acadApp.ZoomExtents
   
    End Sub
    Public Sub addcirc(x1, y1, z1, rad)
 
 ' Create the circle in model space
   ' Dim acadApp As Object
   ' Dim acadDoc As Object
    Set acadApp = GetObject(, "AutoCAD.Application")
    Set acadDoc = acadApp.ActiveDocument

    Dim cenpoint(0 To 2) As Double
   
    Dim circobj As Object

   cenpoint(0) = x1: cenpoint(1) = y1: cenpoint(2) = z1
    Set circobj = acadDoc.ModelSpace.addcircle(cenpoint, rad)
    acadApp.ZoomExtents
   
    End Sub
   
   
    Sub addpoly(cords, col)
   
    ' Dim acadApp As Object
    ' Dim acadDoc As Object
    Set acadApp = GetObject(, "AutoCAD.Application")
    Set acadDoc = acadApp.ActiveDocument

    Dim oPline As Object
   
' add pline to Modelspace
Set oPline = acadDoc.ModelSpace.AddLightWeightPolyline(cords)
oPline.Color = col

End Sub
   
    Sub alan1()
   
   
' This example adds a line in model space
' Define the start and end points for the line
   
    px1 = 1
    px2 = 5
    py1 = 1
    py2 = 5
    pz1 = 0
    pz2 = 0
   

Call addline(px1, py1, pz1, px2, py2, pz2)

End Sub

 Sub alan2()
 
    px1 = 1
    py1 = 1
    pz1 = 0
    Radius = 8.5
 
 Call addcirc(px1, py1, pz1, Radius)

 End Sub
 
 Sub alan3()
 'Dim coords(0 To n) As Double
 Dim coords(0 To 5) As Double
 coords(0) = -6: coords(1) = 1:
 coords(2) = 3: coords(3) = 5:
 coords(4) = 7.55: coords(5) = 6.25:
 
 col = 1
   
 Call addpoly(coords, col)

 End Sub


Title: Re: Sequence of tasks into AutoCAD command prompt
Post by: ribarm on April 24, 2021, 06:23:23 AM
To me, this looks like a script (*.scr) file... Just save it as *.scr and run "SCRIPT" command and provide created *.scr file...
Title: Re: Sequence of tasks into AutoCAD command prompt
Post by: DEVITG on April 26, 2021, 07:32:16 PM
some like this SCR


 command is PLINE , not POLYLINE



Code: [Select]
PLINE
0,0
0,-45
930,-45
930,0
0,0

PLINE
0,1240
0,1285
930,1285
930,1240
0,1240

PLINE
930,0
975,0
975,1240
930,1240
930,0

PLINE
0,0
-45,0
-45,1240
0,1240
0,0



it give





Title: Re: Sequence of tasks into AutoCAD command prompt
Post by: DEVITG on April 26, 2021, 07:33:18 PM
the SCR file