繁体   English   中英

将点从DWG模型坐标转换为Autodesk Forge Viewer坐标

[英]Transform point from DWG model coordinates to autodesk forge viewer coordinates

我试图在Autodesk forge查看器中显示的模型上显示一个点。 但是,我无法弄清楚如何改变这一点。

Autodesk Forge Viewer中的“ 对齐坐标系 ”答案对我不起作用,因为viewer.model.getData()没有globalOffset属性。

我已经在此处https://github.com/umarmohammed/forgeviewerdemo上载了一些示例代码以及原始dwg文件

抱歉,我们的工程团队尚未收到任何回复。 似乎没有其他方法可以获取当前2d视图的viewportId ,并且这里可能存在浮动精度问题,这就是我上面提到的问题。 我会继续要求他们。 因此,这就是我发现从DWG坐标系到查看者的点转换的方法。

  1. 通过VertexBufferReader获取当前的视口ID,但是必须在加载的视图中指定2d item( dbId )才能从其中读取viewportId

     var viewportId = null; function GeometryCallback(viewer) { this.viewer = viewer; } GeometryCallback.prototype.onLineSegment = function(x1, y1, x2, y2, vpId) { viewportId = vpId; } var fragId = 0; var m = viewer.impl.getRenderProxy(viewer.model, fragId); var vbr = new Autodesk.Viewing.Private.VertexBufferReader(m.geometry, viewer.impl.use2dInstancing); vbr.enumGeomsForObject(dbId, new GeometryCallback()); 
  2. 将DWG项目指向Viewer坐标系。

     var vpXform = viewer.model.getPageToModelTransform(viewportId).clone(); var invVpXform = new WGS.LmvMatrix4(true); invVpXform.getInverse(vpXform, true); var ptInCadX = ...; var ptInCadY = ...; var verticesInViewer = new THREE.Vector3().set(ptInCadX, ptInCadY, 0).applyMatrix4(invVpXform); 

希望能帮助到你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM