Hallo
Zonder MyCAD Utilities (anders is het te gemakkelijk!!) zou ik graag willen weten of er een mogelijkheid is om een of meer aangepaste eigenschappen in bulk uit SolidWorks-onderdelen te extraheren.
Hallo
Zonder MyCAD Utilities (anders is het te gemakkelijk!!) zou ik graag willen weten of er een mogelijkheid is om een of meer aangepaste eigenschappen in bulk uit SolidWorks-onderdelen te extraheren.
Ja, onder VB.Net als je het weet, kan ik je wat stukjes code geven die ik vroeger :)
Ja dat wil ik, het zou leuk zijn.
Bedankt
Hallo
Daar was een tutorial over een VBA-code voor.
http://www.lynkoa.com/tutos/import-export-formats-neutres/macro-solidworks-exporter-les-propri%C3%A9t%C3%A9s-personnalis%C3%A9e-vers-exce
Het is inderdaad deze macro, maar hij verwerkt geen bulkbestanden en ik ben genoodzaakt SolidWorks te openen.
Ik wou dat ik het kon doen zonder SolidWorks te openen.
Ik gebruik deze code niet meer, maar op het moment dat het werkte, hield me op de hoogte
''' <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
Kijk anders naar de swDocMgr http://help.solidworks.com/2016/english/api/swdocmgrapi/get_configuration_information_example_vbnet.htm
Hoi flegendre,
Als u toegang wilt krijgen tot de eigenschappen van SW-bestanden zonder ze te openen, moet u de Document Manager-API gebruiken.
Zoals vermeld in de help, moet u een gratis licentie aanvragen door in te loggen op uw SW-klantengebied.
Klik vervolgens in "Mijn ondersteuning" op "API-assistentie". Vervolgens op " Document Manager Key Request "
U wordt gevraagd om informatie over uw bedrijf en voor welk doel u deze licentie wilt gebruiken.
Er zijn regenachtige toegangsniveaus. We gebruiken de functies Basis en Preview. En dat is meer dan genoeg.
U ontvangt een e-mail met uw licentienummer dat in uw code moet worden geïntegreerd. U zult dit verzoek elk jaar moeten doen om toegang te krijgen tot de SW-bestanden met de nieuwe versie, en dus de sleutel in uw code aan te passen.
Heb je ooit gecodeerd in Vb.Net?
Maakt u al gebruik van een EDI?
Wat wil je in detail doen?
Fijne dag
Persoonlijk programmeer ik niet, maar mijn collega-ingenieur weet hoe hij in VBA moet coderen.
Wat is EDI?
Wat ik precies wil doen is dit:
Ik zou graag 2 dingen willen kunnen doen (zonder SoloidWorks te openen):
Een IDE is een "Integrated Development Environment".
Persoonlijk gebruik ik Visual Studio. Maar er zijn er nog veel meer. Hiermee kunt u een kleine app maken die vervolgens wordt geïnstalleerd zoals elke andere app.
Wil je alle eigenschappen van elk bestand op een rijtje zetten of weet je al de naam van de eigenschappen die je wilt lezen?
Wil je de eigenschappen van .sldprt, sldasm, en en slddw lezen?
Wees voorzichtig, de Vb.net is nog steeds heel anders dan de VBA.
"Wilt u de eigenschappen van .sldprt, sldasm, en en slddrw lezen?"
Ik wil alleen de eigenschappen van SLDPRT-onderdelen lezen
"Wil je alle eigenschappen van elk bestand opsommen of weet je al de naam van de eigenschappen die je wilt lezen?"
In geval nr. 1 wil ik "dom" alle eigenschappen van elk onderdeel opsommen.
Voorbeeld: Ik wil alle onderdelen met de waarde FUNVISIO in een van de eigenschappen vermelden.
In geval nr. 2 ken ik de namen van de eigendommen en wil ik snel degene met een bekende waarde markeren.
Voorbeeld: Ik wil alle onderdelen met de eigenschap Material = Alu op een rijtje zetten