断断续续摸索了一个月终于算是解决了,虽然不完美,但总算达到目标。
目标:在VS2010中集成autovue控件,用于文档或图纸浏览。
1、到Oracle官网下载AutoVue20.2.1,演示版30天,安装即可。
重复安装时如果提示“不允许重新安装演示版”,请删除注册表HKEY_CLASSES_ROOT\AVDD\Data项。
2、在VS2010中,添加控件jVueAX.ocx
将控件拖入Winform时报“创建组建AxHost错误”,这是一个非常棘手的错误,眼看就要成功了,结果遇到硬骨头。
如果你使用的AutoVue19.3中的AutoVueX.ocx,就一切顺利,不足的是,AutoVue19.3看不了SolidWorks2010以后创建的图纸。
所以还得研究AutoVue20.2.1。
步骤a:打开Vs2010命令窗口
步骤b:生成key,sn -k autovue20.2.snk
步骤c:aximp "D:\Oracle\AutoVue Desktop Deployment\bin\jVueAX.ocx" /keyfile:autovue20.2.snk
步骤d:Gacutil -i AxJVueAXLib.dll
步骤e:Gacutil -i JVueAXLib.dll
步骤f:在项目中引用
3、手工创建ax
private AxJVueAXLib.AxJVueAXControl ax1;
this.ax1 = new AxJVueAXLib.AxJVueAXControl();
this.ax1.Location = new System.Drawing.Point(0, 100);
this.ax1.Dock = System.Windows.Forms.DockStyle.Fill;
((System.ComponentModel.ISupportInitialize)(this.ax1)).BeginInit();
this.Controls.Add(this.ax1);
((System.ComponentModel.ISupportInitialize)(this.ax1)).EndInit();
4、初始化ax1.initActiveX();
5、设置图纸文件路径
ax1.setFile("upload://" + filename);
//ax1.setFile("http://ip/WebContent/123.SLDPRT");
6、设置控件菜单
ax1.setValue("GUIFILE", "viewonly.gui");
注:加在initActiveX之前;viewonly.gui放置在AutoVue安装目录bin之下。
文档参考:http://www.oracle.com/technetwork/documentation/autovue-091442.html
补充:为了达到对控件的控制,需要修改GUI,将PERM_READ或PERM_NONE替换成PERM_HIDE
新窗体
VueActionNewWindow, , PERM_READ
打开
VueActionFileOpen, , PERM_READ
浏览文件
VueActionFileBrowse, , PERM_READ
打印
VueActionFilePrint, Print/PrintPreview/BatchPrint, PERM_READ
转换
最近打开的文件
VueActionFileMRU, , PERM_READ
帮助
VueActionHelp, Contents, PERM_NONE
关于
VueActionHelp, About, PERM_NONE