meng885234 / view-dxf

dxf图纸在线打开插件
Other
18 stars 2 forks source link

view-dxf

这是一个在线打开dxf图纸的插件,欢迎使用,如有不足,欢迎指正。 持续更新中...

install

安装方式:npm install view-dxf --save 引用方式:import Viewer from 'view-dxf'

依赖的第三方库

ThreeJS的支持:npm install three --save DxfParser的支持: npm install dxf-parser --save

使用例子

let parser = new DxfParser()
let dxfData = parser.parseSync('拿到的dxf文件数据')

// helvetiker_regular.typeface.json 代表的是json格式的字体库数据
// cad-view代表的是你插入dxf的节点id,width代表显示时的宽,height代表显示时的高

let loader = new THREE.FontLoader()
loader.load('/static/lib/fonts/helvetiker_regular.typeface.json', (response) => {
    let cadCanvas = new Viewer(dxfData, document.getElementById('cad-view'), width, height, response, (dxfCallback) => {
        console.log(dxfCallback, '用户操作之后的回调函数')
    })
})

DXF图纸模块

1,切换图纸调用的接口:
cadCanvas.sceneAddDataCtrl(dxfData)
2,刷新调用的接口:
cadCanvas.render()

批注模块

按钮功能对应的节点ID:

绘制矩形框:drawRectId 绘制云线框:drawCloudId 绘制平面框:drawPlaneId 绘制箭头:drawArrowId 绘制椭圆:drawEllipseId


查询到的批注列表,在画布上显示所需要的数据格式,以及调用的接口:

批量删除批注调用的接口:

单条删除批注调用的接口:

清空画布调用的接口:

隐藏与显示构件或者批注的接口:

定位当前批注到屏幕中间并高亮提示调用的接口:

传入坐标位置定位到屏幕中央:

初始化完成的返回数据:

批注绘制完成的返回数据:

绘制矩形框:drawRectType 绘制云线框:drawCloudType 绘制平面框:drawPlaneType 绘制箭头:drawArrowType 绘制椭圆:drawEllipseType


移动缩放之后的返回数据:

重新计算当前批注的屏幕位置:

新绘制的批注框与原来绘制的批注框的type都是selectedComponentDxf:

每次新增之后操作:

手指抬起的callback数据格式:
let data = {
    type: "touchendDxf",
    data: {}
}

修改绘制颜色值:

回归主视图 (重置视角):

修改显示窗口大小:

传入缩放值:

删除canvas节点:

手动关闭批注绘制开关:

移动端只使用批注这部分的功能的使用例子

// cad-view代表的是你插入dxf的节点id,width代表显示时的宽,height代表显示时的高
let cadCanvas = new Viewer({}, document.getElementById('cad-view'), width, height, {}, (dxfCallback) => {
    console.log(dxfCallback, '用户操作之后的回调函数')
})

// 如若切换的下面为图片,则需要这样调用,并且下方图片一定要根据canvas的宽高比动态居中全部显示出来
cadCanvas.sceneAddDataCtrl({}, {
    width: canvas宽度,
    height: canvas高度,
    imageWidth: 下方需要批注的图片的宽度,
    imageHeight: 下方需要批注的图片的高度
})

// 如若之后再修改屏幕的宽高
cadCanvas.resetCameraCtrl(width, height, imageWidth, imageHeight)

移动端操作方式说明

1,单指表示平移(如果打开批注,则为绘制) 2,双指表示缩放(如果打开批注,则不允许缩放) 3,三指表示平移

特殊情况说明: