SolidWorks Eigenschaften

Hallo

Ohne MyCAD Utilities (sonst ist es zu einfach!!) würde ich gerne wissen, ob es eine Möglichkeit gibt, eine oder mehrere benutzerdefinierte Eigenschaften aus SolidWorks-Teilen zu extrahieren.

Ja, unter VB.Net wenn Sie wissen, kann ich Ihnen einige Codes geben, die ich früher :)

1 „Gefällt mir“

Ja Ich will, es wäre schön.

Vielen Dank

Hallo

Dafür gab es ein Tutorial zu einem VBA-Code.

http://www.lynkoa.com/tutos/import-export-formats-neutres/macro-solidworks-exporter-les-propri%C3%A9t%C3%A9s-personnalis%C3%A9e-vers-exce

1 „Gefällt mir“

Es ist in der Tat dieses Makro, aber es verarbeitet keine Massendateien und ich bin gezwungen, SolidWorks zu öffnen.

Ich wünschte, ich könnte es tun, ohne SolidWorks zu öffnen.

1 „Gefällt mir“

Ich benutze diesen Code nicht mehr, aber  zu der Zeit, als er funktionierte, hielt er mich auf dem Laufenden

    ''' <summary>
    ''' Renvoi la propriete selectionner dans un fichier Solidworks Donnée
    ''' swSumInfoTitle = 0
    ''' swSumInfoSubject = 1
    ''' swSumInfoAuthor = 2
    ''' swSumInfoKeywords = 3
    ''' swSumInfoComment = 4
    ''' swSumInfoSavedBy = 5
    ''' swSumInfoCreateDate = 6
    ''' swSumInfoSaveDate = 7
    ''' swSumInfoCreateDate2 = 8
    ''' swSumInfoSaveDate2 = 9
    ''' </summary>
    ''' <param name="File">Fichier a controller</param>
    ''' <param name="PropNumber">Type d'info a recupere</param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function ReadProperties(File As String, PropNumber As Integer) As String
        If File = Nothing Or PropNumber = Nothing Then Return Nothing
        Dim swDocSpecification As SldWorks.DocumentSpecification = swApp.GetOpenDocSpec(File)
        swDocSpecification.Silent = True : swDocSpecification.ReadOnly = True : swApp.OpenDoc7(swDocSpecification)
        Dim swModel As ModelDoc2 = swApp.ActiveDoc
        Dim Properties As String = swModel.SummaryInfo(PropNumber)
        swApp.CloseDoc(File) 'Fermeture de la piece
        If Not Properties = Nothing Then Return Properties Else Return Nothing
    End Function

    ''' <summary>
    ''' Inscrit la propriete selectionner dans un fichier Solidworks Donnée
    ''' swSumInfoTitle = 0
    ''' swSumInfoSubject = 1
    ''' swSumInfoAuthor = 2
    ''' swSumInfoKeywords = 3
    ''' swSumInfoComment = 4
    ''' </summary>
    ''' <param name="File">Fichier a éditer</param>
    ''' <param name="PropNumber">Type d'info a renseigner</param>
    ''' <param name="PropValue">Info a renseigner</param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function WriteProperties(File As String, PropNumber As Integer, PropValue As String) ' As String
        Dim swDocSpecification As SldWorks.DocumentSpecification = swApp.GetOpenDocSpec(File)
        swDocSpecification.Silent = True : swDocSpecification.ReadOnly = False : swApp.OpenDoc7(swDocSpecification)
        Dim swModel As ModelDoc2 = swApp.ActiveDoc
        swModel.SummaryInfo(PropNumber) = PropValue
        Dim fileerror, filewarning As Integer
        swModel.Save3(SwConst.swSaveAsOptions_e.swSaveAsOptions_Silent, fileerror, filewarning)
        swApp.CloseDoc(File) 'Fermeture de la piece
        Return Nothing
        'If ReadProperties(File, PropNumber) = PropValue Then Return PropValue Else Return Nothing
    End Function
    Delegate Sub dEditDrawingProperties(DrawingToEdit As String)
    Function EditDrawingProperties(DrawingToEdit As String)
        Dim swDmDoc As SwDocumentMgr.ISwDMDocument18 = swDmGetDocument(DrawingToEdit, False) 'Ouverture du document
        'MAJ propriété général
        swDmSetCustomProperty(swDmDoc, "LBM_DWG", Regex.Match(DrawingToEdit, "N°([0-9]+)-0.SLDDRW", RegexOptions.IgnoreCase).Groups(1).Value, SwDocumentMgr.SwDmCustomInfoType.swDmCustomInfoText)
        swDmSetCustomProperty(swDmDoc, "LBM_REV", "0", SwDocumentMgr.SwDmCustomInfoType.swDmCustomInfoText)
        swDmSetCustomProperty(swDmDoc, "LBM_REV1", "0", SwDocumentMgr.SwDmCustomInfoType.swDmCustomInfoText)
        swDmSetCustomProperty(swDmDoc, "LBM_DATE1", Dateddmmyy, SwDocumentMgr.SwDmCustomInfoType.swDmCustomInfoText)
        swDmSetCustomProperty(swDmDoc, "LBM_MEMO1", "First Issue", SwDocumentMgr.SwDmCustomInfoType.swDmCustomInfoText)
        swDmSetCustomProperty(swDmDoc, "LBM_ISSUED1", User(), SwDocumentMgr.SwDmCustomInfoType.swDmCustomInfoText)
        swDmSetCustomProperty(swDmDoc, "LBM_PROJECT", DrawingToEdit.Split(New Char() {"\"c})(5), SwDocumentMgr.SwDmCustomInfoType.swDmCustomInfoText)
        swDmDoc.Save() : swDmDoc.CloseDoc() 'Sauvegarde du document'Fermeture du document
        Return Nothing
    End Function

Andernfalls schauen Sie sich die swDocMgr-http://help.solidworks.com/2016/english/api/swdocmgrapi/get_configuration_information_example_vbnet.htm 

1 „Gefällt mir“

Hallo flegendre,

Um auf die Eigenschaften von SW-Dateien zuzugreifen, ohne sie zu öffnen, müssen Sie die Document Manager API verwenden.

Wie in der Hilfe erwähnt, müssen Sie eine kostenlose Lizenz beantragen, indem Sie sich in Ihren SW-Kundenbereich einloggen.

Klicken Sie dann in "Mein Support" auf "API-Unterstützung". Dann auf " Document Manager Key Request "

Sie werden nach Informationen über Ihr Unternehmen gefragt und zu welchem Zweck Sie diese Lizenz verwenden möchten.

Es gibt verregnete Zugangsebenen. Wir verwenden die Funktionen Basic und Preview. Was mehr als genug ist.

Sie erhalten eine E-Mail mit Ihrer Lizenznummer, die in Ihren Code integriert werden muss. Sie müssen diese Anfrage jedes Jahr stellen, um auf die SW-Dateien mit der neuen Version zuzugreifen und daher den Schlüssel in Ihrem Code zu ändern.

Hast du schon einmal in Vb.Net programmiert?

Nutzen Sie bereits ein EDI?

Was möchten Sie im Detail tun?

 

Schönen Tag

 

2 „Gefällt mir“

@remrem ,

Ich persönlich programmiere nicht, aber mein Ingenieurskollege weiß, wie man in VBA programmiert.

Was ist EDI?

Was ich genau machen möchte, ist folgendes:

Ich möchte in der Lage sein, 2 Dinge zu tun (ohne SoloidWorks zu öffnen):

  •  Liste der benutzerdefinierten Eigenschaften der SW-Teile, die in einem einzigen Verzeichnis vorhanden sind, Senden Sie sie an eine Excel-Datei (um sie nach Art der Eigenschaften sortieren zu können)
  • In der Lage sein, über eine oder mehrere Eigenschaften aus einem SW-Teileverzeichnis zu suchen

 

 

1 „Gefällt mir“

Eine IDE ist eine "integrierte Entwicklungsumgebung".

Persönlich verwende ich Visual Studio. Aber es gibt noch viele andere. Auf diese Weise können Sie eine kleine App erstellen, die dann wie jede andere App installiert wird.

Möchten Sie alle Eigenschaften jeder Datei auflisten oder kennen Sie bereits den Namen der Eigenschaften, die Sie lesen möchten?

Möchten Sie die Eigenschaften von .sldprt, sldasm und und slddw lesen?

Seien Sie vorsichtig, die Vb.net unterscheidet sich immer noch stark von der VBA.

3 „Gefällt mir“

"Möchten Sie die Eigenschaften von .sldprt, sldasm und und slddrw lesen?"

Ich möchte nur die Eigenschaften von SLDPRT-Teilen lesen

"Möchten Sie alle Eigenschaften jeder Datei auflisten oder kennen Sie bereits den Namen der Eigenschaften, die Sie lesen möchten?"

Im Fall Nr. 1 möchte ich "dummerweise" alle Eigenschaften jedes Teils auflisten.

Beispiel: Ich möchte alle Teile mit dem Wert FUNVISIO in einer der Eigenschaften auflisten.

Im Fall Nr. 2 kenne ich die Namen der Eigenschaften und möchte schnell die Eigenschaft mit einem bekannten Wert hervorheben.

Beispiel: Ich möchte alle Teile mit der Eigenschaft Material = Alu auflisten