Forge 2D viewer圆弧测量无法捕捉DWG文件圆弧端点问题咨询
Forge 2D Viewer DWG格式圆弧端点测量捕捉失效修复方案
问题表现
使用Forge 2D Viewer进行圆弧测量操作时,加载DWG格式转换后的二维图纸,测量捕捉功能无法吸附到圆弧端点位置,无法完成精准测量。
问题原因
Forge Viewer内置测量工具默认的捕捉规则未将2D圆弧端点纳入高优先级捕捉范围,DWG转换输出的f2d格式文件中,圆弧端点的几何标识默认被归类为边几何附属信息,测量工具的命中检测逻辑默认跳过该类端点,仅识别圆弧边、圆心位置的捕捉点。
修复代码
在Viewer初始化、几何加载完成后注入以下配置,手动开启圆弧端点捕捉并调整命中优先级:
viewer.addEventListener(Autodesk.Viewing.GEOMETRY_LOADED_EVENT, () => { const measureExt = viewer.getExtension('Autodesk.Measure'); if (!measureExt) return; const measureTool = measureExt.measureTool; // 注册端点捕捉类型 if (!measureTool.snapTypes.includes(Autodesk.Viewing.MeasureCommon.SnapType.SNAP_ENDPOINT)) { measureTool.snapTypes.push(Autodesk.Viewing.MeasureCommon.SnapType.SNAP_ENDPOINT); } // 调整圆弧端点捕捉优先级 measureTool.addSnapCandidateFilter(candidate => { if (candidate.geomType === Autodesk.Viewing.MeasureCommon.GeomType.ARC) { if (candidate.snapType === Autodesk.Viewing.MeasureCommon.SnapType.SNAP_ENDPOINT) { candidate.priority = 10; // 优先级高于默认圆弧边捕捉的5 } } return true; }); });
适配说明
- 若使用v6及更早版本Viewer,需将代码中
Autodesk.Viewing.MeasureCommon替换为Autodesk.Viewing.MeasurementCommon - 若圆弧位于嵌套块或外部参照内,需在DWG格式转换时传入
generateMasterViews: true参数,保证块内几何端点数据被正确导出 - 椭圆弧、样条拟合类非标圆弧无法通过上述配置实现端点捕捉,需自行解析几何属性手动添加捕捉点
现象参考


原问题配套测试文件可通过Stack Exchange原提问渠道获取
内容的提问来源于stack exchange,提问作者Ján Slivka
相关产品推荐
相关产品推荐

