diff --git a/src/components/Modules/MultiLayerPaperTapeWidthAngleCalculate.vue b/src/components/Modules/MultiLayerPaperTapeWidthAngleCalculate.vue index 1abb27b..1b40cc4 100644 --- a/src/components/Modules/MultiLayerPaperTapeWidthAngleCalculate.vue +++ b/src/components/Modules/MultiLayerPaperTapeWidthAngleCalculate.vue @@ -1,11 +1,222 @@ - - - + interface LayerRecord { + layer: number + grammage: Param + cumulativeThickness: Param + angle: Param + paperWidth: Param + } + + const paperCoreDiameter = ref(createParam(76.2, 'mm')) + const bottomPaperWidth = ref(createParam(100, 'mm')) + const paperGrammage = ref(createParam(420, 'g/m²')) + const paperDensity = ref(createParam(0.76, 'g/cm³')) + + const recordList = ref([]) + + const result = computed(() => { + const paperRollWallThickness = paperGrammage.value.value / paperDensity.value.value / 1000 + // eslint-disable-next-line unicorn/prefer-at + const paperTotalThickness = recordList.value.length === 0 ? 0 : recordList.value[recordList.value.length - 1].cumulativeThickness.value + const paperRollExternalDiameter = paperCoreDiameter.value.value + 2 * paperTotalThickness + const paperAngle = 90 - radiansToDegrees(Math.acos(bottomPaperWidth.value.value / (paperCoreDiameter.value.value * Math.PI))) + const leadingLength = bottomPaperWidth.value.value / Math.sin(degreesToRadians(90 - paperAngle)) + const beltAngle = 90 - radiansToDegrees(Math.atan(paperRollExternalDiameter * Math.PI / leadingLength)) + const paperWidth = leadingLength * Math.sin(degreesToRadians(radiansToDegrees(Math.atan(paperRollExternalDiameter * Math.PI / leadingLength)))) + + return { + layer: recordList.value.length + 1, + grammage: paperGrammage.value, + cumulativeThickness: createParam(paperTotalThickness + paperRollWallThickness, 'mm'), + angle: createParam(beltAngle, '°'), + paperWidth: createParam(paperWidth, 'mm'), + } + }) + + // 按钮功能方法 + const clearAll = () => { + recordList.value = [] + } + + const saveParams = () => { + // TODO 计算结果导出为Excel + console.log('SAVE') + } + + const addLayer = () => { + // 添加层的逻辑 + recordList.value.push({ + layer: result.value.layer, + grammage: result.value.grammage, + cumulativeThickness: result.value.cumulativeThickness, + angle: result.value.angle, + paperWidth: result.value.paperWidth, + }) + } + + const removeLayer = () => { + // 移除层的逻辑 + recordList.value.pop() + } + diff --git a/src/locale/en.json b/src/locale/en.json index 7895a10..6bd2c80 100644 --- a/src/locale/en.json +++ b/src/locale/en.json @@ -47,5 +47,13 @@ "custom": "Customize", "recommendBeltLength": "Recommended belt length", "recommendBeltWidth": "Recommended bandwidth", - "recommendBeltThickness": "Recommended belt thickness" + "recommendBeltThickness": "Recommended belt thickness", + "bottomPaperWidth": "Bottom paper width", + "save": "Save", + "clear": "Clear", + "remove": "Remove", + "add": "Add", + "layer": "Layer", + "cumulative Thickness": "Cumulative thickness", + "angle": "Angle" } diff --git a/src/locale/zh.json b/src/locale/zh.json index 231893c..c87a089 100644 --- a/src/locale/zh.json +++ b/src/locale/zh.json @@ -47,5 +47,13 @@ "custom": "自定义", "recommendBeltThickness": "推荐皮带厚度", "recommendBeltWidth": "推荐皮带宽度", - "recommendBeltLength": "推荐皮带长度" + "recommendBeltLength": "推荐皮带长度", + "bottomPaperWidth": "底纸宽度", + "save": "保存", + "clear": "清空", + "remove": "移除", + "add": "新增", + "layer": "层数", + "cumulative Thickness": "累计厚度", + "angle": "角度" }