cbim-dxf-viewer

It is a fork of https://github.com/vagran/dxf-viewer. We need it to make some improvements over the original code: * Support viewports * Switch layouts * Fixed some Insert Entity position rotation bugs

Usage no npm install needed!

<script type="module">
  import cbimDxfViewer from 'https://cdn.skypack.dev/cbim-dxf-viewer';
</script>

README

It is a fork of https://github.com/vagran/dxf-viewer. We need it to make some improvements over the original code:

  • Support viewports
  • Switch layouts
  • Fixed some Insert Entity position rotation bugs

https://github.com/vagran/dxf-viewer is a fork of https://github.com/gdsestimating/dxf-parser, and make some improvements over the original code:

  • Support additional DXF groups.
  • Stream parsing - parse text as it is fetched without buffering. This allows parsing huge files with limited memory consumption.
  • Result filtering - do not include data which is not needed on further processing steps, filtering it on-the-fly, thus minimizing memory consumption even more.
  • Additional features support (e.g. hatching).

使用方法

import {DXFViewer} from 'cbim-dxf-viewer'
// ...
// 初始化 dxf 容器
let viewer = new DXFViewer(
    // dom
    document.getElementById('xxx'),
    // options
    {   
        // 自动调整大小
        autoResize: true,
        // 背景颜色
        clearColor: '#000',
    })
// 监听事件
viewer.Subscribe('loaded', data => {
    // 监听加载完成事件,e.g. 在此处结束loading、获取图层等
    // ....
})

// 业务开始
viewer.Load({
    url: 'xxx.dxf',
    // 所需字体
    fonts: ['fangsong.ttf', 'changfangsong.ttf', '...'],
    // 进度
    processCbk: (type, total, ready) => {
        // 进度条数值变化等
    }
})

// ...

// 页面关闭前手动销毁以释放资源
viewer.Destroy()

API

方法 参数 描述
GetLayouts - 获取 layout列表
SetLayoutView name: string 切换 layout
GetLayers - 获取图层列表
ShowLayer name:string
show: boolean
获取图层列表
SetSelectable value: boolean 开启/关闭 选择(高亮)构件功能

TODO