Code:
Imports Autodesk.AutoCAD.Interop
Imports Autodesk.AutoCAD.Interop.CommonPublic Class frmTest
Private Sub btnTest_Click(sender As Object, e As EventArgs) Handles btnTest.Click
Dim AcadApp As AcadApplication = CreateObject("AutoCad.Application")
'warten, bis AutoCAD läuft (neues Zeichnung kann beendet werden)
On Error Resume Next
Do
Err.Number = 0
AcadApp.ActiveDocument.Close()
Loop Until Err.Number = 0
On Error GoTo 0
'AutoCAD sichtbar machen
AcadApp.Visible = True
'DWG öffnen
AcadApp.Documents.Open("H:\aktuell\CAD\Test.dwg")
'ModelSpace nach Blockreferenzen im bestimmten Layer mit Attributen suchen
Dim obj As AcadObject
Dim attrib
Dim Punkt(2) As Double
Dim a As Double
For Each obj In AcadApp.ActiveDocument.ModelSpace
If obj.ObjectName = "AcDbBlockReference" And obj.Layer = "456eGERA" Then
If obj.HasAttributes Then
attrib = obj.GetAttributes
a = attrib(0).InsertionPoint(0)
Punkt(0) = attrib(0).InsertionPoint(0) + 1000
Punkt(1) = attrib(0).InsertionPoint(1)
Punkt(2) = attrib(0).InsertionPoint(2)
attrib(0).InsertionPoint = Punkt
MsgBox("alter Wert: " & a & vbCrLf & "neuer Wert:" & attrib(0).InsertionPoint(0))
Exit For
End If
End If
Next
'aktuelles Dokument schließen
AcadApp.ActiveDocument.Close()
'AutoCAD beenden
AcadApp.Quit()
End Sub
End Class