Automatisches Einchecken einer Datei, die in gespeichert ist. Kläranlage oder . SAT in EPDM

Hallo

Wenn ich ein Makro ausführe, um alles gleichzeitig zu tun, werden meine CAD-Dateien in STEP gespeichert. 

Der Datensatzpfad befindet sich in einer Datei, die sich im EPDM-Tresor befindet. Die Aufnahme erfolgt problemlos, bleibt aber eine lokale Datei.
Also hätte ich gerne gewusst, ob es möglich wäre, die Aufnahme direkt zu archivieren, bitte?

Ich hoffe, ich habe mich klar ausgedrückt,

Vielen Dank, guten Tag.

1 „Gefällt mir“

Hallo

Sehen Sie die Archivierungsfunktion unter diesem Link http://help.solidworks.com/2014/English/api/epdmapi/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~UnlockFile.html

Herzliche Grüße

1 „Gefällt mir“

Hallo

Anstelle von Makros (von denen ich nicht sicher bin, ob sie mit geöffnetem SW funktionieren) werde ich mir lieber Dispatch-Skripte ansehen, mit denen Sie diese Art von Aktionen ausführen können.

2 „Gefällt mir“

In der Tat funktioniert die Makroarchivierung nicht, wenn die Datei in SolidWprks geöffnet wird, aber wenn sie aus einem 3D-sldprt-Modell stammt, gefolgt von einem saveAs in Step via Makro, dann können wir davon ausgehen, dass diese Schrittdatei nicht in SolidWorks geöffnet ist und die Makroarchivierung funktioniert.

Seien Sie vorsichtig, zwischen den Speichern und dem Archiv müssen Sie die Zeit für das Hinzufügen zum Tresor verwalten...

Herzliche Grüße

1 „Gefällt mir“

Genau , d.roger, das war der Sinn meiner Nachricht;)

Hallo, danke für deine Antworten, aber ich verstehe nicht wirklich... Außerdem gibt es auf der Hilfe keine Beispiele in Vba und ich verstehe die VB.net nicht wirklich.

Cyril.f, was ist bitte ein Versandskript ?

D.Roger , wenn du über die zusätzliche Zeit sprichst, ist es, ob ich sie direkt verwenden möchte? Denn tatsächlich wird meine Anwendung verwendet, um die Auswahl und Aktivierung einer 3D-Konfiguration und das Öffnen der Zeichnung zu verwalten. Gleichzeitig möchte ich dem Benutzer die Möglichkeit bieten, diese Konfiguration in STEP zu speichern, um sie mehr übersetzen zu können.

Im Moment ist mein Code einfach 

If Check_step.Value = True Then
                                        UserfrmSTEP.Show
                                        EnregistrementSTEP = Part.SaveAs3("Chemin du dossier d'enregistrement\" & NomFichierSTEP & ".STEP", 0, 0)
                                        MsgBox "Le fichier STEP a été enregistré dans le dossier suivant : Cjemin du dossier d'enregistrement" & Chr(10) & "Sous le nom suivant : " & NomFichierSTEP & Chr(10) & "Pensez à archiver le fichier car il se trouve encore en local", vbInformation, "Emplacement du fichier"
End If

 

Dispatch ist ein Dienstprogramm, das in der Administrationsoberfläche des Tresors verfügbar ist (in der Baumansicht, in den Add-Ins und dann mit der rechten Maustaste auf Dispatch und Manage Actions).

http://help.solidworks.com/2016/french/EnterprisePDM/admin/IDD_DLG_ADMIN_ACT.htm?rid=0

Für die von d.roger erwähnte Additionszeit entspricht dies der Zeit, die benötigt wird, um den Tresor zu verarbeiten, um die Datei zur Datenbank hinzuzufügen. Da diese Zeit variieren kann, wird die Datei als von einer Anwendung verwendet betrachtet und kann daher nicht über ein Makro archiviert werden. Sie müssten warten, bis SW seine Aktion abgeschlossen hat und der Tresor das Hinzufügen der Datei zu seiner Datenbank abgeschlossen hat.

Aus diesem Grund empfehle ich, den Versand zu durchlaufen, der direkt vom Tresor verwaltet und zum richtigen Zeitpunkt angewendet wird.

Für VBA-Versionssperrdatei:

Private Sub LockMyFile(vault As EdmVault5)
On Error GoTo ErrHand

  Dim folder As IEdmFolder5
  Set folder = vault.RootFolder

  Dim file As IEdmFile5
  Set file = folder.GetFile("MyFile.txt")
  file.LockFile folder.ID, Me.hWnd
  Exit Sub

ErrHand:
  Dim ename As String
  Dim edesc As String
  vault.GetErrorString Err.Number, ename, edesc
  MsgBox ename + vbLf + edesc
End Sub

 

Hallo

Hier ist ein Beispiel in C # zum Speichern einer Schritt-sldprt-Datei in Epdm mit Archivierung:

private SldWorks swAppli;
        
private void Button8Click(object sender, EventArgs e)
{
     Wir klammern uns an SW
    if (swAppli == null)
    {
        swAppli = (SldWorks)Activator.CreateInstance(Type.GetTypeFromProgID("SldWorks.Application"));
        swAppli.Visible = wahr;
    }
    
     Wir verbinden uns mit dem Safe
    EdmVault5-Tresor;
    vault = neu EdmVault5();
    if (!vault. IsLoggedIn)
    {
        Während (!vault. IsLoggedIn)
        {
            Gewölbe. LoginAuto("Coffre_BE", dies. Handle.ToInt32());
        }
    }
    
     Wir stellen den offenen SW-Teil wieder her
    ModelDoc2 Teil = null;
    Teil = ((ModelDoc2)(swAppli.ActiveDoc));

     Wir definieren den Zielordner der Schrittdatei
    Ordner IEdmFolder5;
    Ordner = Tresor. GetFolderFromPath(@"C:\Coffre_BE\TEST");
    
     Wir definieren den vollständigen Namen der STEP-Datei
    Zeichenkette DateiSCHRITT = Ordner. LocalPath + @"\" + Teil.GetTitle() + ".step";
    
     Die Datei wird im STEP-Format gespeichert
    if (Part.GetType() == (int)swDocumentTypes_e.swDocPART)
    {
        Part.SaveAs(STEP-Datei);
    }
    
     Wir fügen die STEP-Datei zum Trunk hinzu
    int Datei-ID;
    fileID = Ordner. AddFile(this. Handle.ToInt32(), STEP-Datei, "", 0);
    
     Wir stellen eine Verbindung mit der STEP-Datei her, die im Tresor erstellt wurde
    IEdmFile5 neueDateiSCHRITT = null;
    IEdmFolder5 Übergeordneter Ordner = null;
    while (newFileSTEP == null)
    {
        versuchen
        {
            newFileSTEP = (IEdmFile5)Tresor. GetFileFromPath(STEPFILE, aus ParentFolder);
        }
        catch (Ausnahme)
        {
            
        }
    }
    
     Wir archivieren die STEP-Datei
    newFileSTEP.UnlockFile(this. Handle.ToInt32(), "STEP-Datei erstellen.", 0, null);
}

Herzliche Grüße

1 „Gefällt mir“