【问题标题】:How can I get the viewer coordinates of AutoCAD geometry?如何获取 AutoCAD 几何图形的查看器坐标?
【发布时间】:2021-03-08 15:55:37
【问题描述】:

我正在使用 2D Autodesk Forge Viewer,并且正在寻找一种方法来确定 AutoCAD 中块参考对象的 X、Y 坐标。

我有几何元素的 dbID,并且。我可以通过NOP_VIEWER.getProperties()NOP_VIEWER.getDimensions() 获取一些信息,但是它们都没有X,Y 坐标。

【问题讨论】:

    标签: autodesk-forge autodesk-viewer


    【解决方案1】:

    我记得,位置数据确实不适用于块实体。如果对块的原生位置数据有任何评论,我将与工程师团队核实。一种替代方法是使用 AutoCAD 的 Forge Design Automation 自行提取数据,但需要额外的代码。

    在 Forge 转换源 DWG 后,实体将转换为基本体。通过API可以获取图元的几何信息,如直线起点、圆心。两篇博文详细讲述:

    https://forge.autodesk.com/blog/working-2d-and-3d-scenes-and-geometry-forge-viewer https://forge.autodesk.com/blog/working-2d-and-3d-scenes-and-geometry-forge-viewer

    本质上,它使用了回调函数:

      VertexBufferReader.prototype.enumGeomsForObject = function(dbId, callback)
    

    回调对象需要这些可选函数:

    • onLineSegment(x0, y0, x1, y1, viewport_id)

    • onCircularArc(centerX, centerY, startAngle, endAngle, radius, viewport_id)

    • onEllipticalArccenterX、centerY、startAngle、endAngle、major、minor、tilt、viewport_id)

    • onTriangleVertex(x, y, viewport_id)

    .

    【讨论】:

    • 感谢您的帮助,我能够拿您提供的文章并提出解决方案
    【解决方案2】:

    在下面小东的帮助下,我能够设计以下解决方案来使用对象的 dbId 获取对象的 X、Y 坐标

    const geoList = NOP_VIEWER.model.getGeometryList().geoms;
    const readers = [];
    
    for (const geom of geoList) {
      if (geom) {
        readers.push(new Autodesk.Viewing.Private.VertexBufferReader(geom, NOP_VIEWER.impl.use2dInstancing));
      }
    }
    
    const findObjectLocation = (objectId) => {
      for (const reader of readers) {
        let result;
        reader.enumGeomsForObject(objectId, {
          onLineSegment: (x, y) => {
            result = { x, y };
          },
        });
    
        if (result) {
          return result;
        }
      }
    
      throw new Error(`Unable to find requested object`);
    };
    

    【讨论】:

      猜你喜欢
      • 2020-05-20
      • 1970-01-01
      • 1970-01-01
      • 2018-06-16
      • 1970-01-01
      • 1970-01-01
      • 2020-04-25
      • 1970-01-01
      相关资源
      最近更新 更多