Hallo Beginnend met een assemblage, wil ik de attributen van de onderdelen en samenstellingen in een array opslaan, zodat ik er verschillende kwaliteitscontroleprocessen op kan uitvoeren.
Ik weet het maximale aantal kolommen in mijn nomenclatuur (nb van attribut ~12), maar ik weet niet het aantal rijen aan het begin. Ik kan stuklijsten hebben van meer dan 300 regels.
Wetende dat je in het begin de afmetingen van het board moet definiëren, wat zou voor jou de beste methode zijn (snelheid, stabiliteit, enz.)?
Ik dacht eraan om alle nomenclatuur te scannen om het aantal rijen te kennen en vervolgens de grootte van de tabel te definiëren (is het mogelijk?) ... Misschien zijn er betere methoden?
Als ik het goed begrijp, wil je al je stuklijsten van een assemblage in Excel verzamelen ... Een Save Under van de gedetailleerde stuklijst van uw hoofdassemblage zal het moeten doen. En waarom moet je het aantal regels weten... het lijkt me niet nodig, als je meerdere stuklijsten hebt (ik zie niet in waarom) is het gemakkelijk om in Excel een hoeveelheid gegevens op "De volgende lege regel" te "plakken":
De VBA (excel) commando's om de coördinaten van de volgende lege regel te halen zijn: (Bijvoorbeeld):
'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
Bedankt dat je de tijd hebt genomen om me te antwoorden.
Nee, ik werk in een hoofdassemblage met subassemblages en onderdelen, met een enkele nomenclatuur van het type "tabbed list", of een macro die de assemblages kruist.
Ik wil dus de attributen opslaan in een 2-dimensionale tabel, zodat ik dan direct kan ingrijpen op de onderdelen in SW zonder via Excel te gaan.
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