我运行这段代码的时候,点击部件就会出现
Uncaught TypeError: Cannot read properties of undefined (reading 'position')at VertexEnumerator.js:87:28
这样的错误
const options = { env: "AutodeskProduction", api: "derivativeV2", getAccessToken: (callback) => { fetch("http://localhost:8080/api/auth/token") .then((response) => response.json()) .then((json) => { const auth = json.access_token; callback(auth, 3600); }); }, language: 'en'};Autodesk.Viewing.Initializer(options, () => { const urn = "dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6ZmRzaGZqc19mZHNrZmxzal8xMjM0NTY2Ni8lRTQlQkElOTQlRTglQkQlQjQlRTYlOTYlOUMlRTclQkElQkYlRTYlQTglQTElRTUlOUUlOEIlMjB2My5mM2Q"; let htmlDiv = document.getElementById("MyViewerDiv"); viewer = new Autodesk.Viewing.GuiViewer3D(htmlDiv); viewer.start(); loadModel(urn);});let loadModel = (urn) => { return new Promise((resolve, reject) => { function onDocumentLoadSuccess(doc) { const node = doc.getRoot().getDefaultGeometry(); viewer.loadDocumentNode(doc, node).then(() => { viewer.addEventListener( Autodesk.Viewing.GEOMETRY_LOADED_EVENT, setupModelInteraction ); }); resolve(); } Autodesk.Viewing.Document.load("urn:" + urn, onDocumentLoadSuccess, reject); });};const getModelNodeIds = (names, tree) => { const nodeIds = {}; names.forEach(name => { nodeIds[`${name}NodeId`] = findNodeIdbyName(name, tree); }); return nodeIds;};const setupModelInteraction = () => { const partNames = ["T1", "X1", "Z1", "Z2"]; let tree = viewer.model.getData().instanceTree; let nodeIds = getModelNodeIds(partNames, tree); console.log(nodeIds) setUpPiovt(nodeIds, tree)}const setUpPiovt = (nodeIds, tree) => { baseRodPivot(nodeIds.T1NodeId, tree)}const baseRodPivot = (ID_BaseRod, tree) => { let Pivot_BaseRod = new THREE.Mesh(new THREE.BoxGeometry(5, 5, 5), new THREE.MeshBasicMaterial({ color: 0xff0000 })); let Position_BaseRod = getFragmentWorldMatrixByNodeId(ID_BaseRod, tree).matrix[0].getPosition().clone(); Pivot_BaseRod.position.x = Position_BaseRod.x; Pivot_BaseRod.position.y = Position_BaseRod.y; Pivot_BaseRod.position.z = Position_BaseRod.z; viewer.impl.scene.add(Pivot_BaseRod);}
1.Position_BaseRod 不存在时,赋值必然失败.
2.Position_BaseRod 存在, 但没有position属性 先给position赋值
Pivot_BaseRod.position = {};Pivot_BaseRod.position.x = Position_BaseRod.x;Pivot_BaseRod.position.y = Position_BaseRod.y;Pivot_BaseRod.position.z = Position_BaseRod.z;
从你提供的代码和错误信息来看,错误发生在 VertexEnumerator.js 文件的第 87 行,错误信息是 "Cannot read properties of undefined (reading 'position')"。这通常意味着在这一行代码中,你试图访问一个未定义的对象的属性。
错误发生在 getFragmentWorldMatrixByNodeId
函数调用的结果中。看起来你试图从返回的 getFragmentWorldMatrixByNodeId
对象中获取位置信息(getPosition()
),但是这个对象可能并未定义,或者没有 getPosition()
方法。
问题可能在于 getFragmentWorldMatrixByNodeId
函数没有正确地返回一个包含 getPosition
方法的对象。你需要检查这个函数的实现以确保它返回的对象具有你期望的属性和方法。
不过,由于你没有提供 getFragmentWorldMatrixByNodeId
函数的代码,我无法给出具体的修复建议。我建议你检查一下这个函数的实现,特别是它如何处理可能导致未定义的情况的输入。例如,如果这个函数依赖于某些必须存在的全局对象或者状态,而这些对象或者状态不存在,那么它可能会返回未定义的结果。
另外,对于这段代码中的异步操作(例如 fetch 请求和 Autodesk.Viewing.Document.load 方法),你需要确保它们都完成了再尝试访问其返回的结果。否则,你可能会试图访问一个还未定义的结果。在你的代码中,这个问题可能发生在 onDocumentLoadSuccess
函数中尝试访问 doc
对象的时候,或者在 loadModel
函数中尝试访问 viewer.loadDocumentNode
的结果的时候。你可以通过在这些函数中添加 .then()
来确保异步操作完成后再执行后续代码。
假设我们有以下三个类: 这将产生以下错误: 既然是整数,为什么它不选择类型?
问题内容: 考虑以下Java源代码: 该是。 为什么该语句有时会抛出? 谢谢。 问题答案: 线程安全 如果您的代码是多线程的,则有可能。例如: 如果在语句执行之后(但在循环之前)立即将另一个线程设置为,则您将获得一个。通过使用访问器(与延迟初始化结合使用)可以避免这种情况。 另外,如其他人所提到的,如果可能,请避免使用有利于泛型的此类循环构造。有关详细信息,请参见其他答案。 配件提供保护 如果始终
我的代码: 错误: 第8行的错误1064(42000):您的SQL语法中有一个错误;请查看与您的MySQL服务器版本相对应的手册,以便在第9行')'附近使用正确的语法
令牌“if”的语法错误(应在此令牌之后 谢谢你的建议!
题目地址 : https://leetcode.cn/problems/flatten-nested-list-iterator/ 为什么会出错呢?
我正在使用这个卡佩吉斯节点应用程序:https://github.com/narainsagar/node-casperjs-aws-lambda 我已经让我的代码在本地工作,并上传到Lambda,但我需要将我的代码包装在里面exports.handler这样我就可以从API网关向函数传递数据。(我已经对不使用这个应用程序的其他函数这样做了。)当我将代码放在里面时exports.handler失败