我正在为我们的制造部门开发C#VSTA宏。
我正在使用SldWorks.GetPreviewBitMapFile
保存所选模型的位图预览,并将其显示在图片框中,如下所示:
除了奇怪的颜色外,代码看起来很好并且执行得很好:
bool status = swApp.GetPreviewBitmapFile(filepath, configuration, "D:\\preview.bmp");
pictureBox1.ImageLocation = "D:\\Preview.bmp";
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
pictureBox1.Refresh();
有没有人遇到类似问题,有什么补救措施?
答案 0 :(得分:2)
以下是工作代码的示例:
//to compare output
iSwApp.GetPreviewBitmapFile(@"c:\Path\Part1.SLDPRT", "Default", @"c:\Path\Part1_0.bmp");
object com = iSwApp.GetPreviewBitmap(@"c:\Path\Part1.SLDPRT", "Default");
stdole.StdPicture pic = com as stdole.StdPicture;
Bitmap bmp = Bitmap.FromHbitmap((IntPtr)pic.Handle);
bmp.Save(@"c:\Path\Part1_1.bmp");
关于来自SW API的GetPreviewBitmap的注释很少:
我只能在.NET加载项和VBA宏中使其在SolidWorks x64中运行。 如果您需要加载项示例,请告诉我。
答案 1 :(得分:1)
SW2016的更新。 GetPreviewBitmapFile函数适用于进程外Csharp控制台程序。但是,生成的位图的颜色非常奇怪。事实证明唯一有效的解决方案是使用SaveBmp函数。