@jjlmoya/utils-diy 1.28.0 → 1.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/src/category/i18n/de.ts +12 -12
- package/src/category/i18n/en.ts +110 -110
- package/src/category/i18n/es.ts +110 -110
- package/src/category/i18n/fr.ts +101 -101
- package/src/category/i18n/id.ts +12 -12
- package/src/category/i18n/it.ts +12 -12
- package/src/category/i18n/ja.ts +12 -12
- package/src/category/i18n/ko.ts +12 -12
- package/src/category/i18n/nl.ts +12 -12
- package/src/category/i18n/pl.ts +12 -12
- package/src/category/i18n/pt.ts +12 -12
- package/src/category/i18n/ru.ts +12 -12
- package/src/category/i18n/sv.ts +12 -12
- package/src/category/i18n/tr.ts +12 -12
- package/src/category/i18n/zh.ts +12 -12
- package/src/category/index.ts +36 -36
- package/src/category/seo.astro +1 -1
- package/src/components/PreviewNavSidebar.astro +1 -1
- package/src/components/PreviewToolbar.astro +1 -1
- package/src/data.ts +1 -1
- package/src/entries.ts +37 -37
- package/src/env.d.ts +1 -1
- package/src/index.ts +50 -50
- package/src/layouts/PreviewLayout.astro +1 -1
- package/src/pages/index.astro +1 -1
- package/src/tests/category_seo_quality.test.ts +74 -0
- package/src/tests/faq_count.test.ts +1 -1
- package/src/tests/mocks/astro_mock.js +1 -1
- package/src/tests/no_h1_in_components.test.ts +1 -1
- package/src/tests/seo_length.test.ts +1 -1
- package/src/tests/seo_parity.test.ts +2 -2
- package/src/tests/seo_translation_completeness.test.ts +18 -12
- package/src/tests/tool_validation.test.ts +15 -15
- package/src/tool/balusterCalculator/bibliography.ts +16 -16
- package/src/tool/balusterCalculator/i18n/de.ts +251 -251
- package/src/tool/balusterCalculator/i18n/en.ts +251 -251
- package/src/tool/balusterCalculator/i18n/es.ts +251 -251
- package/src/tool/balusterCalculator/i18n/fr.ts +251 -251
- package/src/tool/balusterCalculator/i18n/id.ts +251 -251
- package/src/tool/balusterCalculator/i18n/it.ts +251 -251
- package/src/tool/balusterCalculator/i18n/ja.ts +251 -251
- package/src/tool/balusterCalculator/i18n/ko.ts +251 -251
- package/src/tool/balusterCalculator/i18n/nl.ts +251 -251
- package/src/tool/balusterCalculator/i18n/pl.ts +251 -251
- package/src/tool/balusterCalculator/i18n/pt.ts +251 -251
- package/src/tool/balusterCalculator/i18n/ru.ts +251 -251
- package/src/tool/balusterCalculator/i18n/sv.ts +251 -251
- package/src/tool/balusterCalculator/i18n/tr.ts +251 -251
- package/src/tool/balusterCalculator/i18n/zh.ts +251 -251
- package/src/tool/balusterCalculator/seo.astro +15 -15
- package/src/tool/clayCalculator/bibliography.ts +12 -12
- package/src/tool/clayCalculator/i18n/de.ts +174 -174
- package/src/tool/clayCalculator/i18n/en.ts +174 -174
- package/src/tool/clayCalculator/i18n/es.ts +174 -174
- package/src/tool/clayCalculator/i18n/fr.ts +174 -174
- package/src/tool/clayCalculator/i18n/id.ts +174 -174
- package/src/tool/clayCalculator/i18n/it.ts +174 -174
- package/src/tool/clayCalculator/i18n/ja.ts +173 -173
- package/src/tool/clayCalculator/i18n/ko.ts +174 -174
- package/src/tool/clayCalculator/i18n/nl.ts +174 -174
- package/src/tool/clayCalculator/i18n/pl.ts +174 -174
- package/src/tool/clayCalculator/i18n/pt.ts +174 -174
- package/src/tool/clayCalculator/i18n/ru.ts +174 -174
- package/src/tool/clayCalculator/i18n/sv.ts +174 -174
- package/src/tool/clayCalculator/i18n/tr.ts +174 -174
- package/src/tool/clayCalculator/i18n/zh.ts +174 -174
- package/src/tool/clayCalculator/seo.astro +15 -15
- package/src/tool/concreteCalculator/bibliography.ts +7 -7
- package/src/tool/concreteCalculator/i18n/de.ts +188 -188
- package/src/tool/concreteCalculator/i18n/en.ts +188 -188
- package/src/tool/concreteCalculator/i18n/es.ts +188 -188
- package/src/tool/concreteCalculator/i18n/fr.ts +188 -188
- package/src/tool/concreteCalculator/i18n/id.ts +188 -188
- package/src/tool/concreteCalculator/i18n/it.ts +188 -188
- package/src/tool/concreteCalculator/i18n/ja.ts +188 -188
- package/src/tool/concreteCalculator/i18n/ko.ts +188 -188
- package/src/tool/concreteCalculator/i18n/nl.ts +188 -188
- package/src/tool/concreteCalculator/i18n/pl.ts +188 -188
- package/src/tool/concreteCalculator/i18n/pt.ts +188 -188
- package/src/tool/concreteCalculator/i18n/ru.ts +188 -188
- package/src/tool/concreteCalculator/i18n/sv.ts +188 -188
- package/src/tool/concreteCalculator/i18n/tr.ts +188 -188
- package/src/tool/concreteCalculator/i18n/zh.ts +188 -188
- package/src/tool/concreteCalculator/seo.astro +15 -15
- package/src/tool/cutOptimizer/bibliography.ts +12 -12
- package/src/tool/cutOptimizer/i18n/de.ts +169 -169
- package/src/tool/cutOptimizer/i18n/en.ts +169 -169
- package/src/tool/cutOptimizer/i18n/es.ts +169 -169
- package/src/tool/cutOptimizer/i18n/fr.ts +169 -169
- package/src/tool/cutOptimizer/i18n/id.ts +169 -169
- package/src/tool/cutOptimizer/i18n/it.ts +169 -169
- package/src/tool/cutOptimizer/i18n/ja.ts +169 -169
- package/src/tool/cutOptimizer/i18n/ko.ts +169 -169
- package/src/tool/cutOptimizer/i18n/nl.ts +169 -169
- package/src/tool/cutOptimizer/i18n/pl.ts +169 -169
- package/src/tool/cutOptimizer/i18n/pt.ts +169 -169
- package/src/tool/cutOptimizer/i18n/ru.ts +169 -169
- package/src/tool/cutOptimizer/i18n/sv.ts +169 -169
- package/src/tool/cutOptimizer/i18n/tr.ts +169 -169
- package/src/tool/cutOptimizer/i18n/zh.ts +169 -169
- package/src/tool/cutOptimizer/seo.astro +15 -15
- package/src/tool/drillCalculator/bibliography.ts +12 -12
- package/src/tool/drillCalculator/i18n/de.ts +134 -134
- package/src/tool/drillCalculator/i18n/en.ts +134 -134
- package/src/tool/drillCalculator/i18n/es.ts +134 -134
- package/src/tool/drillCalculator/i18n/fr.ts +134 -134
- package/src/tool/drillCalculator/i18n/id.ts +134 -134
- package/src/tool/drillCalculator/i18n/it.ts +134 -134
- package/src/tool/drillCalculator/i18n/ja.ts +134 -134
- package/src/tool/drillCalculator/i18n/ko.ts +134 -134
- package/src/tool/drillCalculator/i18n/nl.ts +134 -134
- package/src/tool/drillCalculator/i18n/pl.ts +134 -134
- package/src/tool/drillCalculator/i18n/pt.ts +134 -134
- package/src/tool/drillCalculator/i18n/ru.ts +134 -134
- package/src/tool/drillCalculator/i18n/sv.ts +134 -134
- package/src/tool/drillCalculator/i18n/tr.ts +134 -134
- package/src/tool/drillCalculator/i18n/zh.ts +134 -134
- package/src/tool/drillCalculator/seo.astro +15 -15
- package/src/tool/drillSharpener/bibliography.ts +16 -16
- package/src/tool/drillSharpener/i18n/de.ts +117 -117
- package/src/tool/drillSharpener/i18n/en.ts +117 -117
- package/src/tool/drillSharpener/i18n/es.ts +117 -117
- package/src/tool/drillSharpener/i18n/fr.ts +117 -117
- package/src/tool/drillSharpener/i18n/id.ts +117 -117
- package/src/tool/drillSharpener/i18n/it.ts +117 -117
- package/src/tool/drillSharpener/i18n/ja.ts +117 -117
- package/src/tool/drillSharpener/i18n/ko.ts +117 -117
- package/src/tool/drillSharpener/i18n/nl.ts +117 -117
- package/src/tool/drillSharpener/i18n/pl.ts +117 -117
- package/src/tool/drillSharpener/i18n/pt.ts +117 -117
- package/src/tool/drillSharpener/i18n/ru.ts +117 -117
- package/src/tool/drillSharpener/i18n/sv.ts +117 -117
- package/src/tool/drillSharpener/i18n/tr.ts +117 -117
- package/src/tool/drillSharpener/i18n/zh.ts +117 -117
- package/src/tool/drillSharpener/seo.astro +15 -15
- package/src/tool/epoxyCalculator/bibliography.ts +20 -20
- package/src/tool/epoxyCalculator/i18n/de.ts +116 -116
- package/src/tool/epoxyCalculator/i18n/en.ts +178 -178
- package/src/tool/epoxyCalculator/i18n/es.ts +178 -178
- package/src/tool/epoxyCalculator/i18n/fr.ts +178 -178
- package/src/tool/epoxyCalculator/i18n/id.ts +116 -116
- package/src/tool/epoxyCalculator/i18n/it.ts +116 -116
- package/src/tool/epoxyCalculator/i18n/ja.ts +116 -116
- package/src/tool/epoxyCalculator/i18n/ko.ts +116 -116
- package/src/tool/epoxyCalculator/i18n/nl.ts +116 -116
- package/src/tool/epoxyCalculator/i18n/pl.ts +116 -116
- package/src/tool/epoxyCalculator/i18n/pt.ts +116 -116
- package/src/tool/epoxyCalculator/i18n/ru.ts +116 -116
- package/src/tool/epoxyCalculator/i18n/sv.ts +116 -116
- package/src/tool/epoxyCalculator/i18n/tr.ts +116 -116
- package/src/tool/epoxyCalculator/i18n/zh.ts +116 -116
- package/src/tool/epoxyCalculator/seo.astro +15 -15
- package/src/tool/furnitureFit/bibliography.ts +12 -12
- package/src/tool/furnitureFit/i18n/de.ts +111 -111
- package/src/tool/furnitureFit/i18n/en.ts +149 -149
- package/src/tool/furnitureFit/i18n/es.ts +149 -149
- package/src/tool/furnitureFit/i18n/fr.ts +149 -149
- package/src/tool/furnitureFit/i18n/id.ts +111 -111
- package/src/tool/furnitureFit/i18n/it.ts +111 -111
- package/src/tool/furnitureFit/i18n/ja.ts +111 -111
- package/src/tool/furnitureFit/i18n/ko.ts +111 -111
- package/src/tool/furnitureFit/i18n/nl.ts +111 -111
- package/src/tool/furnitureFit/i18n/pl.ts +111 -111
- package/src/tool/furnitureFit/i18n/pt.ts +111 -111
- package/src/tool/furnitureFit/i18n/ru.ts +111 -111
- package/src/tool/furnitureFit/i18n/sv.ts +111 -111
- package/src/tool/furnitureFit/i18n/tr.ts +111 -111
- package/src/tool/furnitureFit/i18n/zh.ts +111 -111
- package/src/tool/furnitureFit/seo.astro +15 -15
- package/src/tool/mortarCalculator/bibliography.ts +20 -20
- package/src/tool/mortarCalculator/i18n/de.ts +130 -130
- package/src/tool/mortarCalculator/i18n/en.ts +202 -202
- package/src/tool/mortarCalculator/i18n/es.ts +179 -179
- package/src/tool/mortarCalculator/i18n/fr.ts +203 -203
- package/src/tool/mortarCalculator/i18n/id.ts +130 -130
- package/src/tool/mortarCalculator/i18n/it.ts +130 -130
- package/src/tool/mortarCalculator/i18n/ja.ts +130 -130
- package/src/tool/mortarCalculator/i18n/ko.ts +130 -130
- package/src/tool/mortarCalculator/i18n/nl.ts +130 -130
- package/src/tool/mortarCalculator/i18n/pl.ts +130 -130
- package/src/tool/mortarCalculator/i18n/pt.ts +130 -130
- package/src/tool/mortarCalculator/i18n/ru.ts +130 -130
- package/src/tool/mortarCalculator/i18n/sv.ts +130 -130
- package/src/tool/mortarCalculator/i18n/tr.ts +130 -130
- package/src/tool/mortarCalculator/i18n/zh.ts +130 -130
- package/src/tool/mortarCalculator/seo.astro +15 -15
- package/src/tool/passepartoutCalculator/bibliography.ts +16 -16
- package/src/tool/passepartoutCalculator/i18n/de.ts +108 -108
- package/src/tool/passepartoutCalculator/i18n/en.ts +165 -165
- package/src/tool/passepartoutCalculator/i18n/es.ts +165 -165
- package/src/tool/passepartoutCalculator/i18n/fr.ts +165 -165
- package/src/tool/passepartoutCalculator/i18n/id.ts +108 -108
- package/src/tool/passepartoutCalculator/i18n/it.ts +108 -108
- package/src/tool/passepartoutCalculator/i18n/ja.ts +108 -108
- package/src/tool/passepartoutCalculator/i18n/ko.ts +108 -108
- package/src/tool/passepartoutCalculator/i18n/nl.ts +108 -108
- package/src/tool/passepartoutCalculator/i18n/pl.ts +108 -108
- package/src/tool/passepartoutCalculator/i18n/pt.ts +108 -108
- package/src/tool/passepartoutCalculator/i18n/ru.ts +108 -108
- package/src/tool/passepartoutCalculator/i18n/sv.ts +108 -108
- package/src/tool/passepartoutCalculator/i18n/tr.ts +108 -108
- package/src/tool/passepartoutCalculator/i18n/zh.ts +108 -108
- package/src/tool/passepartoutCalculator/seo.astro +15 -15
- package/src/tool/pythagoreanRightAngleCalculator/bibliography.ts +12 -12
- package/src/tool/pythagoreanRightAngleCalculator/i18n/de.ts +129 -129
- package/src/tool/pythagoreanRightAngleCalculator/i18n/en.ts +129 -129
- package/src/tool/pythagoreanRightAngleCalculator/i18n/es.ts +129 -129
- package/src/tool/pythagoreanRightAngleCalculator/i18n/fr.ts +129 -129
- package/src/tool/pythagoreanRightAngleCalculator/i18n/id.ts +129 -129
- package/src/tool/pythagoreanRightAngleCalculator/i18n/it.ts +129 -129
- package/src/tool/pythagoreanRightAngleCalculator/i18n/ja.ts +129 -129
- package/src/tool/pythagoreanRightAngleCalculator/i18n/ko.ts +129 -129
- package/src/tool/pythagoreanRightAngleCalculator/i18n/nl.ts +129 -129
- package/src/tool/pythagoreanRightAngleCalculator/i18n/pl.ts +129 -129
- package/src/tool/pythagoreanRightAngleCalculator/i18n/pt.ts +129 -129
- package/src/tool/pythagoreanRightAngleCalculator/i18n/ru.ts +129 -129
- package/src/tool/pythagoreanRightAngleCalculator/i18n/sv.ts +129 -129
- package/src/tool/pythagoreanRightAngleCalculator/i18n/tr.ts +129 -129
- package/src/tool/pythagoreanRightAngleCalculator/i18n/zh.ts +129 -129
- package/src/tool/stairCalculator/bibliography.ts +16 -16
- package/src/tool/stairCalculator/i18n/de.ts +143 -143
- package/src/tool/stairCalculator/i18n/en.ts +145 -145
- package/src/tool/stairCalculator/i18n/es.ts +145 -145
- package/src/tool/stairCalculator/i18n/fr.ts +145 -145
- package/src/tool/stairCalculator/i18n/id.ts +143 -143
- package/src/tool/stairCalculator/i18n/it.ts +143 -143
- package/src/tool/stairCalculator/i18n/ja.ts +143 -143
- package/src/tool/stairCalculator/i18n/ko.ts +143 -143
- package/src/tool/stairCalculator/i18n/nl.ts +143 -143
- package/src/tool/stairCalculator/i18n/pl.ts +143 -143
- package/src/tool/stairCalculator/i18n/pt.ts +143 -143
- package/src/tool/stairCalculator/i18n/ru.ts +143 -143
- package/src/tool/stairCalculator/i18n/sv.ts +143 -143
- package/src/tool/stairCalculator/i18n/tr.ts +143 -143
- package/src/tool/stairCalculator/i18n/zh.ts +143 -143
- package/src/tool/stairCalculator/seo.astro +15 -15
- package/src/tool/thermalExpansionCalculator/bibliography.ts +16 -16
- package/src/tool/thermalExpansionCalculator/i18n/de.ts +132 -132
- package/src/tool/thermalExpansionCalculator/i18n/en.ts +170 -170
- package/src/tool/thermalExpansionCalculator/i18n/es.ts +170 -170
- package/src/tool/thermalExpansionCalculator/i18n/fr.ts +170 -170
- package/src/tool/thermalExpansionCalculator/i18n/id.ts +132 -132
- package/src/tool/thermalExpansionCalculator/i18n/it.ts +132 -132
- package/src/tool/thermalExpansionCalculator/i18n/ja.ts +132 -132
- package/src/tool/thermalExpansionCalculator/i18n/ko.ts +132 -132
- package/src/tool/thermalExpansionCalculator/i18n/nl.ts +132 -132
- package/src/tool/thermalExpansionCalculator/i18n/pl.ts +132 -132
- package/src/tool/thermalExpansionCalculator/i18n/pt.ts +132 -132
- package/src/tool/thermalExpansionCalculator/i18n/ru.ts +132 -132
- package/src/tool/thermalExpansionCalculator/i18n/sv.ts +132 -132
- package/src/tool/thermalExpansionCalculator/i18n/tr.ts +132 -132
- package/src/tool/thermalExpansionCalculator/i18n/zh.ts +132 -132
- package/src/tool/thermalExpansionCalculator/seo.astro +15 -15
- package/src/tool/twoStrokeMixtureCalculator/bibliography.ts +12 -12
- package/src/tool/twoStrokeMixtureCalculator/i18n/de.ts +194 -194
- package/src/tool/twoStrokeMixtureCalculator/i18n/en.ts +194 -194
- package/src/tool/twoStrokeMixtureCalculator/i18n/es.ts +194 -194
- package/src/tool/twoStrokeMixtureCalculator/i18n/fr.ts +194 -194
- package/src/tool/twoStrokeMixtureCalculator/i18n/id.ts +194 -194
- package/src/tool/twoStrokeMixtureCalculator/i18n/it.ts +194 -194
- package/src/tool/twoStrokeMixtureCalculator/i18n/ja.ts +194 -194
- package/src/tool/twoStrokeMixtureCalculator/i18n/ko.ts +194 -194
- package/src/tool/twoStrokeMixtureCalculator/i18n/nl.ts +194 -194
- package/src/tool/twoStrokeMixtureCalculator/i18n/pl.ts +194 -194
- package/src/tool/twoStrokeMixtureCalculator/i18n/pt.ts +194 -194
- package/src/tool/twoStrokeMixtureCalculator/i18n/ru.ts +194 -194
- package/src/tool/twoStrokeMixtureCalculator/i18n/sv.ts +194 -194
- package/src/tool/twoStrokeMixtureCalculator/i18n/tr.ts +194 -194
- package/src/tool/twoStrokeMixtureCalculator/i18n/zh.ts +194 -194
- package/src/tool/voltageDropCalculator/bibliography.ts +16 -16
- package/src/tool/voltageDropCalculator/i18n/de.ts +113 -113
- package/src/tool/voltageDropCalculator/i18n/en.ts +151 -151
- package/src/tool/voltageDropCalculator/i18n/es.ts +151 -151
- package/src/tool/voltageDropCalculator/i18n/fr.ts +145 -145
- package/src/tool/voltageDropCalculator/i18n/id.ts +113 -113
- package/src/tool/voltageDropCalculator/i18n/it.ts +113 -113
- package/src/tool/voltageDropCalculator/i18n/ja.ts +113 -113
- package/src/tool/voltageDropCalculator/i18n/ko.ts +113 -113
- package/src/tool/voltageDropCalculator/i18n/nl.ts +113 -113
- package/src/tool/voltageDropCalculator/i18n/pl.ts +113 -113
- package/src/tool/voltageDropCalculator/i18n/pt.ts +113 -113
- package/src/tool/voltageDropCalculator/i18n/ru.ts +113 -113
- package/src/tool/voltageDropCalculator/i18n/sv.ts +113 -113
- package/src/tool/voltageDropCalculator/i18n/tr.ts +113 -113
- package/src/tool/voltageDropCalculator/i18n/zh.ts +113 -113
- package/src/tool/voltageDropCalculator/seo.astro +15 -15
- package/src/tool/workshopFractionConverter/bibliography.ts +12 -12
- package/src/tool/workshopFractionConverter/i18n/de.ts +147 -147
- package/src/tool/workshopFractionConverter/i18n/en.ts +147 -147
- package/src/tool/workshopFractionConverter/i18n/es.ts +147 -147
- package/src/tool/workshopFractionConverter/i18n/fr.ts +147 -147
- package/src/tool/workshopFractionConverter/i18n/id.ts +147 -147
- package/src/tool/workshopFractionConverter/i18n/it.ts +147 -147
- package/src/tool/workshopFractionConverter/i18n/ja.ts +147 -147
- package/src/tool/workshopFractionConverter/i18n/ko.ts +147 -147
- package/src/tool/workshopFractionConverter/i18n/nl.ts +147 -147
- package/src/tool/workshopFractionConverter/i18n/pl.ts +147 -147
- package/src/tool/workshopFractionConverter/i18n/pt.ts +147 -147
- package/src/tool/workshopFractionConverter/i18n/ru.ts +147 -147
- package/src/tool/workshopFractionConverter/i18n/sv.ts +147 -147
- package/src/tool/workshopFractionConverter/i18n/tr.ts +147 -147
- package/src/tool/workshopFractionConverter/i18n/zh.ts +147 -147
- package/src/tools.ts +20 -20
|
@@ -1,169 +1,169 @@
|
|
|
1
|
-
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
|
-
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
-
import type { CutOptimizerUI } from '../ui';
|
|
4
|
-
import { bibliography } from '../bibliography';
|
|
5
|
-
|
|
6
|
-
const slug = 'cut-optimizer';
|
|
7
|
-
const title = '木材・板材カット最適化計算機';
|
|
8
|
-
const description =
|
|
9
|
-
'木材、金属、パイプのカットを最適化する無料計算機。1Dおよび2Dのビンパッキングアルゴリズムで端材を最小限に抑えます。木工、金工、DIYリフォームに最適。';
|
|
10
|
-
|
|
11
|
-
const faqData = [
|
|
12
|
-
{
|
|
13
|
-
question: '1Dカット最適化とは何ですか?',
|
|
14
|
-
answer:
|
|
15
|
-
'数学的アルゴリズム(ビンパッキング問題など)を使用して、標準的な長さの材料(角材、プロファイル、パイプ)から、端材を最小限に抑えつつ必要なパーツをどのように切り出すかを決定するツールです。',
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
question: 'なぜ刃の厚み(カーフ)を含める必要があるのですか?',
|
|
19
|
-
answer:
|
|
20
|
-
'鋸で材料を切るたびに、数ミリメートル(刃によりますが通常2mm〜4mm)が削り取られて消失します。このスペースを計算に入れないと、リストの最後のパーツが予定より短くなってしまいます。',
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
question: '異なる長さのパーツを混ぜることはできますか?',
|
|
24
|
-
answer:
|
|
25
|
-
'はい。当計算機は、長さと数量のどのような組み合わせでも受け付けます。アルゴリズムが可能なすべての組み合わせを評価し、在庫材料の最大限の活用を優先します。',
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
question: 'カットプランを保存するにはどうすればよいですか?',
|
|
29
|
-
answer:
|
|
30
|
-
'最適化後、ページを印刷するか、視覚的な図面のスクリーンショットを撮ることができます。これは、作業場でのカットの順番を間違えないための物理的なガイドとして役立ちます。',
|
|
31
|
-
},
|
|
32
|
-
];
|
|
33
|
-
|
|
34
|
-
const howToData = [
|
|
35
|
-
{
|
|
36
|
-
name: 'ベース材料(在庫)の定義',
|
|
37
|
-
text: '使用可能な角材やプロファイルの全長を入力します(例:2400mmや6000mm)。',
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
name: '刃の厚み(カーフ)の設定',
|
|
41
|
-
text: '鋸が一度のカットで削り取るミリメートル数を設定し、ミリ単位で正確な計算を行います。',
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
name: '必要なパーツのリストアップ',
|
|
45
|
-
text: 'プロジェクトに必要な各パーツの長さと数量を入力します。',
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
name: '最適化の実行',
|
|
49
|
-
text: '最も効率的なカット図面と、発生する端材の正確な割合を取得します。',
|
|
50
|
-
},
|
|
51
|
-
];
|
|
52
|
-
|
|
53
|
-
const faqSchema: WithContext<FAQPage> = {
|
|
54
|
-
'@context': 'https://schema.org',
|
|
55
|
-
'@type': 'FAQPage',
|
|
56
|
-
mainEntity: faqData.map((item) => ({
|
|
57
|
-
'@type': 'Question',
|
|
58
|
-
name: item.question,
|
|
59
|
-
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
60
|
-
})),
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
const howToSchema: WithContext<HowToThing> = {
|
|
64
|
-
'@context': 'https://schema.org',
|
|
65
|
-
'@type': 'HowTo',
|
|
66
|
-
name: title,
|
|
67
|
-
description,
|
|
68
|
-
step: howToData.map((step, i) => ({
|
|
69
|
-
'@type': 'HowToStep',
|
|
70
|
-
position: i + 1,
|
|
71
|
-
name: step.name,
|
|
72
|
-
text: step.text,
|
|
73
|
-
})),
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
const appSchema: WithContext<SoftwareApplication> = {
|
|
77
|
-
'@context': 'https://schema.org',
|
|
78
|
-
'@type': 'SoftwareApplication',
|
|
79
|
-
name: title,
|
|
80
|
-
description,
|
|
81
|
-
applicationCategory: 'UtilityApplication',
|
|
82
|
-
operatingSystem: 'All',
|
|
83
|
-
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
84
|
-
inLanguage: 'ja',
|
|
85
|
-
};
|
|
86
|
-
|
|
87
|
-
export const content: ToolLocaleContent<CutOptimizerUI> = {
|
|
88
|
-
slug,
|
|
89
|
-
title,
|
|
90
|
-
description,
|
|
91
|
-
faqTitle: 'よくある質問',
|
|
92
|
-
faq: faqData,
|
|
93
|
-
bibliography,
|
|
94
|
-
howTo: howToData,
|
|
95
|
-
schemas: [faqSchema, howToSchema, appSchema],
|
|
96
|
-
seo: [
|
|
97
|
-
{
|
|
98
|
-
type: 'title',
|
|
99
|
-
text: 'カット最適化の究極ガイド',
|
|
100
|
-
level: 2,
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
type: 'paragraph',
|
|
104
|
-
html: '技術的に<strong>「切り出し問題(Cutting Stock Problem)」</strong>として知られるカット最適化は、産業工学における最も魅力的なロジスティックな課題の一つです。20個のパーツと5本の在庫材料があるプロジェクトでは、数百万通りの組み合わせが存在します。コンピュータアルゴリズムは数ミリ秒で最適解を見つけ出し、通常の15%の端材を5%未満に削減できます。',
|
|
105
|
-
},
|
|
106
|
-
{
|
|
107
|
-
type: 'title',
|
|
108
|
-
text: '1D線形カットと2Dパネルカット',
|
|
109
|
-
level: 3,
|
|
110
|
-
},
|
|
111
|
-
{
|
|
112
|
-
type: 'card',
|
|
113
|
-
icon: 'mdi:arrow-expand-horizontal',
|
|
114
|
-
title: '角材・プロファイル用の線形カット',
|
|
115
|
-
html: '<p><strong>線形カット(1D)</strong>では、最適化は長さという一方向のみで行われます。材料の幅は一定であると想定されます。寸法材(角材、梁)、金属やアルミニウムのプロファイル、PVCや銅のパイプ、全ネジなどに理想的です。 </p>',
|
|
116
|
-
},
|
|
117
|
-
{
|
|
118
|
-
type: 'card',
|
|
119
|
-
icon: 'mdi:view-grid',
|
|
120
|
-
title: '板材・シート用のパネルカット',
|
|
121
|
-
html: '<p><strong>パネルカット(2D)</strong>では、幅と長さの二方向を管理します。このツールでは、各カットが端から端まで通るギロチン型アルゴリズムを使用します。中密度繊維板(MDF)、パーティクルボード、合板、ガラス、アクリル板、金属シートに最適です。</p>',
|
|
122
|
-
},
|
|
123
|
-
{
|
|
124
|
-
type: 'title',
|
|
125
|
-
text: '重要な要素:刃の厚み(カーフ)',
|
|
126
|
-
level: 3,
|
|
127
|
-
},
|
|
128
|
-
{
|
|
129
|
-
type: 'paragraph',
|
|
130
|
-
html: '<strong>カーフ(Kerf)</strong>とは、カットのたびに消失する材料のことです。標準的なテーブルソーの刃は一回のカットで3.0mmから3.2mmを消費します。手持ちの丸鋸は1.5mmから2.5mm程度です。アクリルへのレーザーカットはわずか0.1mmから0.3mmです。2400mmの角材で10回のカットを行うプロジェクトでカーフを無視すると、30mmから32mmの有効な材料を失うことになります。',
|
|
131
|
-
},
|
|
132
|
-
{
|
|
133
|
-
type: 'title',
|
|
134
|
-
text: 'Best Fit Decreasingアルゴリズム',
|
|
135
|
-
level: 3,
|
|
136
|
-
},
|
|
137
|
-
{
|
|
138
|
-
type: 'card',
|
|
139
|
-
icon: 'mdi:chip',
|
|
140
|
-
title: '最適化計算の仕組み',
|
|
141
|
-
html: '<p>最適化計算の核心には<strong>「Best Fit Decreasing (BFD)」</strong>戦略が使われています。まず、すべてのパーツを長い順に並べ替えます(大きいパーツほど配置が難しいため)。次に、各パーツについて、残りの端材の中で最もぴったり収まる(余りが最小になる)場所を探します。既存の材料に収まらない場合にのみ、新しい材料を使用します。このプロセスにより、ランダムに配置する場合と比較して端材を劇的に削減できます。</p>',
|
|
142
|
-
},
|
|
143
|
-
],
|
|
144
|
-
ui: {
|
|
145
|
-
modeLinearLabel: '線形(角材)',
|
|
146
|
-
modePanelLabel: 'パネル(板材)',
|
|
147
|
-
configTitle: '材料設定',
|
|
148
|
-
labelStockLength: '材料の長さ (mm)',
|
|
149
|
-
labelStockWidth: '材料の幅 (mm)',
|
|
150
|
-
labelKerf: '刃の厚さ / カーフ (mm)',
|
|
151
|
-
cutsTitle: 'カットリスト',
|
|
152
|
-
placeholderLength: '長さ',
|
|
153
|
-
placeholderWidth: '幅',
|
|
154
|
-
placeholderQty: '数量',
|
|
155
|
-
btnRemoveTitle: '削除',
|
|
156
|
-
statStockUsed: '使用材料',
|
|
157
|
-
statTotalCuts: '合計カット数',
|
|
158
|
-
statWaste: '合計端材',
|
|
159
|
-
statEfficiency: '効率',
|
|
160
|
-
vizTitle: 'カット図面',
|
|
161
|
-
emptyState: 'パーツを追加して「計算」を押すと、カットプランが表示されます。',
|
|
162
|
-
noValidCuts: '有効なカットを生成できませんでした。寸法を確認してください。',
|
|
163
|
-
noValidPanels: '有効なパネルを生成できませんでした。パーツが板材のサイズに収まっているか確認してください。',
|
|
164
|
-
stockLabel: '材料',
|
|
165
|
-
panelLabel: 'パネル',
|
|
166
|
-
wasteLabel: '端材:',
|
|
167
|
-
effLabel: '効率:',
|
|
168
|
-
},
|
|
169
|
-
};
|
|
1
|
+
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { CutOptimizerUI } from '../ui';
|
|
4
|
+
import { bibliography } from '../bibliography';
|
|
5
|
+
|
|
6
|
+
const slug = 'cut-optimizer';
|
|
7
|
+
const title = '木材・板材カット最適化計算機';
|
|
8
|
+
const description =
|
|
9
|
+
'木材、金属、パイプのカットを最適化する無料計算機。1Dおよび2Dのビンパッキングアルゴリズムで端材を最小限に抑えます。木工、金工、DIYリフォームに最適。';
|
|
10
|
+
|
|
11
|
+
const faqData = [
|
|
12
|
+
{
|
|
13
|
+
question: '1Dカット最適化とは何ですか?',
|
|
14
|
+
answer:
|
|
15
|
+
'数学的アルゴリズム(ビンパッキング問題など)を使用して、標準的な長さの材料(角材、プロファイル、パイプ)から、端材を最小限に抑えつつ必要なパーツをどのように切り出すかを決定するツールです。',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
question: 'なぜ刃の厚み(カーフ)を含める必要があるのですか?',
|
|
19
|
+
answer:
|
|
20
|
+
'鋸で材料を切るたびに、数ミリメートル(刃によりますが通常2mm〜4mm)が削り取られて消失します。このスペースを計算に入れないと、リストの最後のパーツが予定より短くなってしまいます。',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: '異なる長さのパーツを混ぜることはできますか?',
|
|
24
|
+
answer:
|
|
25
|
+
'はい。当計算機は、長さと数量のどのような組み合わせでも受け付けます。アルゴリズムが可能なすべての組み合わせを評価し、在庫材料の最大限の活用を優先します。',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'カットプランを保存するにはどうすればよいですか?',
|
|
29
|
+
answer:
|
|
30
|
+
'最適化後、ページを印刷するか、視覚的な図面のスクリーンショットを撮ることができます。これは、作業場でのカットの順番を間違えないための物理的なガイドとして役立ちます。',
|
|
31
|
+
},
|
|
32
|
+
];
|
|
33
|
+
|
|
34
|
+
const howToData = [
|
|
35
|
+
{
|
|
36
|
+
name: 'ベース材料(在庫)の定義',
|
|
37
|
+
text: '使用可能な角材やプロファイルの全長を入力します(例:2400mmや6000mm)。',
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
name: '刃の厚み(カーフ)の設定',
|
|
41
|
+
text: '鋸が一度のカットで削り取るミリメートル数を設定し、ミリ単位で正確な計算を行います。',
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
name: '必要なパーツのリストアップ',
|
|
45
|
+
text: 'プロジェクトに必要な各パーツの長さと数量を入力します。',
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
name: '最適化の実行',
|
|
49
|
+
text: '最も効率的なカット図面と、発生する端材の正確な割合を取得します。',
|
|
50
|
+
},
|
|
51
|
+
];
|
|
52
|
+
|
|
53
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
54
|
+
'@context': 'https://schema.org',
|
|
55
|
+
'@type': 'FAQPage',
|
|
56
|
+
mainEntity: faqData.map((item) => ({
|
|
57
|
+
'@type': 'Question',
|
|
58
|
+
name: item.question,
|
|
59
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
60
|
+
})),
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
const howToSchema: WithContext<HowToThing> = {
|
|
64
|
+
'@context': 'https://schema.org',
|
|
65
|
+
'@type': 'HowTo',
|
|
66
|
+
name: title,
|
|
67
|
+
description,
|
|
68
|
+
step: howToData.map((step, i) => ({
|
|
69
|
+
'@type': 'HowToStep',
|
|
70
|
+
position: i + 1,
|
|
71
|
+
name: step.name,
|
|
72
|
+
text: step.text,
|
|
73
|
+
})),
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
77
|
+
'@context': 'https://schema.org',
|
|
78
|
+
'@type': 'SoftwareApplication',
|
|
79
|
+
name: title,
|
|
80
|
+
description,
|
|
81
|
+
applicationCategory: 'UtilityApplication',
|
|
82
|
+
operatingSystem: 'All',
|
|
83
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
84
|
+
inLanguage: 'ja',
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
export const content: ToolLocaleContent<CutOptimizerUI> = {
|
|
88
|
+
slug,
|
|
89
|
+
title,
|
|
90
|
+
description,
|
|
91
|
+
faqTitle: 'よくある質問',
|
|
92
|
+
faq: faqData,
|
|
93
|
+
bibliography,
|
|
94
|
+
howTo: howToData,
|
|
95
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
96
|
+
seo: [
|
|
97
|
+
{
|
|
98
|
+
type: 'title',
|
|
99
|
+
text: 'カット最適化の究極ガイド',
|
|
100
|
+
level: 2,
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
type: 'paragraph',
|
|
104
|
+
html: '技術的に<strong>「切り出し問題(Cutting Stock Problem)」</strong>として知られるカット最適化は、産業工学における最も魅力的なロジスティックな課題の一つです。20個のパーツと5本の在庫材料があるプロジェクトでは、数百万通りの組み合わせが存在します。コンピュータアルゴリズムは数ミリ秒で最適解を見つけ出し、通常の15%の端材を5%未満に削減できます。',
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
type: 'title',
|
|
108
|
+
text: '1D線形カットと2Dパネルカット',
|
|
109
|
+
level: 3,
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
type: 'card',
|
|
113
|
+
icon: 'mdi:arrow-expand-horizontal',
|
|
114
|
+
title: '角材・プロファイル用の線形カット',
|
|
115
|
+
html: '<p><strong>線形カット(1D)</strong>では、最適化は長さという一方向のみで行われます。材料の幅は一定であると想定されます。寸法材(角材、梁)、金属やアルミニウムのプロファイル、PVCや銅のパイプ、全ネジなどに理想的です。 </p>',
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
type: 'card',
|
|
119
|
+
icon: 'mdi:view-grid',
|
|
120
|
+
title: '板材・シート用のパネルカット',
|
|
121
|
+
html: '<p><strong>パネルカット(2D)</strong>では、幅と長さの二方向を管理します。このツールでは、各カットが端から端まで通るギロチン型アルゴリズムを使用します。中密度繊維板(MDF)、パーティクルボード、合板、ガラス、アクリル板、金属シートに最適です。</p>',
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
type: 'title',
|
|
125
|
+
text: '重要な要素:刃の厚み(カーフ)',
|
|
126
|
+
level: 3,
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
type: 'paragraph',
|
|
130
|
+
html: '<strong>カーフ(Kerf)</strong>とは、カットのたびに消失する材料のことです。標準的なテーブルソーの刃は一回のカットで3.0mmから3.2mmを消費します。手持ちの丸鋸は1.5mmから2.5mm程度です。アクリルへのレーザーカットはわずか0.1mmから0.3mmです。2400mmの角材で10回のカットを行うプロジェクトでカーフを無視すると、30mmから32mmの有効な材料を失うことになります。',
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
type: 'title',
|
|
134
|
+
text: 'Best Fit Decreasingアルゴリズム',
|
|
135
|
+
level: 3,
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
type: 'card',
|
|
139
|
+
icon: 'mdi:chip',
|
|
140
|
+
title: '最適化計算の仕組み',
|
|
141
|
+
html: '<p>最適化計算の核心には<strong>「Best Fit Decreasing (BFD)」</strong>戦略が使われています。まず、すべてのパーツを長い順に並べ替えます(大きいパーツほど配置が難しいため)。次に、各パーツについて、残りの端材の中で最もぴったり収まる(余りが最小になる)場所を探します。既存の材料に収まらない場合にのみ、新しい材料を使用します。このプロセスにより、ランダムに配置する場合と比較して端材を劇的に削減できます。</p>',
|
|
142
|
+
},
|
|
143
|
+
],
|
|
144
|
+
ui: {
|
|
145
|
+
modeLinearLabel: '線形(角材)',
|
|
146
|
+
modePanelLabel: 'パネル(板材)',
|
|
147
|
+
configTitle: '材料設定',
|
|
148
|
+
labelStockLength: '材料の長さ (mm)',
|
|
149
|
+
labelStockWidth: '材料の幅 (mm)',
|
|
150
|
+
labelKerf: '刃の厚さ / カーフ (mm)',
|
|
151
|
+
cutsTitle: 'カットリスト',
|
|
152
|
+
placeholderLength: '長さ',
|
|
153
|
+
placeholderWidth: '幅',
|
|
154
|
+
placeholderQty: '数量',
|
|
155
|
+
btnRemoveTitle: '削除',
|
|
156
|
+
statStockUsed: '使用材料',
|
|
157
|
+
statTotalCuts: '合計カット数',
|
|
158
|
+
statWaste: '合計端材',
|
|
159
|
+
statEfficiency: '効率',
|
|
160
|
+
vizTitle: 'カット図面',
|
|
161
|
+
emptyState: 'パーツを追加して「計算」を押すと、カットプランが表示されます。',
|
|
162
|
+
noValidCuts: '有効なカットを生成できませんでした。寸法を確認してください。',
|
|
163
|
+
noValidPanels: '有効なパネルを生成できませんでした。パーツが板材のサイズに収まっているか確認してください。',
|
|
164
|
+
stockLabel: '材料',
|
|
165
|
+
panelLabel: 'パネル',
|
|
166
|
+
wasteLabel: '端材:',
|
|
167
|
+
effLabel: '効率:',
|
|
168
|
+
},
|
|
169
|
+
};
|