J'ai réussi à extraire les repères de soudures mais j'aimerais savoir comment on fait pour avoir les repéres de soudures de la feuille active et du calque actif ?
voici mon code
- Code: Tout sélectionner
Dim i = 0
Dim j = 0
Dim k = 0
swApp = GetObject(, "SldWorks.Application")
If swApp Is Nothing Then
MessageBox.Show("Veuillez ouvrir Solidworks avec le fichier qui contient les soudures")
Exit Sub
End If
swModel = swApp.ActiveDoc
swDwg = swModel
swDwg.ClearSelection2(True)
'Set ExcelApp = CreateObject("Excel.Application")
'Set wbExcel = ExcelApp.Workbooks.Add()
'Set wsExcel = wbExcel.Worksheets(1)
swLayerMgr = swModel.GetLayerManager
vLayerArr = swLayerMgr.GetLayerList
For Each vLayer In vLayerArr
swLayer = swLayerMgr.GetLayer(vLayer)
swView = swDwg.GetFirstView
While Not swView Is Nothing
swWeldSymbol = swView.GetFirstWeldSymbol
While Not swWeldSymbol Is Nothing
i = i + 1
For j = 0 To swWeldSymbol.GetTextCount
'MsgBox (swWeldSymbol.GetTextAtIndex(j))
If Microsoft.VisualBasic.Left(swWeldSymbol.GetTextAtIndex(j), 1) = "W" Or Microsoft.VisualBasic.Left(swWeldSymbol.GetTextAtIndex(j), 1) = "w" Then
Tableau_Soudure(k) = swWeldSymbol.GetTextAtIndex(j)
k = k + 1
End If
Next j
swWeldSymbol = swWeldSymbol.GetNext
End While
swView = swView.GetNextView
End While
Next
Call Tri(Tableau_Soudure, True)
'enléve les doublons
For j = 0 To 1000
If j - 1 >= 0 Then
If Tableau_Soudure(j - 1) = Tableau_Soudure(j) Then
Tableau_Soudure(j - 1) = ""
End If
End If
Next
Call Tri(Tableau_Soudure, True)
Dim monStreamWriter As StreamWriter = New StreamWriter("C:\Temp\essai.txt")
Dim fs = CreateObject("Scripting.FileSystemObject")
'Dim oFSO As Scripting.FileSystemObject
'Dim oFl As Scripting.File
'Dim oTxt As Scripting.TextStream
'on crée le fchier
'monFichierSoudure = "c:\Temp\FichierSoudure - " & Range("AD_Number").Value & ".txt"
'oTxt = fs.CreateTextFile(monFichierSoudure, True, False)
'Instanciation du FSO
'Set oFSO = New Scripting.FileSystemObject
'Set oFl = oFSO.GetFile(monFichierSoudure)
'Set oTxt = oFl.OpenAsTextStream(ForWriting)
'on remplit le fichier texte
'With oTxt
For i = 0 To 1000
If Tableau_Soudure(i) <> "" Then
monStreamWriter.WriteLine(Tableau_Soudure(i))
End If
Next i
'End With
'fermeture du fichier texte
'oTxt.Close()
monStreamWriter.Close()
merci d'avance