Hallo Forum,
zur Zeit sitze ich an einem Makro, welches ich in Excel 2003 ausführe. Es sollen die Daten für Kreise an Autocad 2004 übergeben gezeichnet und mit Solid gefüllt werden. Das Öffnen der Zeichnung und das Erstellen der Kreise klappt schon super, aber das Füllen der Kreise schafft mich.
Nun bin ich in der VBA Sprache Neuling und probiere mehr aus als dass ich gezielt vorgehe. Wollte mir entsprechende Literatur besorgen. Das gestaltet sich etwas schwierig, da in den großen Buchhandlungen nur noch ein Buch über VBA in AutoCad erhältlich ist (dieses hab ich mir schon in ner Bibo besorgt).
Mein Makro sieht wie folgt aus:
Sub x()
Dim I As Integer
Dim kx As Double
Dim ky As Double
Dim r As Double
Dim AcadApp As Object
Dim centerPoint(0 To 2) As Double
Dim radius As Double
‘Dim hatchObj As AcadHatch
‘Dim outerLoop(0 To 0) As AcadEntity
‘Dim patternName As String
‘Dim PatternType As Long
‘Dim bAssociativity As Boolean
‘patternName = "Solid"
‘PatternType = 0
‘bAssociativity = True
Set AcadApp = CreateObject("autocad.application")
AcadApp.Visible = -1
For I = 8 To 508
kx = Range("AG" & I) 'X-Koordinate vom Kreismittelpunkt
ky = Range("AH" & I) 'Y-Koordinate vom Kreismittelpunkt
r = Range("AI" & I) 'Radius vom Kreis
centerPoint(0) = kx: centerPoint(1) = ky: centerPoint(2) = 0#
radius = r
AcadApp.ActiveDocument.ModelSpace.Addcircle centerPoint, radius
‘Set outerLoop(0) = AcadApp.ActiveDokument.ModelSpace.Addcircle(centerPoint, radius)
‘Set hatchObj(0) = AcadApp.ActiveDocument.ModelSpace.AddHatch(patternName, PatternType, bAssociativity)
‘hatchObj.Evaluate
‘ThisDrawing.Regen True
Next I
AcadApp.ZoomExtents
End Sub
Die in Kommentarzeichen stehenden Zeilen waren mein kläglicher Versuch die Kreisflächen zu füllen. Das funktioniert nicht so richtig. Wie kann ich die Schraffur dem Kreis anhängen?
Ich möchte danach die Fläche rasterweise abtasten und überprüfen ob jeder Rasterpunkt auch mit Solid gefüllt ist. Geht das mit GetXData der Punkte und mit welchem Zahlencode? Und wie spreche ich jeden der Rasterpunkte aus einer Schleife an?
Vielen Dank für die Hilfe
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP