Спасибо. Принцип понял. АКАД выдает фатал ерор... Как вылечить?
кусок кода
Dim pner = acEd.GetNestedEntity(pneo)
Using acTrans As Transaction = acDb.TransactionManager.StartTransaction()
Dim acBlkTbl As BlockTable
acBlkTbl = CType(acTrans.GetObject(acDb.BlockTableId, OpenMode.ForRead), BlockTable)
Dim acBlkTblRec As BlockTableRecord
acBlkTblRec = CType(acTrans.GetObject(acBlkTbl(BlockTableRecord.ModelSpace), OpenMode.ForWrite), BlockTableRecord)
Dim blkpoly As Autodesk.AutoCAD.DatabaseServices.Polyline = DirectCast(acTrans.GetObject(pner.ObjectId, OpenMode.ForRead), Autodesk.AutoCAD.DatabaseServices.Polyline)
Dim blk As BlockReference = TryCast(acTrans.GetObject(blkpoly.OwnerId, OpenMode.ForRead), BlockReference)
Dim SelectedPoly As Autodesk.AutoCAD.DatabaseServices.Polyline = DirectCast(blkpoly.Clone(), Autodesk.AutoCAD.DatabaseServices.Polyline)
SelectedPoly.SetDatabaseDefaults()
acBlkTblRec.AppendEntity(SelectedPoly)
acTrans.AddNewlyCreatedDBObject(SelectedPoly, True)
Dim scaleX As Double = blk.ScaleFactors(0)
Dim scaleY As Double = blk.ScaleFactors(1)
Dim coeffs As Double() = New Double() {scaleX, 0, 0, 0, 0, scaleY, _
0, 0, 0, 0, 1, 0, _
0, 0, 0, 1}
Dim scaleMatrix As New Matrix3d(coeffs)
SelectedPoly.TransformBy(scaleMatrix)
acTrans.Commit()
End Using