Tworzenie makra otwierającego pomoc makra pliku solidwork

Witam

Pozwólcie, że wyjaśnię mój problem, obecnie mam plik Excela, z którego chcę otworzyć moje 3D (co mi się udaje)

wtedy.... Zapisz je w programie . DXf w określonym folderze ze ścieżką "G:\DAO\Iges-fao" i zmieniając ich nazwę za pomocą kodu ERP, który pojawia się na mapie danych, a także indeksu (wersja)

Zacząłem pisać początek makra, ale utknąłem na poziomie nagrywania 3D w DXF :-(

Załączam kod oraz wydruk karty danych

Czy możesz mi pomóc

 
   Dim choix_liste As String     'type de pi?ce choisi dans la liste d?roulante pour l'ouverture des pi?ces
   Dim nb_de_piece As Integer    'nombre de lignes de la colonne F correspondant aux nombres de pi?ces
   Dim increment As Integer      'incr?ment de 1 pour effectuer la boucle de recherche ligne par ligne sur la colonne F
   Dim myCell As String          'variable pour fusionner l'incr?ment et la colonne F pour la plage de recherche
   Dim path As String            'chemin du dossier d'enregistrement de la pi?ce
   Dim nom As String             'nom de la pi?ce
   Dim path_complete As String   'chemin complet de la pi?ce
   Dim myBool As Boolean
   Dim myError As Long, myWarning As Long
   Dim swApp As Object
   Dim Part As Object
   Dim longstatus As Long
 
 
 'ouverture de SolidWorks :
 
   myBool = Shell("C:\Program Files\SOLIDWORKS Corp\SOLIDWORKS\SLDWORKS.exe", vbNormalFocus)
   Application.Wait Now + TimeValue("0:00:10")
 
Set swApp = CreateObject("SldWorks.Application")
 
 
 'Set swApp = Application.SldWorks

 
  Set swApp = CreateObject("SldWorks.Application")
    Set swModel = swApp.OpenDoc6("C:\_FICHETBAUCHE\03 projets\01 safes\pbz00371\technical file\02 cad\millium-newton feu, cadre modifi? caisse ext pop?e\SW00239874.sldprt", 1, 1, "", myError, myWarning)
    
    Set Part = swApp.ActiveDoc
  
    ' Named View
Part.ShowNamedView2 "*Dessus", 5
Part.ViewZoomtofit2

Set Part = swApp.ActiveDoc

' Save As
Set swModel = Part.SaveAs3("G:\DAO\Iges-fao\SW00246182.DXF", 0, 0)

' Save As
'swModel.SaveAs2 Left(path, (Len(path) - 6)) & "dxf", 0, True, False
 
' boucle a creer

'definition de la plage sur lequel va s'appliquer la macro :
 
'Initialisation de certaines variables:
 
   ' valeur de la conne x = "Nouveau" et Valeur de la colonne Y = " Fabriquée" et "Pièces/Opé panoplies"

   nb_de_piece = Application.WorksheetFunction.CountA(Feuil1.Range("$H:$H")) 'nombre de cellules non vide dans la colonne F, soit le nombre de pi?ces
   increment = 1
 

'For increment = 1 To der lign
 
  ' End If
 
'Next increment 'on passe ? la ligne suivante
 
End Sub

 

Z góry dziękuję

 

 

 

 

 


image.docx

Witam

Widzę, że masz skarbiec Epdm, więc na uwagę "Chcę otworzyć moje 3D (co mogę zrobić)" Nie do końca się zgadzam, twoje makro będzie działać tylko wtedy, gdy twoje pliki znajdują się w lokalnej pamięci podręcznej, w przeciwnym razie musisz użyć interfejsów API epdm (epdm. Interop.epdm_namespace) Aby połączyć się z magazynem, wyszukaj plik, repatriuj go do lokalnej pamięci podręcznej, a następnie załaduj go (nie wspominając o funkcjach wyodrębniania, tworzenia kopii zapasowych i archiwizowania, jeśli to konieczne).
Następnie, ponieważ zmienne są eksportowane z Epdm do właściwości oprogramowania, możesz użyć funkcji "Get6", aby pobrać ich wartości.
I wreszcie, aby zapisać model 3D w formacie DWG lub DXF, musisz użyć funkcji "ExportToDWG2".
Przykłady ilustrujące zastosowania tych różnych funkcji są dostępne pod różnymi linkami podanymi powyżej.

Pozdrowienia

2 polubienia

Witaj d.Roger 

Dziękuję za uwagi i rady  mnie, który myślałem, że znalazłem :-(  ....

Czy mógłbyś mi trochę pomóc w napisaniu tylko tej części makra.... bo jestem początkujący w VB, a teraz jestem zagubiony.....

w zasadzie chcę po prostu przeczytać tylko plik SW00?????? który znajduje się w następującej ścieżce: "C:\_FICHETBAUCHE\03 projekty\01 sejfy\pbz00371\plik techniczny\02 cad\millium-newton fire, zmodyfikowana struktura?

a następnie zapisz go w .dxf w tym miejscu "G:\DAO\Iges-fao i zmieniając jego nazwę na kod ERP i indeks karty danych

i zamknij otwarty plik tylko do odczytu

bardzo dziękuję za pomoc, mając nadzieję, że możesz mi pomóc tylko w tej części makro

Pozdrowienia

Sebastian

 

Witam

Oto przykład nawiązywania połączenia z repozytorium Epdm i przesyłania pliku do oprogramowania, należy wskazać nazwę repozytorium i nazwę pliku, który ma zostać przesłany do makra. Nie zapomnij umieścić referencji "Biblioteka typów SldWorks xxxx" i "Biblioteka typów PDMWorks Enterprise xxxx" w swoim makrze (Narzędzia/Referencje). 

Dim swApp As SldWorks.SldWorks
Dim Part As SldWorks.ModelDoc2
Dim longstatus As Long
Dim longwarnings As Long
Dim Coffre as string
Dim Fichier as string

Sub main()

    myBool = Shell("C:\Program Files\SOLIDWORKS Corp\SOLIDWORKS\SLDWORKS.exe", vbNormalFocus)
    Application.Wait Now + TimeValue("0:00:10")
   
    Set swApp = CreateObject("SldWorks.Application")

    Dim Vault As New EdmVault5
    Dim File As IEdmFile5
    Dim Folder As IEdmFolder5

	Coffre = "x" 'Mettre le nom du coffre fort Epdm à la place du x
	Fichier = "x" 'Mettre le nom complet du fichier à la place du x

    Vault.LoginAuto Coffre, 0

    Set File = Vault.GetFileFromPath(Fichier, Folder)
    
    Set Part = swApp.OpenDoc6(Folder.LocalPath & "/" & File.Name, 1, 2, "", longstatus, longwarnings)
    
    Set Part = swApp.ActiveDoc
    
    Part.ViewZoomtofit2
    
    MsgBox Part.GetPathName

End Sub

 

Dla innych funkcji dostępne są konkretne przykłady: TUTAJ dla funkcji Get6 i TUTAJ dla funkcji ExportToDWG2 . Aby zamknąć otwarty plik w Sw musisz użyć funkcji CloseDoc, przykład jak z niej skorzystać TUTAJ .

Pozdrowienia

 

1 polubienie