SWCadApplet.txt 14.7 KB
Newer Older
Z
zorrosoft 已提交
1
SWCAD网页组件:基于跨浏览器的原生小程序系统-PluginOK(牛插)中间件( https://github.com/wangzuohuai/WebRunLocal )网络高级版开发,底层调用达索公司的Solidworks软件VBA接口及eDrawings的OCX控件实现可程序化驱动的xt、step、sldprt等三维工程图在线查看、编辑等,可将Solidworks eDrawings软件窗口内嵌到网页指定区域运行并操控。最低可用在Chrome 41、Firefox 50、Edge 80(Chromium内核)、360极速/安全、IE 8、Opera、Electron、Vivaldi、Brave、QQ等浏览器,也兼容运行于这些浏览器的最新版本。
W
wangzuohuai 已提交
2 3 4 5 6 7

1、PluginOK(牛插)中间件的安装:
1)、如果是exe的安装程序,请直接运行安装;
2)、如果是绿色版的程序包,请解压到磁盘某个目录后,双击“InstallWrl.bat”进行安装;
3)、安装完成时会启动PluginOK中间件服务,在安装目录下的Data子目录有ZbaService.txt日志文件输出运行情况。

Z
zorrosoft 已提交
8
2、SWCAD网页组件控制相关接口:
W
wangzuohuai 已提交
9
说明:以下功能请通过Web Socket连接PluginOK主服务(ws://localhost:83?sid=12345&flag=1)后可执行,如默认侦听端口不是83(关于如何配置侦听端口,请参考SDK包中的文档“PluginOK开发者手册.pdf”),请在连接地址中指定端口号进行连接。
W
wangzuohuai 已提交
10
HTTP网页在线测试:http://local.zorrosoft.com/SWCadfull.html  HTTPS网页在线测试:https://local.zorrosoft.com/SWCadframe.html
W
wangzuohuai 已提交
11 12
如还需兼容IE浏览器使用,网络版测试网页中 <object ID="WrlWS" CLASSID="CLSID:C0971B90-4513-4E2D-A0B6-15B915FE748A" width="0" height="0"></object>
的CLSID需要替换为:21ADE2E6-B4DD-4F3E-8BD5-9DDAD1785F3A
W
wangzuohuai 已提交
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
前端集成可参考以上测试网页进行,HTML网页中需要嵌入以下类似代码;
A、标记小程序的显示位置和大小
.SWCadApplet {
            margin: 20px 0 0 20px;
            width: 480px;
            height: 320px;
            border: 1px solid blue;
        }
或者
.SWCadApplet {
            width: 480px;
            height: 320px;
            top: 20px;
            left: 20px;
            border: 1px solid blue;
        }
如果在网页Header区没有标记小程序初始显示位置和大小,请在启动小程序的JSON参数里,添加以下参数:
"Left":20,"Top":20,"Width":480,"Height":320

B、网页中嵌入元素
支持IFrame的:
<iframe name="SWCadApplet" id="SWCadApplet" src="SWCadApplet3.html" frameborder="0" align="left" width="550" height="540" scrolling="no></iframe>
或者直接用
<div id="SWCadApplet" class="SWCadApplet"</div>

另外需要嵌入用到的JS脚本,脚本程序是完全开源的。

40
1)、请求启动SWCAD网页组件实现网页中局部加载xt、step等文档进行操作:
W
wangzuohuai 已提交
41 42
Type为浏览器类型,传0自动判断(前提是当前浏览器已启动并显示在最前端,Flag指定当前页加载时必须是0) 可强制指定浏览器类型Type(2代表Chrome 4代表Firefox 8代表Opera 16代表Edge(Chromium内核) 32代表360极速浏览器 33代表360安全浏览器 34代表360企业安全浏览器 50代表QQ浏览器 60代表搜狗浏览器)
Title:网页标题中的关键词
43 44 45 46 47 48
Url:加载小程序所在的网页实际地址,在网页中指定小程序的显示位置和大小,不建议使用了,建议改用Web参数
Flag掩码标记:1指定新标签加载(1和16都不指定时为当前页加载) 2网页组件显示窗口边框 4不自动裁剪越界窗口 8自动适配网页高度和宽度显示 64启用Web参数 128防截屏 256强制显示到副屏 512允许同一网页加载多实例
Web:打开配置(新增方式),可代替Url使用,Flag值+64使用此配置,此命令中必须指定Left、Top、Width、Height的值
Web中参数说明:
	Edit代表编辑权限 1只读打开
	DataPath代表文档查找和保存默认路径
W
wangzuohuai 已提交
49
IframeX和IframeY分别为iframe嵌套的横竖偏移修正坐标
W
wangzuohuai 已提交
50
BarW和BarH分别是网页右侧和底部预留区域,ScrollTop为顶部滚动预留高度
51 52
网页组件实际显示首先会基于Url或Web中指定的坐标和大小,再根据IframeX、IframeY、BarW、BarH设定的值做修正
Option:0是启动Solidworks实现在线编辑(推荐用2015及以上版本,可根据具体版本定制) 1启动eDrawings在线查看
W
wangzuohuai 已提交
53
Open:为需要打开的文档路径,磁盘目录斜杠用/
54
注意:Open、Web中如果有特殊字符= & 双引号或中文等,需要用URL编码处理后传递
W
wangzuohuai 已提交
55 56
举例:
自动识别当前浏览器并启动Solidworks程序在线编辑xt、step等文档
57
{"req":"Wrl_SWCadApplet","rid":6,"para":{"Type":"0","Title":"Solidworks Applet","Flag":66,"Left":20,"Top":20,"Width":480,"Height":320,"IframeX":0,"IframeY":0,"BarW":0,"BarH":0,"ScrollTop":0,"Web":[],"Option":"0","Open":"D:/Zorro/test.xt"}}
W
wangzuohuai 已提交
58

59 60
自动识别当前浏览器并启动eDrawings程序在线查看或转换xt、step文档
{"req":"Wrl_SWCadApplet","rid":6,"para":{"Type":"0","Title":"Solidworks Applet","Flag":66,"Left":20,"Top":20,"Width":480,"Height":320,"IframeX":0,"IframeY":0,"BarW":0,"BarH":0,"ScrollTop":0,"Web":[],"Option":"1","Open":"D:/Zorro/test.xt"}}
W
wangzuohuai 已提交
61

62 63
自动识别当前浏览器指定位置自动适配网页区启动(推荐方式启动):
{"req":"Wrl_SWCadApplet","rid":6,"para":{"Type":"0","Title":"Solidworks Applet","Flag":72,"Left":0,"Top":0,"Width":0,"Height":0,"IframeX":0,"IframeY":0,"BarW":0,"BarH":0,"ScrollTop":0,"Web":[],"Option":"0","Open":"D:/Zorro/test.xt"}}
W
wangzuohuai 已提交
64 65 66 67 68

当前页指定位置自动适配网页加载测试
http://local.zorrosoft.com/SWCadframe.html

启动后会前后收到三个JSON数据包
Z
zorrosoft 已提交
69
A、{"ret":0,"rid":8,"data":{"ID":7}}
W
wangzuohuai 已提交
70
代表小程序WS侦听服务就绪
Z
zorrosoft 已提交
71
B、{"event":"Wrl_Listen","aid":7,"rid":8,"data":{"SID":"123","PID":"SWCadApplet","port":1010}}
W
wangzuohuai 已提交
72
返回的侦听端口,可再建立一个Web Socket连接后,调用小程序中的相关功能,比如对图纸进行缩放。
W
wangzuohuai 已提交
73
代表小程序创建成功,返回ID为当前小程序运行ID,通过此ID,可执行Wrl_AppletControl、Wrl_AppletScroll、Wrl_AppletResize等命令。
Z
zorrosoft 已提交
74
C、{"event":"Wrl_AppletOK","aid":7,"rid":8,"data":{"SID":"123","PID":"SWCadApplet","Port":1010}}
W
wangzuohuai 已提交
75

Z
zorrosoft 已提交
76
2)、请求控制SWCAD网页组件:
W
wangzuohuai 已提交
77
当前端不再需要小程序时可指定关闭,或者显示/隐藏及全屏显示等
78
ID为启动小程序时返回JSON中的ID值,Code代表控制类型掩码:1正常关闭 128强制迅速关闭 2全屏显示 4自动隐藏 8还原显示 16自动适配网页高度和宽度显示模式切换 32强制隐藏。其中全屏显示2,可直接通过热键ESC或取消,4和32隐藏后可通过8恢复显示
W
wangzuohuai 已提交
79 80
{"req":"Wrl_AppletControl","rid":2,"para":{"ID":"1","Code":4}}

