EPDM: tworzenie plików zgodnie z plikiem Excel

Witam

mamy dużą listę plików bibliotek, które chcemy zaimportować do EPDM z autouzupełnianiem karty.

Pomysł polegałby na utworzeniu pliku SLDPRT z numeracją plików zgodnie z naszą skonfigurowaną numeracją, a następnie wypełnienie mapy EPDM danymi w tabeli.

Czy jest na to sposób/narzędzie ? Mamy myCADtools z Visiativ, ale nie mogę znaleźć odpowiedniego programu.

Cdt

Witam

Nie wiem wystarczająco dużo o narzędziach MyCadTools, ale kiedy czytam " DataRecovery: Zbiorcze archiwizowanie danych i metadanych z drzewa systemu Windows w skarbcu ", brzmi to jak to, co chcesz zrobić, prawda?

Jeśli żadne narzędzie nie spełnia Twoich potrzeb, można to zrobić programowo, ale zaczyna tworzyć ładny mały program, może lepiej zbliżyć się do sprzedawcy.

Pozdrowienia

Witam

Mając już dość dużo czasu na radzenie sobie ze skrzynią za pomocą makr Excela, myślę, że można to zrobić dość łatwo. Nie pamiętam, gdzie to czytałem, ale wydaje mi się, że MyCADTools pozwala na aktualizację plików z danych mapy, co pozwoliłoby uruchomić makro Excela w celu wypełnienia bazy danych SQL, a następnie zaktualizować pliki.

W przeciwnym razie zrobienie wszystkiego w jednym makrze jest wykonalne.

Znajduje się w opcjach PDMProperties

1 polubienie

W rzeczywistości wiem, jak stosować zmienne do plików z tabeli Excela (lub nie), istnieje do tego oprogramowanie opracowane (BatchProperties, Intergration). 

Z drugiej strony wydaje się, że żaden z nich nie jest w stanie utworzyć pliku SLDPRT.

Zasadniczo chcę zrobić plik Excela ze wszystkimi zmiennymi i wysłać go do EPDM. Od tego momentu zajmuje się tworzeniem pliku SLDPRT, wypełnianiem mapy i archiwizacją.

Dzisiaj muszę utworzyć puste pliki, zarchiwizować je, a następnie wysłać plik Excel, aby automatycznie wypełnić zmienne.

Jeśli dobrze przeczytałem, twoje pliki już istnieją, ale poza Epdm i prawdopodobnie błędnie nazwane (" mamy dużą listę plików bibliotek, które chcemy zaimportować do EPDM z autouzupełnianiem karty. "). Więc to, co chcesz zrobić, to skopiować pliki z folderu Windows do Epdm, zmieniając ich nazwy, a następnie przypisując im ich zmienne?

Z pamięci należy utworzyć pusty plik szablonu zarchiwizowany w repozytorium, aby skopiować go do innego folderu i zmienić jego nazwę, jednocześnie stosując do niego zmienne w tym procesie.

Nie mam już tego amcro, ponieważ już go nie potrzebujemy, ale kompilując różne kody, można go łatwo przerobić.

 

Musi to zatem zależeć od ustawień Epdm, ponieważ z mojej strony skopiuj plik Windows do Epdm, zarchiwizuj, zachowując wyodrębnione z tego pliku, zaktualizuj zmienne, zarchiwizuj ... Działa dobrze. Należy jednak zwrócić uwagę na okres opóźnienia między skopiowaniem pliku a dodaniem go do repozytorium.

Nie, nie, plik nie istnieje. Chcę, aby został utworzony automatycznie. Nie mam żadnych plików, tylko listę kodów do utworzenia w Excelu. Chcę, aby tworzenie plików również odbywało się automatycznie.

Wracamy do tego, co Cyril.f powiedział powyżej, musisz utworzyć plik szablonu, skopiować go pod nową nazwą, zastosować do niego jego zmienne, a następnie zarchiwizować.

Aby uzyskać informacje na temat kopiowania, zobacz http://help.solidworks.com/2014/English/api/epdmapi/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~CopyFile.html

Aby pracować ze zmiennymi, zobacz http://help.solidworks.com/2014/English/api/epdmapi/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable8.html

Aby uzyskać informacje na temat archiwizacji, zobacz http://help.solidworks.com/2014/English/api/epdmapi/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~UnlockFile.html

Pozdrowienia

1 polubienie

OK. Chciałem uniknąć makro, aby zaoszczędzić trochę czasu, ale kiedy muszę!

Dziękuję bardzo :)

Niektóre kody (nie miałem czasu na skompilowanie wszystkiego w jednym, więc będę musiał się dostosować)

Zmienianie nazw:

Dim sRename As String
Dim vault As EdmVault5
Dim folder As IEdmFolder6
Dim file As IEdmFile6
Dim sPathName As String
Dim sNewName As String
Dim sActualName As String

Sub main()
Set vault = New EdmVault5
vault.LoginAuto "xxx", 0
I = 7
Do While Cells(I, 1) <> ""
    sReference = Cells(I, 1).Value
    sFolder = Cells(I, 5).Value
    sRename = Cells(I, 12).Value
    Set folder = vault.GetFolderFromPath(sFolder)
    Set file = folder.GetFile(sReference)
    file.Rename 0, sRename, True
    I = I + 1
Loop
DoEvents
I = 0
End Sub

Przenoszenie pliku:

Sub MoveFile()
Set vault = New EdmVault5
vault.LoginAuto "xxx", 0
I = 7
Do While Cells(I, 1) <> ""
    Reference = Cells(I, 1).value
    Source = Cells(I, 11).value
    Destination = Cells(I, 5).value
    Set Folder = vault.GetFolderFromPath(Source)
    Set file = Folder.GetFile(Reference)
    Set dest = vault.GetFolderFromPath(Destination)
    file.Move 0, Folder.ID, dest.ID, 0
I = I + 1
Loop
End Sub

Aktualizacje map

Sub UpdateTDM()

Set vault = New EdmVault5
vault.LoginAuto "xxx", 0

i = 2
Do While Cells(i, 11) <> ""
    Set folder = vault.GetFolderFromPath(Cells(i, 5))
    Set file = vault.GetFileFromPath(Cells(i, 5) & "\" & Cells(i, 1))
    file.LockFile folder.ID, 0
    Set pEnumVar = file.GetEnumeratorVariable
    pEnumVar.SetVar "xxx", "", Cells(i, 12) 'Mettre le nom de la variable
    pEnumVar.SetVar "xxx", "", Cells(i, 13) 'Mettre le nom de la variable
    pEnumVar.SetVar "xxx", "", Cells(i, 11) 'Mettre le nom de la variable
    pEnumVar.CloseFile (True)
    file.UnlockFile folder.ID, "Ajout réf, désignation et indice" 'Si archivage dans la foulée se servir de cette ligne sinon supprimer 
    Cells(i, 14).value = "Traité"
i = i + 1
Loop
End Sub

W razie potrzeby mogę być w pomocy, ale nie jestem całkowicie dostępny.

1 polubienie

Pominąłem, kopiuj przez zmianę nazwy mimochodem (bardziej zautomatyzowane niż kopiowanie niż zmiana nazwy)

Dim vault As EdmVault5
Dim folder As IEdmFolder6
Dim destfolder As IEdmFolder6
Dim file As IEdmFile6

Sub CopyFile()
Set vault = New EdmVault5
vault.LoginAuto "xxx", 0
Set folder = vault.GetFolderFromPath("C:\xxx\yyy")
Set destfolder = vault.GetFolderFromPath("C:\xxx\zzz")
Set file = folder.GetFile("toto.sldprt")

destfolder.CopyFile file.ID, folder.ID, 0, "Rename.sldprt" 'ne pas omettre l'extension sinon fichier inexploitable

End Sub

 

Dziękuję bardzo, wykorzystam to i zobaczę, co się stanie!