如何在 forge viewer V7* 中使用 .impl 方法
Posted
技术标签:
【中文标题】如何在 forge viewer V7* 中使用 .impl 方法【英文标题】:how to use the .impl methods in forge viewer V7* 【发布时间】:2021-10-10 09:31:04 【问题描述】:我一直在 V6* 中使用以下 .impl 方法
viewerApp.getCurrentViewer().impl.invalidate viewerApp.getCurrentViewer().impl.matman()._materials
如何继续使用 V7*
谢谢
编辑:
var options =
env: 'AutodeskProduction',
api: 'derivativeV2',
getAccessToken: function(onTokenReady)
var token = accessToken;
var timeInSeconds = 3600;
onTokenReady(token, timeInSeconds);
;
var documentId = "urn:" + urn;
Autodesk.Viewing.Initializer(options, function()
var htmlDiv = document.getElementById('forgeViewer');
viewer = new Autodesk.Viewing.GuiViewer3D(htmlDiv);
var startedCode = viewer.start();
if (startedCode > 0)
console.error('Failed to create a Viewer: WebGL not supported.');
return;
console.log('Initialization complete, loading a model next...');
Autodesk.Viewing.Document.load(documentId, onDocumentLoadSuccess, onDocumentLoadFailure);
);
... 然后我使用 impl 方法如下..
var mats = viewer.impl.matman()._materials;
但我仍然得到错误
无法读取 null 的属性“impl”
不知道为什么,但可能是我的全局 viewer 变量为 null ,不知道为什么会发生这种情况或我做错了什么。
【问题讨论】:
这可能是时间问题 - 也许您正尝试在全局查看器变量初始化之前访问它。尝试在初始化viewer
变量的行上放置一个断点,看看它是否被及时调用。
【参考方案1】:
impl
下的任何内容通常被视为内部实现,因此不应依赖于生产代码。话虽如此,impl
属性仍然可用,如果需要,您可以在 Forge Viewer 版本 7.* 中使用它,如下所示:
const viewer = new Autodesk.Viewing.GuiViewer3D(...);
viewer.impl.invalidate();
viewer.impl.matman();
【讨论】:
谢谢,还有一件事forge.autodesk.com/blog/placing-custom-markup-dbid教程只支持viewer V7*? 我相信这个特殊功能也应该适用于 v6(从查看器 API 的角度来看,唯一需要的是将世界坐标转换为画布坐标,v6 绝对可以也这样做),但可能需要进行一些小的调整。 嗨@Petr,尽管对于V7 *,我收到以下错误,“无法读取未定义的属性'impl'”我正在尝试的是,var mats = viewerApp.impl.matman()。 _材料;' 我明白了。从 v6 迁移到 v7 时,您确实需要更改一些内容(请参阅 migration guide)。impl
对象仍然存在,但不是通过“查看器应用程序”(viewerApp.impl
) 访问它,您需要通过“Viewer3D”(viewer.impl
) 的实例访问它。
嗨@Petr,我仍然收到错误,所以我用我的代码sn-p更新了OP。以上是关于如何在 forge viewer V7* 中使用 .impl 方法的主要内容,如果未能解决你的问题,请参考以下文章
Autodesk forge viewer api v7.* 对齐多个 2d dwg 模型
Autodesk Forge Viewer v7 - setThemingColor
Forge Viewer v7* 中的 SELECTION_CHANGED_ EVENT 问题
Autodesk Forge Viewer PDF 捕捉和缩放问题