diff --git a/src/Add-on/DrawBoard/ActivityLayerBoardTool.ts b/src/Add-on/DrawBoard/ActivityLayerBoardTool.ts index fe6c32f08..c59169cba 100644 --- a/src/Add-on/DrawBoard/ActivityLayerBoardTool.ts +++ b/src/Add-on/DrawBoard/ActivityLayerBoardTool.ts @@ -285,7 +285,7 @@ class ActivityLayerBoardTool { let nId: ObjectId; let otherBoard = brNailMap.get(nails[i]); - if (i < oldNailIds.length) + if (i < oldNailIds.length && oldNailIds[i]) { let nail = oldNailIds[i].Object as CylinderHole; if (nail.IsErase) @@ -296,6 +296,12 @@ class ActivityLayerBoardTool nail.Height = nails[i].Height; nail.Position = nails[i].Position; nId = nail.Id; + + if (nail.FId !== otherBoard.Id) + { + nail.FId = otherBoard.Id; + otherBoard.AppendNails([nId]); + } } else { @@ -347,6 +353,8 @@ class ActivityLayerBoardTool } if (j < oldNails.length) temp.push(...oldNails.splice(j, 1)); + else + temp.push(undefined); //不存在可以复用的层板钉,占个位 重新添加 } oldNails.unshift(...temp); }