Warm tip: This article is reproduced from serverfault.com, please click

autodesk forge-如何获取AutoCAD几何的查看器坐标?

(autodesk forge - How can I get the viewer coordinates of AutoCAD geometry?)

发布于 2020-11-25 18:27:53

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

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

Questioner
Wesley Reed
Viewed
0
Wesley Reed 2020-11-30 23:53:36

在下面的Xiaodong的帮助下,我能够设计出以下解决方案,以使用其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`);
};