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.
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 :)
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
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.
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
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
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):
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.
"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