Witam
Niestety, jestem bardzo rozczarowany stabilnością/niezawodnością narzędzi MyCADtools w środowisku PDM na dużych złożeniach z + dużą ilością odniesień zewnętrznych,
Obecnie tworzę aplikację w języku Python obsługiwaną przez wiele makr VBA, która korzysta z interfejsu API solidworks.
Przychodzę więc dzisiaj do Was, aby poznać odczucia programistów na temat stabilności i niezawodności tych narzędzi.
Rozumiem przez to: czy ma tendencję do zawieszania się/zawieszania oprogramowania? Czy często powoduje to awarie samodzielnych aplikacji?
Czy rozpoczynając kurację na dużym pakiecie części, jest szansa, że część z nich nie zostanie uwzględniona?
Rzeczywiście, nie wiem, jak programowane są narzędzia MyCAD, ale jasne jest, że rzadko kończą swoje zadanie, a kiedy dotrą do końca bez awarii, niektóre części są często tracone.
Zacząłem więc kodować prosty marco excel, który otwiera pliki jeden po drugim, których ŚCIEŻKA znajduje się w kolumnie.
Zauważyłem, że tam też dostaję przypadkowe zachowanie.
Czy uważasz, że jest to spowodowane problemem programistycznym z moim własnym kodem, czy też API oprogramowania jest w ogóle natywnie zawodne?
Jestem nowy w VB i API sw, ale już programuję w wielu różnych językach...
Dziękuję za odpowiedź
Poniższy kod:
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