Z
zorrosoft 已提交
81
3)、请求滚动SWCAD网页组件:
W
wangzuohuai 已提交
82 83 84 85 86 87
当前端截取到网页滚动通知时,需要调用此接口实现小程序和网页的滚动联动
ID为启动小程序时返回JSON中的ID值
Code为滚动方向1是水平直,2是垂直,3是同时
Left为横向滚动条位置,Top为纵向滚动条位置
{"req":"Wrl_AppletScroll","rid":3,"para":{"ID":"1","Code":2,"Left":0,"Top":100}}

Z
zorrosoft 已提交
88
4)、请求改变SWCAD网页组件显示位置或大小:
W
wangzuohuai 已提交
89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
当前端网页显示区域缩放时,可动态修改小程序的显示位置或大小
ID为启动小程序时返回JSON中的ID值,Width和Height分别为新的宽度和高度,X和Y分别为新的显示位置,不指定时保持不变,指定时原设置的IframeX和IframeY失效
{"req":"Wrl_AppletResize","rid":4,"para":{"ID":1,"Width":500,"Height":600}}
或同时设置小程序显示起始坐标
{"req":"Wrl_AppletResize","rid":5,"para":{"ID":1,"Width":500,"Height":600,"X":20,"Y":20}}

5)、请求设置网页预留右侧宽度和底部高度,滚动条信息、垂直滚动及水平滚动位置:
当小程序显示区域超过当前网页时,需去除滚动条的显示影响
ID为启动小程序时返回JSON中的ID值,BarW为预留右侧宽度 BarH为预留底部高度
Code 1代表有水平滚动条,2代表有垂直滚动条,3代表都有
ScrollTop垂直滚动条位置 ScrollTop水平滚动条位置
{"req":"Wrl_ScrollBar","rid":6,"para":{"ID":"1","Code":2,"BarW":0,"BarH":0,"ScrollTop":0,"ScrollLeft":0}}

6)、请求对小程序窗口做Alpha透明处理,便于前端临时显示覆盖到小程序窗口的菜单等:
ID为Wrl_ACADApplet启动小程序时返回的ID值,Alpha为透明度百分比,1-100
{"req":"Wrl_AppletAlpha","rid":7,"para":{"ID":1,"Alpha":30}}

7)、请求对小程序窗口内容进行截图:
ID为启动小程序时返回JSON中的ID值,
File为指定截图文件保存路径或扩展名
Base64指定为1时代表返回BASE64编码的图像内容
Z
zorrosoft 已提交
110
{"req":"Wrl_AppletSnap","rid":10,"para":{"ID":1,"Base64":1,"File":".jpg"}}
W
wangzuohuai 已提交
111 112

8)、请求缩放内嵌网页小程序,用于浏览器网页按比例缩放,一般不需要处理:
W
wangzuohuai 已提交
113
ID为启动小程序时返回JSON中的ID值,不指定Scale时,获取当前小程序所用的缩放百分比,一般和系统缩放比例一致
W
wangzuohuai 已提交
114 115 116
{"req":"Wrl_AppletScale","rid":11,"para":{"ID":1,"Scale":120}}

3、小程序安装、升级、卸载
Z
zorrosoft 已提交
117
1)、请求安装SWCAD网页组件
W
wangzuohuai 已提交
118 119
请在测试网页输入框中,输入如下请求,然后点击发送,完成安装:

