Hallo
Helaas erg teleurgesteld zijn over de stabiliteit/betrouwbaarheid van de MyCADtools-tools tools in een PDM-omgeving op grote assemblages met + veel externe referenties,
Ik ben momenteel bezig met het ontwikkelen van een Python-applicatie die wordt ondersteund door veel VBA-macro's en die gebruik maakt van de solidworks API.
Dus ik kom vandaag naar jullie toe om de gevoelens van de programmeurs te horen over de stabiliteit en betrouwbaarheid van deze tools.
Hiermee bedoel ik: Heeft het de neiging om te crashen / bevriezen SW? Zorgt dit er vaak voor dat zelfstandige apps crashen?
Wanneer je een behandeling start op een groot pakket onderdelen, bestaat dan de kans dat er met een aantal daarvan geen rekening wordt gehouden?
Ik weet inderdaad niet hoe MyCAD-tools zijn geprogrammeerd, maar het is duidelijk dat ze hun taak zelden voltooien en dat wanneer ze het einde hebben bereikt zonder te crashen, sommige onderdelen vaak verloren gaan.
Dus begon ik met het coderen van een eenvoudige Marco Excel die de bestanden één voor één opent waarvan het PAD in een kolom staat.
Ik merk dat ik ook daar willekeurig gedrag krijg.
Denk je dat dit te wijten is aan een programmeerprobleem met mijn eigen code, of dat de SW API helemaal onbetrouwbaar is??
Ik ben nieuw bij VB en API sw, maar ik programmeer al in veel verschillende talen...
Dank u voor uw antwoord
De code hieronder:
Sub Ouvrir_un_par_un()
'Déclaration des variables :
Dim nb_de_ligne As Integer 'nombre de lignes du document
Dim increment As Integer 'incrément de 1 pour effectuer la boucle de recherche ligne par ligne
Dim myCell As String 'variable pointant sur la cellule en cours
Dim path_complete As String 'chemin complet de la pièce
Dim myBool As Boolean
Dim swApp As ISldWorks
Dim swModel As ModelDoc2
Dim nDocType As Integer
Dim myErrors As Long
Dim myWarnings As Long
'Initialisation de certaines variables:
nb_de_ligne = Range("A1").End(xlDown).Row - 1
If MsgBox("Vous vous apprêtez à ouvrir : " & nb_de_ligne & " fichiers à la chaine !" & Chr(13) & "Commencer ?", vbYesNo, "Demande de confirmation") = vbYes Then
'Déduction du type de fichier avec l'exension:
If swApp Is Nothing Then
Set swApp = CreateObject("SLDWORKS.application")
swApp.Visible = True
MsgBox ("Solidworks n'était pas ouvert, on vient de le lancer, appuyer sur OK quand il à l'air d'être prêt")
Else
Set swApp = Application.SldWorks
End If
'Boucle sur toutes les pièces:
For increment = 1 To nb_de_ligne
Set swModel = Nothing
nDocType = 0
myCell = "A" & (increment + 1)
path_complete = Range(myCell).value
If MsgBox("Voullez vous vérifier le fichier : " & Chr(13) & path_complete, vbYesNo, "Ouvrir ce fichier dans SW ?") = vbYes Then
' Determine type of SOLIDWORKS file based on file extension
If InStr(LCase(path_complete), "sldprt") > 0 Then
nDocType = swDocPART
ElseIf InStr(LCase(path_complete), "sldasm") > 0 Then
nDocType = swDocASSEMBLY
ElseIf InStr(LCase(path_complete), "slddrw") > 0 Then
nDocType = swDocDRAWING
Else
' Probably not a SOLIDWORKS file
nDocType = swDocNONE
' So cannot open the file
Exit Sub
End If
Set swModel = swApp.OpenDoc6(path_complete, nDocType, 1, "", myErrors, myWarnings)
' Comment utiliser OpenDoc7 ??
'swModel.ViewZoomtofit2 ' Bug souvent, pourquoi ?
End If
Next increment
End If
'Set swApp = Nothing
End Sub