Hallo
Leider sehr enttäuscht von der Stabilität/Zuverlässigkeit der MyCADtools-Tools in einer PDM-Umgebung auf großen Baugruppen mit + vielen externen Referenzen,
Ich entwickle derzeit eine Python-Anwendung, die von vielen VBA-Makros unterstützt wird und die Solidworks-API verwendet.
Deshalb komme ich heute zu Ihnen, um die Meinung der Programmierer zur Stabilität und Zuverlässigkeit dieser Tools zu erfahren.
Damit meine ich: Neigt es zum Absturz/Einfrieren von SW? Führt dies häufig zum Absturz eigenständiger Apps?
Wenn Sie eine Behandlung mit einem großen Paket von Teilen beginnen, besteht die Möglichkeit, dass einige von ihnen nicht berücksichtigt werden?
In der Tat weiß ich nicht, wie MyCAD-Tools programmiert werden, aber es ist klar, dass sie ihre Aufgabe selten erledigen und dass, wenn sie das Ende erreicht haben, ohne abzustürzen, oft einige der Teile verloren gehen.
Also habe ich angefangen, ein einfaches Marco Excel zu programmieren, das die Dateien nacheinander öffnet, deren PATH in einer Spalte steht.
Ich bemerke, dass ich auch dort zufälliges Verhalten bekomme.
Glauben Sie, dass dies auf ein Programmierproblem mit meinem eigenen Code zurückzuführen ist, oder ist die SW-API von Natur aus überhaupt unzuverlässig?
Ich bin neu in VB und API sw, aber ich programmiere bereits in vielen verschiedenen Sprachen...
Vielen Dank für Ihre Antwort
Der folgende Code:
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