Hallo zusammen,
ich hab mal wieder ein Problem:
Ich habe eine Abfrage geschrieben, in der überprüft wird, ob in einer Baugruppe Virtuelle komponenten vorhanden sind. Dies gescheiht über die AssemblyDoc.GetComponents(topLevelOnly) abfrage. Hier erhält man ein schönes Variant mit lauter Objekten, die in der Baugruppe vorkommen.
Diese Objekte prüfe ich eins nach dem Anderen mit dem .isVirtual Befehl, jedes mal, wenn eine virtuelle Komponente auftaucht soll die nun in ein Array geschrieben werden, um später auf sie zuzugreifen.
Die Namen der Komponenten abspeichern klappt ohne Probleme... nur will mir das Progrämmchen verweigern die Objekte in ein Variant zu speichern 
Code:
Dim virtarr() As Variant
Dim virtCount As Integer
Dim ObjArr() As Variant
Sub Main()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swAssy As SldWorks.AssemblyDoc
Dim swComp As SldWorks.Component2
Dim swCompArr As Variant
Dim virtstat As Boolean
Set swApp = Application.SldWorks
Set swModel = swApp.GetFirstDocument
virtCount = 0
ReDim virtarr(virtCount)
Do While Not swModel Is Nothing
If Not swModel.GetType() = swDocASSEMBLY Then
'hier könnte Ihre Aufgabe stehen ...
Else
Dim count As Long
Dim i As Integer
i = 0
Set swAssy = swModel
swCompArr = swAssy.GetComponents(True)
count = swAssy.GetComponentCount(True)
Do While Not i = count
If Not IsEmpty(swCompArr) Then
Set swComp = swCompArr(i)
If Not IsEmpty(swComp) Then
virtstat = swComp.IsVirtual
If virtstat Then
virt = swCompArr(i).Name2()
virtCount = virtCount + 1
ReDim Preserve virtarr(virtCount)
ReDim Preserve ObjArr(virtCount)
virtarr(virtCount - 1) = virt
ObjArr(virtCount - 1) = swCompArr(i)
End If
End If
i = i + 1
End If
Loop
End If
Set swModel = swModel.GetNext
Loop
Fehlermeldung ist "Objekt oder Withblockvariable nicht festgelegt...": "ObjArr(virtCount - 1) = swCompArr(i)"
Aber warum kann ich denn keinen Variant - Eintrag in ein anderes Variant schreiben?
Gruß
Alex
[Diese Nachricht wurde von oeNkraD am 02. Dez. 2010 editiert.]
[Diese Nachricht wurde von oeNkraD am 02. Dez. 2010 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP