DXF查看器
如果您只需要查看DXF,请单击此处。
该软件包提供了用JavaScript编写的DXF 2D查看器组件。它使用WebGL(通过Trive.js库)渲染图纸。它是考虑到性能的精心制作的,旨在绘制巨大的现实文件而没有性能问题。
用法示例可在此处提供:https://github.com/vagran/dxf-viewer-example-src
部署演示:https://vagran.github.io/dxf-viewer-example/
安装
特征
- 渲染的文件获取,解析和准备工作的分离是可以轻松地使用提供的帮助者将其卸载到网络工作者的方式。因此,最重量的处理部分不会影响UI响应能力。上面的示例证明了这一技术。
- 几何批处理 - 在文件处理过程中创建了最小数量的渲染批次,从而最大程度地减少了所需的绘制呼叫数量。
- 实例渲染 - 具有不同变换(例如DXF块实例)多次渲染的功能,使用实例渲染WebGL功能通过单个绘制调用渲染。
- 多个字体支持。可以为文本渲染指定字体列表。支持RAW TTF文件。字体是懒惰的,一旦遇到的角色尚未通过已经加载的字体可用,请获取并检查下一个字体以获取必要的glyph。
- 层 - 创建渲染批处理时要考虑层,以便可以轻松隐藏/显示它们。
不完整的功能
仍然有许多不完整的功能。我将在有时间的时候尝试实施其中的一些。缺少实施的最重要原因是缺乏相应的示例文件。
- 流解析输入文件。当前,主要依靠DXF-Parser软件包,该软件包不是流解析器,因此在解析之前将整个文件缓冲。由于JS引擎中的字符串尺寸限制(也使缓冲区的不必要的记忆浪费),这阻止了支持大型DXF文件(高于Gigabyte)。
- 文字样式。当前,文本渲染仅使用指定顺序的指定字体。 DXF样式和字体属性被忽略。文字始终被填充。
- 对MTEXT的高级格式支持(字体,着色,堆叠)。
- 线模式 - 目前以连续样式渲染所有线条。我将使用在准备阶段生成的1-D纹理,纹理坐标(应考虑DXF顶点属性中的模式连续性标志),以及专用的着色器来实现此功能。
- 线模式具有形状(例如带圆形)。
- 宽线。当前,所有线条均呈现为细线。身体宽度未实现。
- 可变宽度线(即指定的启动和末端宽度)。
- 平滑的多线线(曲线拟合/样条拟合加法顶点)。
- 孵化实现的某些功能:外部孵化样式,固体/梯度填充,Mpolygon支持,双线,外部实体定义的边界。
- 块在网格中的嵌段。现在忽略网格属性。
- 尺寸特定的特征和样式(各种预定义的箭头块,文本定位调整,限制和公差)。尺寸类型以外的其他类型。
- 领导者
- 非UTF-8文件编码支持。当前,此类文件显示不正确。
$DWGCODEPAGE
参数被忽略。 - 完整的OCS支持。当前,假定实体挤出方向是 +z或-z(通常用于CAD中的特征镜像)。任意指示未正确处理。
- 纸张空间,布局(床单),视口。
- 许多不常用的DXF功能。

贡献
有关如何提出拉请请求(PRS)的详细信息,请参考贡献指南。该项目还需要各种示例文件以进行测试。如果您遇到DXF渲染的任何问题,则可以通过将问题附加到创建的问题来证明该问题的示例文件,这将不胜感激。在CAD软件中创建最小示例也可能非常有帮助。此外,在我无法访问的各种专有CAD软件中创建示例将是非常有价值的。由于在此项目中开始编码的入口级别很高,因此接收带有示例文件而不是拉的请求的详细问题报告通常更有用。
执照
该项目是根据Mozilla公共许可证2.0的条款许可的。
捐赠
想感谢项目维护者吗?这是链接: