1

我正在为solidworks pdm 编写插件。我使用 epdm 互操作库。但是我对 Getthumbnail2 方法有一些问题。我以这种方式使用:

IEdmFile5 file5 = vault.GetFileFromPath(filePath, out IEdmFolder5 folder5);
            var version = file5.CurrentVersion;
            IEdmFile15 file15 = (IEdmFile15)file5;
            var obj = file15.GetThumbnail2(version);

            Image imgPreview = PictureDispC.PictureDispConverter.Convert(obj);
            imgPreview.Save(GetTempPath() + parcaadi + ".bmp", System.Drawing.Imaging.ImageFormat.Bmp);
            imgPreview.Dispose();

我遇到了这个错误代码:

System.Runtime.InteropServices.COMException
  HResult=0x8004040B
  İleti=HRESULT özel durum döndürdü: 0x8004040B

在这条线上;

var obj = file15.GetThumbnail2(version);

方法声明:https ://help.solidworks.com/2019/english/api/epdmapi/epdm.interop.epdm~epdm.interop.epdm.iedmfile15~getthumbnail2.html

用法示例:https ://help.solidworks.com/2019/english/api/epdmapi/Get_File_Thumbnail_by_Version_Example_CSharp.htm

4

1 回答 1

0

唯一的问题是它必须登录才能工作。

IEdmVault5 vault5 = new EdmVault5();
var vaultName = vault5.GetVaultNameFromPath(filePath);
vault5.Login("admin", "", vaultName);
IEdmFile5 file5 = vault5.GetFileFromPath(filePath, out IEdmFolder5 folder5);
于 2020-04-13T07:40:23.763 回答