iCAx开思网

标题: 【api】如何获得零件的预览图 [打印本页]

作者: kkklj    时间: 2014-12-19 22:24
标题: 【api】如何获得零件的预览图
如题,之前找到GetPreviewBitmapfile,可是输出的图片惨不忍睹。不知道哪位能指点一二

作者: vincent3166    时间: 2014-12-20 00:54
这样?[attach]1212876[/attach]

作者: kkklj    时间: 2014-12-20 13:10
对,请问怎么实现的?
作者: vincent3166    时间: 2014-12-20 20:12
本帖最后由 vincent3166 于 2014-12-21 13:02 编辑
kkklj 发表于 2014-12-20 13:10
对,请问怎么实现的?


关键的代码如附件里的code.txt所示。

另外,2楼的演示里,看到的窗体,其实隐藏了一个userform1.listbox1 的控件,我让它装载所有零件的完整路径。作为阅读code时,需要注意这一点。

[attach]1212934[/attach]


作者: kkklj    时间: 2014-12-21 10:56
感谢vincent3166详细解答,不过买不起code.rar。幸好关键代码已经很详细了哈。
不过貌似GetPreviewBitmap不支持64位....适用于64位机的函数用什么呢?
另外看到你之前有个帖子说的是加载了个 eDrawings控件,想问下,应该是加载哪个呢?
作者: vincent3166    时间: 2014-12-21 13:07
本帖最后由 vincent3166 于 2014-12-21 13:08 编辑
kkklj 发表于 2014-12-21 10:56
感谢vincent3166详细解答,不过买不起code.rar。幸好关键代码已经很详细了哈。
不过貌似GetPreviewBitmap ...

1.我的64位电脑也可以这样运行哦。奇怪了。。呵呵。
2. 可以的。那个Excel 之后,我又尝试了在SW 里的VBA写了一下,是可以的。
1.加入 edrawings control 控件,然后写法,类似,就是把"sheet1." 改为:"userform1." 源代码,你可以在我发的那个贴里下载附件找到的。

https://www.icax.org/thread-953761-1-1.html

作者: kkklj    时间: 2014-12-21 14:28
确实在vba里面可以正常运行,但在vb环境下无法运行。
作者: vincent3166    时间: 2014-12-21 19:02
kkklj 发表于 2014-12-21 14:28
确实在vba里面可以正常运行,但在vb环境下无法运行。

那你就需要掌握 VBA 和VB之间的区别的编程用法。
加油

作者: kkklj    时间: 2014-12-22 13:08
唉,不知道从哪儿下手了...
作者: vincent3166    时间: 2014-12-22 14:23
kkklj 发表于 2014-12-22 13:08
唉,不知道从哪儿下手了...

其实,VB和VBA的差别不是很大。

主要在于VBA直接就是SW自带的,程序上,它跟SW之间的连接比较简单和直接。

而VB,设置SW的类库,编码上做好初步的连接,后面的编程和语法,跟VBA差不多的。

阁下用VB,请问是用什么版本的? VB6 还是VB.net ?

另外,如果你有事情要让我知道的话,麻烦你点击回复我的留言。不然,我是全然不知道阁下的留言的。除非我特地点进这个贴。

作者: kkklj    时间: 2014-12-22 16:43
vincent3166 发表于 2014-12-22 14:23
其实,VB和VBA的差别不是很大。

主要在于VBA直接就是SW自带的,程序上,它跟SW之间的连接比较简单和直 ...

这样回复能看到吗?
我用的是vb6,连接方面都能搞定。我不太想用vba来实现,因为用vba来实现的话,vba的窗体打开了以后,貌似无法在sw里面操作,这样总感觉不方便。

现在纠结的就是在vb6环境下这个预览没有找到合适的函数来实现。除非用笨办法,打开零件,输出图片,然后再次加载。
不知道你有什么好的建议和想法呢?

作者: vincent3166    时间: 2014-12-22 16:50
kkklj 发表于 2014-12-22 16:43
这样回复能看到吗?
我用的是vb6,连接方面都能搞定。我不太想用vba来实现,因为用vba来实现的话,vba的 ...

这样回复我能明显看到的。

VBA,你只要设置窗体的属性:showModal 属性设置=false,就可以操作SW了。如果你是SW2011以下版本,包括2011,64位上写的窗体会无法前端显示,要另外加入一些window的API来约束的。

VB6,我N年没碰过了。偶尔还会用一下VB.NET,这个会高级很多。
希望对你有帮助。
[attach]1213007[/attach]

作者: kkklj    时间: 2014-12-22 17:11
vincent3166 发表于 2014-12-22 16:50
这样回复我能明显看到的。

VBA,你只要设置窗体的属性:showModal 属性设置=false,就可以操作SW了。 ...

又学习了哈...呵呵,帮助很大,感谢感谢!不是专门搞这个的,再研究vb.net有点懒了。



作者: WingL86    时间: 2016-4-1 06:32
好好学习
作者: 83038113    时间: 2016-5-12 11:45
很神奇哦
作者: woojin    时间: 2017-1-13 11:47
vincent3166 发表于 2014-12-21 13:07
1.我的64位电脑也可以这样运行哦。奇怪了。。呵呵。
2. 可以的。那个Excel 之后,我又尝试了在SW 里的VB ...

64位的SW无法运行GetPreviewBitmap函数




欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3