lisp to make different size rectangle and save them into individual files

lisp to make different size rectangle and save them into individual files

sadishpaul
Participant Participant
1,244 Views
6 Replies
Message 1 of 7

lisp to make different size rectangle and save them into individual files

sadishpaul
Participant
Participant

Dear Experts,

 

i was looking for a lisp program that can create different size rectangles from a excel list which contains the length and width of it and the main important thing is to save it into separate files with its file name as it SIZE

 

 

0 Likes
Accepted solutions (2)
1,245 Views
6 Replies
Replies (6)
Message 2 of 7

ВeekeeCZ
Consultant
Consultant
Accepted solution

How about making a SCRIPT?

Look HERE  how to make such. 

0 Likes
Message 3 of 7

dmfrazier
Advisor
Advisor

Just curious: Can you give us more information about WHY you want to (or must) do this?

0 Likes
Message 4 of 7

Kent1Cooper
Consultant
Consultant

It sounds easy enough, but post a [small] sample Excel file so we can see how the information is formatted.

Kent Cooper, AIA
0 Likes
Message 5 of 7

CodeDing
Advisor
Advisor

@sadishpaul ,

 

You wouldn't need to make a script if you can create a dynamic block to accomplish your sizing.. Then you can use -WBLOCK command to create all of your desired drawing files. You could then create a command with Lisp to more-easily (and possibly more quickly) accomplish the same thing.

 

Best,

~DD

0 Likes
Message 6 of 7

Sea-Haven
Mentor
Mentor
Accepted solution

Agree with you Kent, why not just do it all in excel and save the script file. Just copy a column paste into notepad or if serious write it as macro in excel.

 

Rectang x,y x,y save filex-y close.

 

Not sure about this but here is a excel example to create Autocad objects so a Pline or rectang then close may be possible I don't do enough in excel only enough to be dangerous.

 

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

 

 

 

Message 7 of 7

devitg
Advisor
Advisor

Hi @sadishpaul . Please upload both \: the xlsx , better if  it is  saved as CSV , so it will be easy to handle by LISP, and a sample.dwg , as you need it to be. 

0 Likes