Hallo
habe folgendes Problem. Hab eine A-Cad Zeichnung (Lageplan) bekommen die als z-Wert nur 0 enthält, aber alle Punkte sind Blöcke die in den Attributen die Höhe eingetragen haben. Hab mir nun aus den anderen Beiträgen ein Programm zusammengeschustert, das die Blöcke mit Attribut Höhe herausfiltert und in eine Excel-Datei schreibt. Klappt auch wunderbar, nur würd ich jetzt gern die ausgefilterte Höhe gleich als z-Koordinate des Blocks zurückschreiben. Kann eigentlich ja nicht so schwer sein, bin aber Neuling mit VBA in A-CAD.
Anbei das Listing:
Sub Ch12_Extract()
Dim Excel As Excel.Application
Dim ExcelSheet As Object
Dim ExcelWorkbook As Object
Dim rownum As Integer
Dim Header As Boolean
Dim elem As AcadEntity
Dim ip As Variant
Dim Array1 As Variant
Dim Count As Integer
' Excel starten.
Set Excel = New Excel.Application
' Erstellen einer neuen Arbeitsmappe und Suchen des aktiven Arbeitsblatts.
Set ExcelWorkbook = Excel.Workbooks.Add
Set ExcelSheet = Excel.ActiveSheet
ExcelWorkbook.SaveAs "d:\transfer\Attribute.xls"
rownum = 1
Header = False
' Modellbereich durchlaufen, um
' alle Blockreferenzen zu finden.
For Each elem In ThisDrawing.ModelSpace
With elem
' Gefundene Blockreferenz auf
' Attribute prüfen
If StrComp(.EntityName, "AcDbBlockReference", 1) = 0 Then
If .HasAttributes Then
' Attribute abrufen
Array1 = .GetAttributes
For Count = LBound(Array1) To UBound(Array1)
' ExcelSheet.Cells(rownum, Count * 2 + 4).Value = Array1(Count).TagString
' ExcelSheet.Cells(rownum, Count * 2 + 5).Value = Array1(Count).TextString
If Val(Array1(Count).TextString) > 400 And Val(Array1(Count).TextString) < 600 Then
ip = elem.InsertionPoint
With ExcelSheet
.Cells(rownum, 1) = ip(0)
.Cells(rownum, 2) = ip(1)
.Cells(rownum, 3) = ip(2)
'Der bestehende z-Wert =0
End With
ExcelSheet.Cells(rownum, 5).Value = Array1(Count).TagString
ExcelSheet.Cells(rownum, 6).Value = Array1(Count).TextString ' Mein neuer z-Wert
rownum = rownum + 1
End If
Next Count
End If
End If
End With
Next elem
Excel.Application.Quit
End Sub
------------------
Vielen Dank für die Hilfe
Markus
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP