Hallo Ausgehend von einer Baugruppe möchte ich die Attribute der Teile und Baugruppen in einem Array speichern, damit ich verschiedene Qualitätskontrollprozesse daran durchführen kann.
Ich kenne die maximale Anzahl von Spalten in meiner Nomenklatur (Anzahl des Attributs ~12), aber ich kenne die Anzahl der Zeilen am Anfang nicht. Ich kann Stücklisten von mehr als 300 Zeilen haben.
Da du weißt, dass du zu Beginn die Abmessungen des Boards festlegen musst, was wäre dann die beste Methode für dich (Geschwindigkeit, Stabilität, etc.)?
Ich dachte daran, die gesamte Nomenklatur zu scannen, um die Anzahl der Zeilen zu kennen, und dann die Größe der Tabelle zu definieren (ist das möglich?) ... Vielleicht gibt es bessere Methoden?
Wenn ich das richtig verstehe, möchten Sie alle Ihre Stücklisten aus einer Baugruppe in Excel kumulieren ... Ein Speichern unter der detaillierten Stückliste Ihrer Hauptbaugruppe muss den Zweck erfüllen. Und warum müssen Sie die Anzahl der Zeilen kennen... Es scheint mir nicht notwendig zu sein, wenn Sie mehrere BOMs haben (ich verstehe nicht warum), ist es in Excel einfach, eine Datenmenge in "Die nächste leere Zeile" "einzufügen":
Die VBA-Befehle (Excel) zum Abrufen der Koordinaten aus der nächsten Leerzeile sind: (Zum Beispiel):
'Retourne sur " derligne " le numéro de la prochaine ligne non vide (CTRL+ flèche bas)
derligne = Range("C1").End(xlDown).Row
derligne = Sheets("DATA").Range("E1048576").End(xlUp).Row
'Retourne sur " derligne " le numéro de DERNIERE ligne non vide
'Compte le nombre de lignes jusqu’à la dernière vide de la colonne
derligne = range("A" & rows.count).end(xlup).row
Vielen Dank, dass Sie sich die Zeit genommen haben, mir zu antworten.
Nein, ich arbeite in einer Hauptbaugruppe mit Unterbaugruppen und Teilen, mit einer einzigen Nomenklatur vom Typ "Registerkartenliste" oder einem Makro, das die Baugruppen kreuzt.
Ich möchte also die Attribute in einer 2-dimensionalen Tabelle hinterlegen, um dann direkt an den Teilen in SW eingreifen zu können, ohne über Excel zu gehen.
Dim swView As SldWorks.View
Dim swTable As SldWorks.TableAnnotation
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swDraw As SldWorks.DrawingDoc
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swDraw = swModel
Set swView = swDraw.GetFirstView
Do While Not swView Is Nothing
' Show the name of the view
' Debug.Print " " & swView.Name
' Get the first table annotation for this view
Set swTable = swView.GetFirstTableAnnotation
Do While Not swTable Is Nothing
ProcessTable swApp, swModel, swTable
' Get next table annotation for this view
Set swTable = swTable.GetNext
Loop
' Get the next view
Set swView = swView.GetNextView
Loop
Set swAnn = swTable.GetAnnotation
nNumCol = swTable.ColumnCount
nNumRow = swTable.RowCount