Hallo Hollaus,
Danke schon ein mal für den Link. Hab ich trotz langem Suchen gestern Abend nicht gefunden...
Ich bekomme es jetzt hin, dass mein Block über folgenden Code eingefügt wird.
Imports Autodesk.AutoCAD.Runtime
Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.DatabaseServices
Imports Autodesk.AutoCAD.Geometry
Public Class Class5
<CommandMethod("BlockEinfügen")> _
Public Sub InsertingABlock()
Dim acCurDb As Autodesk.AutoCAD.DatabaseServices.Database
acCurDb = Application.DocumentManager.MdiActiveDocument.Database
Using acTrans As Transaction = acCurDb.TransactionManager.StartTransaction()
Dim acBlkTbl As BlockTable
acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId, OpenMode.ForRead)
Dim blkRecId As ObjectId = ObjectId.Null
If Not acBlkTbl.Has("Baumkrone") Then
Using acBlkTblRec As New BlockTableRecord
acBlkTblRec.Name = "Baumkrone"
acBlkTblRec.Origin = New Point3d(0, 0, 0)
Using newdb As New Database(True, False)
newdb.ReadDwgFile("C:\Temp\Baumkrone.dwg", FileOpenMode.OpenForReadAndAllShare, False, "")
acCurDb.Insert(Matrix3d.Displacement(New Vector3d(0, 0, 0)), newdb, True)
End Using
blkRecId = acBlkTblRec.Id
End Using
Else
blkRecId = acBlkTbl("Baumkrone")
End If
If blkRecId <> ObjectId.Null Then
Using acBlkRef As New BlockReference(New Point3d(10, 10, 10), blkRecId)
Dim acCurSpaceBlkTblRec As BlockTableRecord
acCurSpaceBlkTblRec = acTrans.GetObject(acCurDb.CurrentSpaceId, OpenMode.ForWrite)
acCurSpaceBlkTblRec.AppendEntity(acBlkRef)
acTrans.AddNewlyCreatedDBObject(acBlkRef, True)
End Using
End If
acTrans.Commit()
End Using
End Sub
End Class
Jetzt meine nächste Frage: Wie kann ich für einen Block einen Skalierungsfaktor festlegen?
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP