[英]Unable to retrieve frag IDs in autodesk forge viewer
我目前正在尝试获得一个非常简单的解决方案,作为概念验证,然后再进行任何伪造。 我已经阅读了基本的应用程序快速入门指南,基本的扩展指南以及查看器,它与我使用Autodesk Pipe 3D创建的文件(分别作为dwg文件和dwfx都尝试过)完美兼容。
我要做的就是更改模型的颜色,所有可以找到的指南都使用类似的方法,但是它们都需要您获取FragID列表才能应用材料
var it = viewer.model.getData().instanceTree;
var allDbIds = Object.keys(it.nodeAccess.dbIdToIndex);
for (var i=0; i<allDbIds.length; i++) {
var dbid = allDbIds[i];
var fragIds = []
try {
it.enumNodeFragments(dbid, function(fragId){
fragIds.push(fragId)
})
}catch(error) {
console.error(error);
}
fragIds.forEach(function(fragId) {
//code to actually change colour
})
它设法获得dbid罚款并带回很多,但是当它尝试获取碎片ID时却什么也没带回来。 它不会破坏它,什么也不会带回来,但是很难找到从哪里真正寻找原因或从哪里开始
第一件事是在for
循环之外定义fragIds
数组,因此它不会在每次迭代时被覆盖。
您可以使用以下代码将特定材料设置为fragId:
fragIds.forEach((fragId) => {
model.getFragmentList().setMaterial(
fragId, material)
})
查看此线程以获取有关该主题的更多信息:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.