ObjectId.GetObject(OpenMode.ForWrite) error

Hello everyone.
There is an error that occurs only in bricscad, so I ask a question

I am getting an error in the MoveCircle2 function below.
Is there a solution?

Imports Bricscad.ApplicationServices
Imports Bricscad.Runtime
Imports Bricscad.EditorInput
Imports Teigha.Runtime
Imports Teigha.DatabaseServices
Imports Teigha.Geometry

Public Class Class1
Dim acDoc As Document = Application.DocumentManager.MdiActiveDocument
Dim acCurDb As Database = acDoc.Database
Dim ed As Editor = Application.DocumentManager.MdiActiveDocument.Editor

<CommandMethod("MOVE-TEST")>
Public Sub MOVETEST()
    Dim acCirc As Circle
    acCirc = DrawCircle2(0, 0, 0.5)
    MoveCircle2(50, 50, acCirc)
End Sub

Private Function DrawCircle2(x As Double, y As Double, r As Double) As Circle
    Dim acCircD As Circle
    Using acTrans As Transaction = acCurDb.TransactionManager.StartTransaction()
        Dim acBlkTbl As BlockTable = acTrans.GetObject(acCurDb.BlockTableId, OpenMode.ForRead)
        Dim acBlkTblRec As BlockTableRecord = acTrans.GetObject(acBlkTbl(BlockTableRecord.ModelSpace), OpenMode.ForWrite)
        acCircD = New Circle
        acCircD.SetDatabaseDefaults()
        acCircD.Center = New Point3d(x, y, 0)
        acCircD.Radius = r
        acBlkTblRec.AppendEntity(acCircD)
        acTrans.AddNewlyCreatedDBObject(acCircD, True)
        Application.UpdateScreen()
        acTrans.Commit()
    End Using
    Return acCircD
End Function

Private Sub MoveCircle2(x As Double, y As Double, acCircM As Circle)
    Using acTrans As Transaction = acCurDb.TransactionManager.StartTransaction()
        Dim moveAcCirc As Circle
        moveAcCirc = acCircM.ObjectId.GetObject(OpenMode.ForWrite)   '' ////////////////  Error BricsCAD V20~
        moveAcCirc.Center = New Point3d(x, y, 0)
        moveAcCirc.Radius = 0.25
        Application.UpdateScreen()
        acTrans.Commit()
    End Using
End Sub

End Class

Comments

Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. Click one of the buttons on the top bar to get involved!