Właściwości SolidWorks

Witam

Bez narzędzi MyCAD (w przeciwnym razie jest to zbyt łatwe!!) Chciałbym wiedzieć, czy istnieje możliwość zbiorczego wyodrębnienia jednej lub więcej niestandardowych właściwości z części SolidWorks.

Tak, pod VB.Net, jeśli wiesz, mogę dać ci kilka kodów, które kiedyś :)

1 polubienie

Tak, chcę, byłoby miło.

Dziękuję

Witam

W tym celu dostępny był samouczek dotyczący kodu VBA.

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

1 polubienie

To rzeczywiście jest to makro, ale nie przetwarza plików zbiorczych i jestem zmuszony otworzyć SolidWorks.

Żałuję, że nie mogę tego zrobić bez otwierania SolidWorks.

1 polubienie

Nie używam już tego kodu, ale  w czasie, gdy działał, informował mnie na bieżąco

    ''' <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

W przeciwnym razie spójrz na swDocMgr http://help.solidworks.com/2016/english/api/swdocmgrapi/get_configuration_information_example_vbnet.htm

1 polubienie

Cześć flegendre,

Aby uzyskać dostęp do właściwości plików oprogramowania bez ich otwierania, należy użyć interfejsu API Menedżera dokumentów.

Jak wspomniano w pomocy, musisz ubiegać się o bezpłatną licencję, logując się do swojej strefy klienta SW.

Następnie w "My Support" kliknij "API Assistance". Następnie na " Żądanie klucza menedżera dokumentów "

Zostaniesz poproszony o podanie informacji o swojej firmie i w jakim celu chcesz korzystać z tej licencji.

Są deszczowe poziomy dostępu. Korzystamy z funkcji Podstawowej i Zapoznawczej. Co jest więcej niż wystarczające.

Otrzymasz wiadomość e-mail z numerem licencji, który należy zintegrować z kodem. Będziesz musiał składać to żądanie co roku, aby uzyskać dostęp do plików oprogramowania w nowej wersji, a tym samym zmodyfikować klucz w swoim kodzie.

Czy kiedykolwiek kodowałeś w Vb.Net?

Czy korzystasz już z EDI?

Co chcesz zrobić w szczegółach?

 

Miłego dnia

 

2 polubienia

@remrem,

Osobiście nie programuję, ale mój kolega inżynier wie, jak kodować w VBA.

Co to jest EDI?

To, co chcę dokładnie zrobić, to:

Chciałbym móc zrobić 2 rzeczy (bez otwierania SoloidWorks):

  •  wymień niestandardowe właściwości części oprogramowania obecnych w jednym katalogu, wyślij je do pliku Excel (aby móc je posortować według typu właściwości)
  • Możliwość wyszukiwania za pomocą jednej lub więcej właściwości z katalogu części oprogramowania

 

 

1 polubienie

IDE to "zintegrowane środowisko programistyczne".

Osobiście korzystam z Visual Studio. Ale jest też wiele innych. Dzięki temu możesz utworzyć małą aplikację, która następnie instaluje się jak każda inna aplikacja.

Czy chcesz wyświetlić listę wszystkich właściwości każdego pliku, czy znasz już nazwy właściwości, które chcesz odczytać?

Chcesz zapoznać się z właściwościami plików .sldprt, sldasm i slddw?

Bądź ostrożny, Vb.net nadal bardzo różni się od VBA.

3 polubienia

"Chcesz przeczytać właściwości .sldprt, sldasm i slddrw?"

Chcę tylko odczytać właściwości części SLDPRT

"Czy chcesz wyświetlić listę wszystkich właściwości każdego pliku, czy znasz już nazwy właściwości, które chcesz odczytać?"

W przypadku nr 1 chcę "głupio" wymienić wszystkie właściwości każdej części.

Przykład: Chcę wyświetlić listę wszystkich części z wartością FUNVISIO w jednej z właściwości.

W przypadku nr 2 znam nazwy właściwości i chcę szybko wyróżnić tę ze znaną wartością.

Przykład: Chcę wyświetlić listę wszystkich elementów z właściwością Material = Alu