重置运行图纸拆分
<!DOCTYPE html>
<html>
<!-- 识别dwg中的图框,并将单个图框内的图纸单独显示 -->
<head>
<meta charset="utf-8">
<title>图纸拆分</title>
<style type="text/css">
* {
margin: 0;
padding: 0;
}
html,
body {
height: 100%;
}
.buttons {
height: 40px;
width: 100%;
}
.button {
margin: 5px 0 5px 5px;
width: 100px;
height: 30px;
border-radius: 3px;
border: none;
background: #32D3A6;
color: #FFFFFF;
cursor: pointer;
outline: none;
}
.main {
display: flex;
flex-direction: column;
height: 100%;
}
#domId {
flex-grow: 1;
width: 100%;
}
</style>
</head>
<body>
<div class='main'>
<div class='buttons'>
<button class="button" id="btnLoadFull" onclick="loadFull()">加载完整图纸</button>
<button class="button" id="btnLoadSingle" onclick="loadSingle()">加载单张图纸</button>
</div>
<div id="domId"></div>
</div>
<script src="https://static.open.glodon.com/bimface/api/BimfaceSDKLoader/BimfaceSDKLoader@latest-release.js"></script>
<script>
const viewToken = '#viewToken#';
// 声明Viewer及App
let viewer, app;
let viewLoaded = false;
let drawingFrame = null;
let drawingCount = null;
// 配置JSSDK加载项
window.onload = function () {
let loaderConfig = new BimfaceSDKLoaderConfig();
loaderConfig.viewToken = viewToken;
BimfaceSDKLoader.load(loaderConfig, successCallback, failureCallback);
}
// 加载成功回调函数
function successCallback(viewMetaData) {
let dom4Show = document.getElementById('domId');
// 设置WebApplicationDrawing的配置项
let webAppConfig = new Glodon.Bimface.Application.WebApplicationDrawingConfig();
webAppConfig.domElement = dom4Show;
// 创建WebApplicationDrawing,用以显示模型
app = new Glodon.Bimface.Application.WebApplicationDrawing(webAppConfig);
viewer = app.getViewer();
viewer.loadDrawing({ viewToken });
// 添加视口变化的监听事件
viewer.addEventListener(Glodon.Bimface.Viewer.ViewerDrawingEvent.Loaded, function (data) {
viewLoaded = true;
home();
// 获取拆图结果,需要通过服务端API发起图纸拆分
if (!drawingCount) {
viewer.getDrawingFrame(function (data) {
drawingFrame = data.data[0].frames;
drawingCount = drawingFrame.length;
});
}
})
}
// 加载失败回调函数
function failureCallback(error) {
console.log(error);
}
let isFullDrawingLoaded = true;
function loadFull() {
if (!viewLoaded || isFullDrawingLoaded) {
return;
}
viewer.removeAllDrawings();
viewer.loadDrawing({ viewToken });
isFullDrawingLoaded = true;
}
function loadSingle() {
if (!viewLoaded) {
return;
}
viewer.removeAllDrawings();
let index = random(drawingCount);
drawingIndex = index + 1;
let frameId = drawingFrame[index].id;
viewer.loadDrawing({ viewToken, frameId });
console.log('Load drawing index: ' + drawingIndex + '.');
console.log('Drawing name is ' + drawingFrame[index].name + '.');
console.log('Drawing number is ' + drawingFrame[index].number + '.');
isFullDrawingLoaded = false;
}
function random(number) {
return Math.floor(Math.random() * number);
}
function home() {
window.requestAnimationFrame(() => {
viewer.home();
})
}
</script>
</body>
</html>