120
{"req":"Plugin_Install","rid":1,"para":{"Name":"SWCAD网页组件","PID":"SWCadApplet","Date":"2023-09-07","Desc":"PluginOK之上跨浏览器的网页内嵌Solidworks软件实现在线编辑三维工程图小程序,支持在Chrome、Edge、Firefox、IE、Oprea、360、QQ等最新版本浏览器网页中内嵌Solidworks等程序进行在线编辑、查看或审阅三维工程图","DownAddr":"http://local.zorrosoft.com/Files/Net/SWCadApplet.pid","MD5":"30EE634D3AD7A67D6A2D5D986E7B4690","Version":"2.2.10.10","Size":2195456,"HideIns":0,"Type":8,"Cookie":"","Auth":"","TK":"2DB2F5AB5909A3E662490E507C5223A245F4BB1D1BA82AF0682042E9D81CB17456684BD8BFBDEF8FDD8110546FC194CE2D9A56598E7129A2C1F22E9F3C861B58766F9E77BD5D5ECEC64FFA9E2068E77D6677359FE8CAAC4E5012D6604F9F33847DAAC025A73D8557FCA9E0D69E5C4B8A7894DB91617CFBBAEB7CAC4624BFFD5B2CFB467516ABC71AF7A81C2DC435B2709E26F5A132B095881A26E329DD6589CFF706612C0BB690A23D5B2C977FF32541129D0E4BF6806E28EFE986EE34B280F9D3085EC21C5641851773041499D691B5FCE88D8212D2989CAAE37E9F7A967EFAA197C17A2CAF7DD826C46C8194F7335032754CD63208567B7DDC346119677B5D"}}
W
wangzuohuai 已提交
121 122 123 124

启动安装后,会不断收到安装进度直到安装结束。
在发布时,也可以把此小程序目录文件和中间件一起打包后发布,不用单独分发。

Z
zorrosoft 已提交
125
2)、请求升级SWCAD网页组件:
W
wangzuohuai 已提交
126

127
{"req":"Plugin_Update","rid":1,"para":{"Name":"SWCAD网页组件","PID":"SWCadApplet","Date":"2023-09-07","Desc":"PluginOK之上跨浏览器的网页内嵌Solidworks软件实现在线编辑三维工程图小程序,支持在Chrome、Edge、Firefox、IE、Oprea、360、QQ等最新版本浏览器网页中内嵌Solidworks等程序进行在线编辑、查看或审阅三维工程图","DownAddr":"http://local.zorrosoft.com/Files/Net/SWCadApplet_Update.pid","MD5":"557FEED9CED868B15D06CE271C62C3A2","Version":"2.2.10.10","Size":2195456,"HideIns":0,"Type":8,"Cookie":"","Auth":"","TK":"5335DBDE4E6C692D0362B484D1A122B96B885780C2B2672CB82ABE804FBE1BED6BC54FF17A6D11F241F2E34B20FBCCE10A8036BED0B07C2D82F4B4F7C5AF8F1EB633363F83BE2E3A8B0CF4D38992F75FEA07B827ACCF4F3046EEFA9CB2445AE6E8A6F03E1627C7FA42449AE8F88CBA75743C8054896B4F0BA1EBBC5D56B29F919438905750ACAF5A91C33D51F63826D90ACEA33526BB482CC12F38D463DC8890FA5BEA514EEEE951A680D3D8B22285F5B71CFB9CB0FB0DDDBFF65C4FDAD6D95056E49CA317FA1EC8422D5913406D36F30F316E79A73C932CD36892DBBA6C2BDE19592EFBA01B692EE0A47D4DFDFAD7C68BBA0C051A31D80376FC9F3AD2F41610"}}
W
wangzuohuai 已提交
128

W
wangzuohuai 已提交
129 130
以上安装和升级的JSON请求包,可能因版本升级导致内容不同,如遇安装或升级时报错,请联系客服获取最新的请求包。 

Z
zorrosoft 已提交
131
3)、请求卸载SWCAD网页组件:
W
wangzuohuai 已提交
132
正式版需要添加TK校验,具体规则请参考SDK包中文档“PluginOK中间件安全解决方案.doc”,可在SDK包中的打包程序ZbaPackage.exe的中间件维护生成带TK的请求。
W
wangzuohuai 已提交
133 134
{"req":"Plugin_Remove","rid":3,"para":{"PID":"SWCadApplet","Type":8}}

Z
zorrosoft 已提交
135
4、SWCAD网页组件转调用软件VBA接口及eDrawings的OCX控件接口,先根据Wrl_SWCadApplet请求启动后返回的端口号,新建立一个WebSocket连接后可执行如下指令:
W
wangzuohuai 已提交
136 137 138
A、常用功能请求:

