Werte CAD-Gemeinde,
anbei eine Schleife über die Stückliste, dies hat soweit immer ganz gut funktioniert.
Nun habe ich eine Zeichnung mit folgendem Phänomen:
Die Schleife wir mit einem Fehler beendet: "Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt"
-> Wenn ich das Teil an dem es hängt einmal manuell öffne und wieder schließe, dann läuft die Schleife bis zum nächsten Teil und wirft wieder einen Fehler.
-> mache ich das mit allen Teilen einmal, so läuft alles wieder wie es soll. Da mir diese Lösung nicht als "Lösung" erschien, dachte ich er könne dies doch selber machen. Dann scheitert es am nächsten Punkt.
Die fehlenden "SET" Anweisungen sind dem VB.Net geschuldet.
'Schleife über alle Teile
For j = 0 To swTable.RowCount - 1
'Plugin Ladebildschirm
vPtArr = swBOMTableAnn.GetComponents(j)
If vPtArr IsNot Nothing Then
For i = 0 To UBound(vPtArr)
pt = vPtArr(i)
swComp = pt
If swComp IsNot Nothing Then
MsgBox("Component Name: " & swComp.Name2 & vbCrLf & "Configuration Name: " & swComp.ReferencedConfiguration & vbCrLf & "Item-Nr.: " & swTable.Text(j, PosColumn) & vbCrLf & "Menge: " & swTable.Text(j, QtyColumn) & vbCrLf & "-----------------")
swRefModel = swComp.GetModelDoc
'-------------DIESER TEIL WURDE ZUM FIXEN HINZUGEFÜGT----------------------------------------
swRefModel.GetPathName() '<--Fehler
Dim nDocType As Long
' Determine type of SOLIDWORKS file based on file extension
If InStr(LCase(swRefModel.GetPathName()), "sldprt") > 0 Then
nDocType = swDocPART
ElseIf InStr(LCase(swRefModel.GetPathName()), "sldasm") > 0 Then
nDocType = swDocASSEMBLY
Else
MsgBox("Eine Feher ist aufgetreten")
Exit Sub
End If
Dim tmpModel As ModelDoc2
Dim nErrors&, nWarnings&
tmpModel = swApp.OpenDoc6(swRefModel.GetPathName(), nDocType, swOpenDocOptions_e.swOpenDocOptions_Silent, "", nErrors, nWarnings)
tmpModel.Save()
swApp.CloseDoc(tmpModel.GetTitle)
'----------------------------------------------------------------------------------------------------
swCustPropMgr = swRefModel.Extension.CustomPropertyManager(swComp.ReferencedConfiguration) '<--- Fehler
'DO SOMETHING WITH PROPERTIES
Else
Debug.Print("Could not get component.")
End If
Next i
End If
Next j
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP