EPDM: aanmaken van bestanden volgens Excel-bestand

Hallo

we hebben een grote lijst met bibliotheekbestanden die we in EPDM willen importeren met autofill van de kaart.

Het idee zou zijn om een SLDPRT-bestand te maken met bestandsnummering volgens onze geconfigureerde nummering en vervolgens de EPDM-kaart te vullen met de gegevens in de tabel.

Is er een manier/nut om dit te doen? We hebben myCADtools met Visiatv, maar ik kan geen geschikt programma vinden.

Cdt

Hallo

Ik weet niet genoeg over MyCadTools-tools, maar als ik " DataRecovery: Bulk archiveer gegevens en metadata van een Windows-boom in de kluis " lees, klinkt het als wat je wilt doen, nietwaar?

Als geen enkel gereedschap aan uw behoeften voldoet, is het mogelijk om het programmatisch te doen, maar het begint een leuk klein programma te maken, het is misschien beter om dichter bij uw dealer te komen.

Vriendelijke groeten

Hallo

Omdat ik de kist al behoorlijk wat met Excel-macro's heb behandeld, denk ik dat het vrij gemakkelijk kan worden gedaan. Ik weet niet meer waar ik dit heb gelezen, maar het lijkt mij dat MyCADTools je in staat stelt om de bestanden bij te werken vanuit de kaartgegevens, waardoor je de Excel-macro kunt uitvoeren om de SQL-database in te vullen en vervolgens de bestanden bij te werken.

Anders is het goed te doen om alles in één macro te doen.

Het zit in de PDMProperties-opties

1 like

Sterker nog, ik weet hoe ik variabelen moet toepassen op bestanden uit een Excel-tabel (of niet), er is software voor ontwikkeld (BatchProperties, Intergration). 

Aan de andere kant lijkt geen van hen in staat te zijn om het SLDPRT-bestand te maken.

Kortom, ik wil mijn Excel-bestand maken met alle variabelen en het naar EPDM sturen. Vanaf dat moment zorgt hij voor het maken van het SLDPRT-bestand, het invullen van de kaart en het archiveren.

Vandaag moet ik de lege bestanden maken, ze archiveren en vervolgens mijn Excel-bestand verzenden om de variabelen automatisch in te vullen.

Als ik het goed lees, bestaan uw bestanden al, maar buiten Epdm en hebben ze waarschijnlijk een verkeerde naam (" we hebben een grote lijst met bibliotheekbestanden die we in EPDM willen importeren met automatisch invullen van de kaart. "). Dus wat u wilt doen, is de bestanden van een Windows-map naar Epdm kopiëren door ze te hernoemen en ze vervolgens hun variabelen toe te wijzen?

Vanuit het geheugen moet u een leeg sjabloonbestand maken dat in de kluis is gearchiveerd om het naar een andere map te kopiëren en te hernoemen terwijl u de variabelen erop toepast in het proces.

Ik heb deze amcro niet meer omdat we hem niet meer nodig hebben, maar door verschillende codes samen te stellen kan hij gemakkelijk opnieuw worden gedaan.

 

Het moet dus afhangen van de Epdm-instellingen, want aan mijn kant, kopieer Windows-bestand naar Epdm, archiveer door te blijven uitpakken uit dit bestand, update variabelen, archief ... Het werkt goed. U moet echter letten op de latentieperiode tussen het kopiëren van het bestand en het toevoegen ervan aan de kluis.

Nee, nee, het bestand bestaat niet. Ik wil dat het automatisch wordt aangemaakt. Ik heb geen bestanden, alleen een Excel-lijst met codes die ik moet maken. Ik wil dat het aanmaken van bestanden ook automatisch gaat.

We komen terug op wat Cyril.f hierboven zei, je moet een sjabloonbestand maken, het onder de nieuwe naam kopiëren, de variabelen erop toepassen en het vervolgens archiveren.

Voor kopiëren, zie http://help.solidworks.com/2014/English/api/epdmapi/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFolder5~CopyFile.html

Zie http://help.solidworks.com/2014/English/api/epdmapi/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmEnumeratorVariable8.html voor meer informatie over variabelen

Voor archivering, zie http://help.solidworks.com/2014/English/api/epdmapi/EPDM.Interop.epdm~EPDM.Interop.epdm.IEdmFile5~UnlockFile.html

Vriendelijke groeten

1 like

OK. Ik wilde macro vermijden om wat tijd te besparen, maar als het moet!

Heel erg bedankt:)

Een deel van de codes (had geen tijd om alles in één te compileren, dus ik zal me moeten aanpassen)

Hernoemen:

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

Een bestand verplaatsen:

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

Kaart Updates

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

Ik kan ondersteuning bieden als dat nodig is, maar niet volledig beschikbaar.

1 like

Ik heb weggelaten, kopiëren door terloops te hernoemen (meer geautomatiseerd dan kopiëren en dan hernoemen)

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

 

Heel erg bedankt, ik zal dit uitbuiten en zien wat er gebeurt!