1)、请求退出小程序
W
wangzuohuai 已提交
139
正常关闭小程序流程和方法:先在此WS连接里请求此功能,前端收到关闭此连接通知时,再关闭到中间件的WS连接
Z
zorrosoft 已提交
140
{"req":"CAD_Exit","rid":1,"para":{}}
W
wangzuohuai 已提交
141
无返回
W
wangzuohuai 已提交
142 143

2)、请求关闭当前打开的文档
Z
zorrosoft 已提交
144
{"req":"CAD_Close","rid":2,"para":{}}
W
wangzuohuai 已提交
145 146 147 148
返回: {"ret":0,"rid":2,"data":{"Ret":"0"}} Ret为0代表成功

3)、请求打开文档
Open打开文档路径,如有特殊字符或中文的需要用URLCode先编码 PW打开密码 Read为1代表只读打开
Z
zorrosoft 已提交
149
{"req":"CAD_Open","rid":3,"para":{"Open":"D:/Zorro/Test.sldprt","PW":"","Read":0}}
W
wangzuohuai 已提交
150 151 152 153 154
返回: {"ret":0,"rid":3,"data":{"Ret":"0"}} Ret为0代表成功

4)、打开文档转换到PDF
SrcFile打开文档路径,如有特殊字符或中文的需要用URLCode先编码 PW打开密码,如已打开可不设置
DestFile转换目标路径,如有特殊字符或中文的需要用URLCode先编码
Z
zorrosoft 已提交
155
{"req":"CAD_ConvertTo","rid":4,"para":{"SrcFile":"D:/Zorro/Test.sldprt","DestFile":"D:/Zorro/test2.pdf","PW":""}}
W
wangzuohuai 已提交
156 157
返回: {"ret":0,"rid":4,"data":{"Ret":"0"}} Ret为0代表成功

Z
zorrosoft 已提交
158 159 160 161 162 163 164
5)网络文件操作
Type 1上传文件 0下载文件
Agent、Cookie及Auth Cookie可传浏览器中的Cookie或通过Auth授权验证上传权限,默认为空,非空时需要先做UrlEnocde编码
Local 上传文件本地路径或下载文件保存路径,如果不指定默认用当前打开文档,需要做UrlEncode编码
Url 上传或下载的地址,需要做UrlEncode编码
Type为1时,可增加参数Para,对应POST数据包中需要传递的参数param 默认上传文件名为upfile,否则可通过NodeName设置自己的文件参数名称
Type为0时,可增加参数MD5及FileSize,下载文件的哈希值及大小,用于校验下载文件的完整性,可默认空或0
165
{"req":"CAD_NetFile","rid":9,"para":{"Type":0,"Agent":"","Cookie":"","Auth":"","FileSize":0,"MD5":"","Local":"C:/OfficeDoc/test.sldprt","Url":"http://local.zorrosoft.com/Files/test.sldprt"}}
Z
zorrosoft 已提交
166 167 168
{"req":"CAD_NetFile","rid":9,"para":{"Type":1,"Agent":"","Cookie":"","Auth":"","Para":"","Local":"","Url":"http://zorrosoft.com/wp-admin/admin-ajax.php"}}
返回:{"ret":0,"rid":35,"data":{"Ret":"0"}}

W
wangzuohuai 已提交
169 170 171 172 173 174
5、事件通知:
A、

B、PluginOK支持的事件通知:

1) 小程序是否响应了热键全屏
Z
zorrosoft 已提交
175
{"event":"CAD_FullScreen","data":{"FullScreen":0}} FullScreen为当前是否全屏标记
W
wangzuohuai 已提交
176 177 178 179 180 181

2) Wrl_AppletExit 小程序退出通知
{"event":"Wrl_AppletExit","data":{"ID":1}}

6、其它
请求参数的JSON数据包,请确保是UTF-8无签名的编码。
W
wangzuohuai 已提交
182
更多接口请求说明,请参考安装目录中的文档TestWrl.txt、SDK包中的“PluginOK开发者手册.pdf”及“PluginOK中间件安全解决方案.pdf”。
W
wangzuohuai 已提交
183
如还有疑问请直接联系客服 加微信:ZorroSoft,或加QQ群:23126938