Drawing a line in VB without using Transaction Class for Autocad

I am Drawing a line using transaction class

    Public Sub CreateLine()
    Dim acDoc As Document = Application.DocumentManager.MdiActiveDocument
    Dim acCurDb As Database = acDoc.Database
    Using acTrans As Transaction = acCurDb.TransactionManager.StartTransaction()
        Dim acBlkTbl As BlockTable
        acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId, OpenMode.ForRead)
        Dim acBlkTblRec As BlockTableRecord
        acBlkTblRec = acTrans.GetObject(acBlkTbl(BlockTableRecord.ModelSpace), _
                                        OpenMode.ForWrite)
       procedure(acTrans, acBlkTblRec, 11, 3, 0, 5, 5, 0)
       acTrans.Commit()
    End Using
  End Sub
Private Sub procedure(ByVal var1 As Transaction, ByVal var2 As BlockTableRecord, ByVal                       x As Double, ByVal y As Double, ByVal z As Double, ByVal x1 As Double, ByVal y1 As Double, ByVal z1 As Double)
    Dim ac As Line = New Line(New Point3d(x, y, z), _
                                      New Point3d(x1, y1, z1))
    var2.AppendEntity(ac)
    var1.AddNewlyCreatedDBObject(ac, True)

End Sub

My task is to create line without using transaction can any one help me...

Upvotes: 0

Views: 3429

Answers (2)

Daniel Möller
Daniel Möller

Reputation: 86600

Use the Autodesk.Autocad.Interop and Autodesk.Autocad.Interop.Common references and namespaces.

Access the desired document as AcadDocument.

Dim Doc as AcadDocument 'and set it to the document you want
Doc.ModelSpace.AddLine(...parameters...)

Depending on what version of Autocad you're using, you can access the Application as AcadApplication. (And from the acadapplication instance you get Documents)

Upvotes: 0

Maxence
Maxence

Reputation: 13306

You can use the ActiveX API:

<CommandMethod("DRAWLINE")> _
Public Sub DrawLine()
    Dim acadApp As Object
    acadApp = Application.AcadApplication
    Dim startPoint(0 To 2) As Double
    Dim endPoint(0 To 2) As Double
    startPoint(0) = 1.0 : startPoint(1) = 1.0 : startPoint(2) = 0.0
    endPoint(0) = 5.0 : endPoint(1) = 5.0 : endPoint(2) = 0.0
    acadApp.ActiveDocument.ModelSpace.AddLine(startPoint, endPoint)
End Sub

Upvotes: 1

Related Questions