Hey,
Wie kan mij helpen met de het volgende probleem, ik heb vanuit een functie een array van het type Variant gevuld met Acad objecten en Attributen van blocks. Het geen waar het in eerste instantie omging was dat ik die twee type gezamkelijk in één array de Textstring uitlezen, dat is dus gelukt, maar nu wil ik de X en Y as gegevens ook uitlezen. In de watches zie ik de X en Y as gegevens netjes staan voor beide objecten in de InsertionPoint(0) gegevens.
De array is gedeclareerd als Public DataArray(0 To 200) As Variant
En waarna DataArray(i).TextString prima werkt. Maar DataArray(i).InsertionPoint(0) niet, en ik heb al meerdere opties geprobeerd met InsertionPoint. Ze staan er maar hoe kan ik ze uitlezen is dus mijn vraag?
Gr Chris
Beste Chris,
Heb je hier wat aan:
Sub SelectAttTekst()
Dim grpcode(0 To 4) As Integer
Dim datavalue(0 To 4) As Variant
Dim VarAttribuut As AcadAttributeReference
Dim ssetObj As AcadSelectionSet
On Error Resume Next
Set ssetObj = ThisDrawing.SelectionSets.Add("ss")
On Error GoTo 0
Set ssetObj = ThisDrawing.SelectionSets("ss")
ssetObj.Clear
grpcode(0) = -4: datavalue(0) = "<or"
grpcode(1) = 0: datavalue(1) = "Insert"
grpcode(2) = 0: datavalue(2) = "Text"
grpcode(3) = 0: datavalue(3) = "Mtext"
grpcode(4) = -4: datavalue(4) = "or>"
ssetObj.SelectOnScreen grpcode, datavalue
MsgBox ("Totaal aantal geselecteerde objecten: " & ssetObj.Count)
For i = 0 To ssetObj.Count - 1
Set entObj = ssetObj.Item(i)
If entObj.ObjectName = "AcDbBlockReference" Then
MsgBox ("Blok reference object gevonden: " & entObj.Name)
InsP = entObj.InsertionPoint
MsgBox "Het insertion point van het block is: " & InsP(0) & "; " & InsP(1) & "; " & InsP(2), _
vbInformation, "HofCAD Example"
If entObj.HasAttributes Then VarAttributen = entObj.GetAttributes
For j = LBound(VarAttributen) To UBound(VarAttributen)
Set VarAttribuut = VarAttributen(j)
MsgBox ("VarAttribuut " & Str(j + 1) & " van" & Str(UBound(VarAttributen) + 1) & _
" gevonden " & VarAttribuut.TagString & " met de waarde: " & VarAttribuut.TextString)
Next j
Else:
If entObj.ObjectName = "AcDbText" Then
MsgBox ("Tekst object gevonden: " & entObj.TextString)
Else:
MsgBox ("Mtekst object gevonden: " & entObj.TextString)
End If
End If
Next i
End Sub
Met vriendelijke groet, HofCAD CSI.
Hoi,
Ik heb het middels opgelost doormiddel van het volgende:
inPoint = DataArray(i).insertionPoint ' i array teller 0 - 200 en Dim inPoint As Variant
X: " & inPoint(0) & " Y is: " & inPoint(1)