kann leider nicht in meinen letzten Beitrag reinschreiben. Warum ? Deshalb hier ein neuer Beitrag der sich auf den letzten bezieht.
habe es nun geschafft mit dem Block einfügen, habe nur noch ein kleines Problem. Wie setze ich den eingefügten Block in den Ursprung ?
Hier mal das Codeschnippsel
insertionPoint(0) = x : insertionPoint(1) = y : insertionPoint(2) = 0
Dim doc As Document = acadApp.DocumentManager.MdiActiveDocument
Dim ed As Editor = doc.Editor
Dim tr As Transaction = doc.TransactionManager.StartTransaction
Try
Dim dwgName As String = HostApplicationServices.Current.FindFile(Comp, acadApp.DocumentManager.MdiActiveDocument.Database, FindFileHint.Default)
Dim db As Database = New Database(False, False)
db.ReadDwgFile(dwgName, IO.FileShare.Read, True, "")
Dim NewBlkId As ObjectId
NewBlkId = doc.Database.Insert(dwgName, db, False)
Dim bt As BlockTable = tr.GetObject(doc.Database.BlockTableId, OpenMode.ForRead, True)
Dim btr As BlockTableRecord = tr.GetObject(bt(BlockTableRecord.ModelSpace), OpenMode.ForWrite, True)
Dim bref As BlockReference = New BlockReference(New Point3d(insertionPoint), NewBlkId)
btr.AppendEntity(bref)
tr.AddNewlyCreatedDBObject(bref, True)
If (smash = 1) Then
'---------------------------------------------------------------------
'hier sollte der Block in den Ursprung gesetzt werden
'---------------------------------------------------------------------
End If
tr.Commit()
Catch ex As Exception
ed.WriteMessage(ex.ToString)
End Try
Hoffe irgendjemand weiss wie das funktioniert :-)
Gruss Ernst
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP