Hallo
Hier is de testcode die perfect voor mij werkt:
Dim swApp als object
Deel dimmen als object
Dim boolstatus als Booleaanse
Dim longstatus As Long, longwarnings As Long
Sub hoofd()
Stel swApp = Toepassing.SldWorks in
Dim Vault als nieuwe EdmVault5
Bestand dimmen als IEdmFile5
Map dimmen als IEdmFolder5
Vault.LoginAuto "Coffre_BE", 0
Bestand instellen = Vault.GetFileFromPath("C:\Coffre_BE\TEST\0088880001.SLDPRT", map)
Set Part = swApp.OpenDoc6(Folder.LocalPath & "/" & File.Name, 1, 2, "", longstatus, longwarnings)
swApp.ActivateDoc2 File.Name, False, longstatus
Stel swModel = swApp.ActiveDoc in
swModel.ViewZoomtofit2
Einde Sub
Voor het bestandspad is het normaal dat het een lokaal bestand is, omdat het degene is uit de lokale weergave van de kluis, het verbaast me alleen dat deze weergave in SOLIDWORKS-gegevens staat.
Om een mogelijk verschil in de positie van de kluisweergave tussen de verschillende stations te compenseren, kunt u beginnen met uw code, zoeken naar de kluisweergave en vervolgens uw bestandspad aanroepen dat begint met Vault.rootfolder.localpath, bijvoorbeeld:
kluis1. RootFolder.LocalPath + \TEST\0088880001.SLDPRT"
voorbeeld van het vinden van kluisweergaven in C# en vervolgens verbinding maken:
vault1 = nieuwe EdmVault5();
IEdmVault8 kluis = (IEdmVault8)kluis1;
EdmViewInfo[] Weergaven = null;
Gewelf. GetVaultViews(out Views, onwaar);
comboBox1.Items.Clear();
foreach (EdmViewInfo Weergave in weergaven)
{
comboBox1.Items.Add(View.mbsVaultName);
}
if (comboBox1.Items.Count > 0)
{
comboBox1.Text = (tekenreeks)comboBox1.Items[0];
}
als (!vault1. Is ingelogd)
{
kluis1. LoginAuto(comboBox1.Text, dit. Handvat.ToInt32());
}
Vriendelijke groeten