为什么这段代码运行的时候点击部件会出现错误?-灵析社区

777七月

我运行这段代码的时候,点击部件就会出现 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); }

阅读量:18

点赞量:0

问AI
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;