dsh-ppt-studio 1.1.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/LICENSE +21 -0
- package/README.md +480 -0
- package/agent-presets/ppt/agent.cordis.yml +308 -0
- package/agent-presets/ppt/preset.yml +3 -0
- package/cordis.patch.yml +29 -0
- package/docs/00-/350/256/276/350/256/241/346/272/220.md +537 -0
- package/docs/01-/351/234/200/346/261/202/344/270/216/347/233/256/346/240/207.md +136 -0
- package/docs/02-/346/212/200/346/234/257/346/212/245/345/221/212.md +483 -0
- package/docs/03-/346/233/264/346/226/260/346/227/245/345/277/227.md +2898 -0
- package/docs/04-/350/267/257/347/272/277/345/233/276/344/270/216/351/207/214/347/250/213/347/242/221.md +113 -0
- package/docs/05-/350/277/255/344/273/243/346/265/201/347/250/213.md +210 -0
- package/docs/06-/350/257/204/345/256/241/344/270/216/346/265/213/350/257/225.md +296 -0
- package/docs/fidelity-report.md +225 -0
- package/examples/fx/fx-mini/deck.yaml +39 -0
- package/examples/fx/fx-mini/pages/01.yaml +6 -0
- package/examples/fx/fx-mini/pages/02.yaml +2 -0
- package/examples/fx/fx-mini/pages/03.yaml +6 -0
- package/examples/fx/fx-pro/deck.yaml +48 -0
- package/examples/fx/fx-pro/pages/01_cover.yaml +40 -0
- package/examples/fx/fx-pro/pages/02_arch.yaml +55 -0
- package/examples/fx/fx-pro/pages/03_table.yaml +20 -0
- package/examples/fx/fx-pro/pages/04_chart.yaml +40 -0
- package/examples/fx/fx-pro/pages/05_timeline.yaml +71 -0
- package/examples/fx/fx-pro/pages/06_longtext.yaml +13 -0
- package/examples/fx/fx-pro/pages/07_safearea.yaml +33 -0
- package/examples/fx/fx-pro/pages/08_contrast.yaml +22 -0
- package/examples/fx/fx-pro/pages/09_custgeom.yaml +32 -0
- package/examples/fx/fx-pro/pages/10_numbers.yaml +25 -0
- package/examples/fx/fx-pro/pages/11_section.yaml +20 -0
- package/examples/fx/fx-pro/pages/12_summary.yaml +57 -0
- package/examples/fx/fx-pro/preview/01_pages_01_cover.html +1 -0
- package/examples/fx/fx-pro/preview/02_pages_02_arch.html +3 -0
- package/examples/fx/fx-pro/preview/03_pages_03_table.html +1 -0
- package/examples/fx/fx-pro/preview/04_pages_04_chart.html +3 -0
- package/examples/fx/fx-pro/preview/05_pages_05_timeline.html +2 -0
- package/examples/fx/fx-pro/preview/06_pages_06_longtext.html +4 -0
- package/examples/fx/fx-pro/preview/07_pages_07_safearea.html +2 -0
- package/examples/fx/fx-pro/preview/08_pages_08_contrast.html +1 -0
- package/examples/fx/fx-pro/preview/09_pages_09_custgeom.html +1 -0
- package/examples/fx/fx-pro/preview/10_pages_10_numbers.html +1 -0
- package/examples/fx/fx-pro/preview/11_pages_11_section.html +1 -0
- package/examples/fx/fx-pro/preview/12_pages_12_summary.html +1 -0
- package/examples/fx/fx-pro/preview/deck.html +10 -0
- package/examples/fx/fx-pro/preview/layout.json +2325 -0
- package/examples/fx/fx-pro/preview/measured.json +814 -0
- package/examples/fx/fx-pro.pptx +0 -0
- package/examples/fx/ren-single/01.png +0 -0
- package/examples/fx/ren-spliced/01.png +0 -0
- package/examples/fx/ren-spliced/03.png +0 -0
- package/examples/fx/seed.pptx +0 -0
- package/examples/fx/single.pptx +0 -0
- package/examples/fx/spliced.pptx +0 -0
- package/examples/smoke/deck.yaml +26 -0
- package/examples/smoke/imported/deck.yaml +30 -0
- package/examples/smoke/imported/import-styles.json +126 -0
- package/examples/smoke/imported/pages/slide_01.yaml +31 -0
- package/examples/smoke/imported/pages/slide_02.yaml +38 -0
- package/examples/smoke/imported/pages/slide_03.yaml +55 -0
- package/examples/smoke/imported/preview-rt/01_pages_slide_01.html +1 -0
- package/examples/smoke/imported/preview-rt/02_pages_slide_02.html +1 -0
- package/examples/smoke/imported/preview-rt/03_pages_slide_03.html +1 -0
- package/examples/smoke/imported/preview-rt/deck.html +1 -0
- package/examples/smoke/imported/preview-rt/layout.json +434 -0
- package/examples/smoke/imported/reference/previews/01.png +0 -0
- package/examples/smoke/imported/reference/previews/02.png +0 -0
- package/examples/smoke/imported/reference/previews/03.png +0 -0
- package/examples/smoke/imported/source.pptx +0 -0
- package/examples/smoke/media-test.png +0 -0
- package/examples/smoke/out-smoke.pptx +0 -0
- package/examples/smoke/pages/01_cover.yaml +27 -0
- package/examples/smoke/pages/02_content.yaml +42 -0
- package/examples/smoke/pages/03_chart.yaml +35 -0
- package/examples/smoke/preview/01_pages_01_cover.html +1 -0
- package/examples/smoke/preview/02_pages_02_content.html +1 -0
- package/examples/smoke/preview/03_pages_03_chart.html +1 -0
- package/examples/smoke/preview/deck.html +1 -0
- package/examples/smoke/preview/layout.json +378 -0
- package/lib/autodeclare.js +40 -0
- package/lib/commands.js +161 -0
- package/lib/crosscheck.js +300 -0
- package/lib/imgmeta.js +55 -0
- package/lib/index.js +239 -0
- package/lib/measurement.js +209 -0
- package/lib/msrender.js +123 -0
- package/lib/pptd/export-pptx.js +686 -0
- package/lib/pptd/import-pptx.js +774 -0
- package/lib/pptd/layout.js +209 -0
- package/lib/pptd/render-html.js +254 -0
- package/lib/pptd/schema.js +518 -0
- package/lib/pptd/svgCharts.js +147 -0
- package/lib/pptxPy.js +205 -0
- package/lib/preset-delivery.js +195 -0
- package/lib/preview-server.js +164 -0
- package/lib/router.js +165 -0
- package/lib/scaffold.js +315 -0
- package/lib/skill.js +174 -0
- package/lib/splice.js +219 -0
- package/lib/state.js +88 -0
- package/lib/surgical.js +369 -0
- package/lib/templates.js +400 -0
- package/lib/tools.js +955 -0
- package/lib/verify.js +828 -0
- package/lib/xmljs.js +112 -0
- package/lib/zips.js +117 -0
- package/package.json +81 -0
- package/scripts/audit-manual-facts.mjs +294 -0
- package/scripts/audit-template-fidelity.mjs +162 -0
- package/scripts/bench-m2.mjs +48 -0
- package/scripts/build-templates.mjs +63 -0
- package/scripts/build.mjs +14 -0
- package/scripts/build.sh +7 -0
- package/scripts/check-lib-freshness.mjs +70 -0
- package/scripts/check-preset.mjs +189 -0
- package/scripts/check-tracked-lf.mjs +84 -0
- package/scripts/dbg-import.mjs +13 -0
- package/scripts/dbg-media.mjs +10 -0
- package/scripts/dbg-tpl-inventory.mjs +23 -0
- package/scripts/dump-workflow-baseline.mjs +38 -0
- package/scripts/e2e-1.0.mjs +129 -0
- package/scripts/eval-skills-blind.mjs +91 -0
- package/scripts/eval-skills-score.mjs +129 -0
- package/scripts/export-orig-templates.ps1 +17 -0
- package/scripts/fixtures/workflow-baseline.json +300 -0
- package/scripts/fixtures.mjs +501 -0
- package/scripts/import-user-templates.mjs +60 -0
- package/scripts/install-desktop.mjs +312 -0
- package/scripts/install.mjs +209 -0
- package/scripts/migrate-templates-dualtrack.mjs +71 -0
- package/scripts/preflight-1.0.mjs +198 -0
- package/scripts/probe-asset-freshness.mjs +57 -0
- package/scripts/probe-effect-semantics.mjs +69 -0
- package/scripts/probe-reparse-safety.mjs +32 -0
- package/scripts/rebuild-templates-c11.mjs +69 -0
- package/scripts/regression-real.mjs +84 -0
- package/scripts/release-sync.mjs +425 -0
- package/scripts/shot-templates.mjs +49 -0
- package/scripts/smoke.mjs +2512 -0
- package/scripts/verify-bundle-install.mjs +281 -0
- package/scripts/verify-fresh-install.mjs +260 -0
- package/skills/ppt-studio-copy/SKILL.md +139 -0
- package/skills/ppt-studio-craft/SKILL.md +171 -0
- package/skills/ppt-studio-data/SKILL.md +173 -0
- package/skills/ppt-studio-manual/SKILL.md +104 -0
- package/templates/academic-white/deck.yaml +24 -0
- package/templates/academic-white/pages/_chart.yaml +43 -0
- package/templates/academic-white/pages/_compare.yaml +37 -0
- package/templates/academic-white/pages/_content.yaml +35 -0
- package/templates/academic-white/pages/_cover.yaml +28 -0
- package/templates/academic-white/pages/_ending.yaml +28 -0
- package/templates/academic-white/pages/_flow.yaml +61 -0
- package/templates/academic-white/preview.png +0 -0
- package/templates/academic-white/template.yaml +14 -0
- package/templates/business-blue/deck.yaml +28 -0
- package/templates/business-blue/pages/_chart.yaml +36 -0
- package/templates/business-blue/pages/_compare.yaml +45 -0
- package/templates/business-blue/pages/_content.yaml +80 -0
- package/templates/business-blue/pages/_cover.yaml +39 -0
- package/templates/business-blue/pages/_ending.yaml +32 -0
- package/templates/business-blue/pages/_flow.yaml +87 -0
- package/templates/business-blue/preview.png +0 -0
- package/templates/business-blue/template.yaml +14 -0
- package/templates/pitch-bold/deck.yaml +23 -0
- package/templates/pitch-bold/pages/_chart.yaml +32 -0
- package/templates/pitch-bold/pages/_compare.yaml +36 -0
- package/templates/pitch-bold/pages/_content.yaml +58 -0
- package/templates/pitch-bold/pages/_cover.yaml +31 -0
- package/templates/pitch-bold/pages/_ending.yaml +27 -0
- package/templates/pitch-bold/pages/_flow.yaml +46 -0
- package/templates/pitch-bold/preview.png +0 -0
- package/templates/pitch-bold/template.yaml +14 -0
- package/templates/tech-dark/deck.yaml +24 -0
- package/templates/tech-dark/pages/_chart.yaml +27 -0
- package/templates/tech-dark/pages/_compare.yaml +38 -0
- package/templates/tech-dark/pages/_content.yaml +51 -0
- package/templates/tech-dark/pages/_cover.yaml +30 -0
- package/templates/tech-dark/pages/_ending.yaml +25 -0
- package/templates/tech-dark/pages/_flow.yaml +80 -0
- package/templates/tech-dark/preview.png +0 -0
- package/templates/tech-dark/template.yaml +14 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# 高难度综合夹具(v1.0.0 自包含测试案例;声明齐备 → verify 应 0 错误)
|
|
2
|
+
version: 1
|
|
3
|
+
title: "能力验证演示"
|
|
4
|
+
size: [960, 540]
|
|
5
|
+
theme:
|
|
6
|
+
colors:
|
|
7
|
+
ink: "#1F2937" # 主墨
|
|
8
|
+
primary: "#2563EB" # 主蓝
|
|
9
|
+
accent: "#F59E0B" # 强调橙
|
|
10
|
+
danger: "#C0392B" # 警示红
|
|
11
|
+
steel: "#64748B" # 辅助灰蓝
|
|
12
|
+
bg: "#F8FAFC" # 页面底
|
|
13
|
+
deep: "#0F172A" # 深底(白字承载)
|
|
14
|
+
# 扩展档(夹具调色:蓝/紫/绿阶 + 浅底)
|
|
15
|
+
blue-soft: "#DBEAFE"
|
|
16
|
+
blue-deep: "#1E3A8A"
|
|
17
|
+
blue-mid: "#3B82F6"
|
|
18
|
+
slate-deep: "#334155"
|
|
19
|
+
slate-soft: "#CBD5E1"
|
|
20
|
+
slate-lite: "#E2E8F0"
|
|
21
|
+
amber-soft: "#FEF3C7"
|
|
22
|
+
amber-deep: "#92400E"
|
|
23
|
+
amber-dark: "#78350F"
|
|
24
|
+
violet: "#8B5CF6"
|
|
25
|
+
green: "#10B981"
|
|
26
|
+
green-soft: "#D1FAE5"
|
|
27
|
+
green-deep: "#065F46"
|
|
28
|
+
textStyles:
|
|
29
|
+
title: {fontSize: 32, color: "$ink", bold: true, fontFamily: "微软雅黑"}
|
|
30
|
+
h1: {fontSize: 22, color: "$ink", bold: true, fontFamily: "微软雅黑"}
|
|
31
|
+
h2: {fontSize: 16, color: "$ink", bold: true, fontFamily: "微软雅黑"}
|
|
32
|
+
body: {fontSize: 14, color: "$ink", fontFamily: "微软雅黑"}
|
|
33
|
+
small: {fontSize: 12, color: "$steel", fontFamily: "微软雅黑"}
|
|
34
|
+
safeArea: {top: 34, bottom: 26, left: 40, right: 40}
|
|
35
|
+
minFontSize: 12
|
|
36
|
+
pages:
|
|
37
|
+
- pages/01_cover.yaml
|
|
38
|
+
- pages/02_arch.yaml
|
|
39
|
+
- pages/03_table.yaml
|
|
40
|
+
- pages/04_chart.yaml
|
|
41
|
+
- pages/05_timeline.yaml
|
|
42
|
+
- pages/06_longtext.yaml
|
|
43
|
+
- pages/07_safearea.yaml
|
|
44
|
+
- pages/08_contrast.yaml
|
|
45
|
+
- pages/09_custgeom.yaml
|
|
46
|
+
- pages/10_numbers.yaml
|
|
47
|
+
- pages/11_section.yaml
|
|
48
|
+
- pages/12_summary.yaml
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
pageType: cover
|
|
2
|
+
background: "#F8FAFC"
|
|
3
|
+
expectedOutOfSafeArea: [band]
|
|
4
|
+
elements:
|
|
5
|
+
- elementId: band
|
|
6
|
+
elementType: shape
|
|
7
|
+
kind: rect
|
|
8
|
+
bounds: [0, 0, 960, 540]
|
|
9
|
+
fill: {type: gradient, stops: [{pos: 0, color: "#0F172A"}, {pos: 100, color: "#2563EB"}], angle: 90}
|
|
10
|
+
- elementId: glow
|
|
11
|
+
elementType: shape
|
|
12
|
+
kind: ellipse
|
|
13
|
+
bounds: [660, 34, 260, 260]
|
|
14
|
+
fill: {color: "#FFFFFF", alpha: 18}
|
|
15
|
+
- elementId: title
|
|
16
|
+
elementType: text
|
|
17
|
+
bounds: [80, 150, 700, 90]
|
|
18
|
+
content: {text: "能力验证演示(自建夹具)", style: "$title", color: "#FFFFFF"}
|
|
19
|
+
- elementId: sub
|
|
20
|
+
elementType: text
|
|
21
|
+
bounds: [80, 260, 600, 50]
|
|
22
|
+
content: {text: "PPTD 中间层 · 声明制 · 双轨审阅", style: "$h1", color: "#CBD5E1"}
|
|
23
|
+
- elementId: badge
|
|
24
|
+
elementType: shape
|
|
25
|
+
kind: chevron
|
|
26
|
+
bounds: [80, 420, 200, 56]
|
|
27
|
+
fill: "#F59E0B"
|
|
28
|
+
- elementId: badge_t
|
|
29
|
+
elementType: text
|
|
30
|
+
bounds: [100, 430, 160, 40]
|
|
31
|
+
content: {text: "v1.0.0", style: "$h2", color: "#0F172A", align: center}
|
|
32
|
+
expectedOverlaps:
|
|
33
|
+
- {pair: [band, glow]}
|
|
34
|
+
- {pair: [band, title]}
|
|
35
|
+
- {pair: [band, sub]}
|
|
36
|
+
- {pair: [band, badge]}
|
|
37
|
+
- {pair: [band, badge_t]}
|
|
38
|
+
- {pair: [glow, title]}
|
|
39
|
+
- {pair: [glow, sub]}
|
|
40
|
+
- {pair: [badge, badge_t]}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
pageType: content
|
|
2
|
+
background: "#F8FAFC"
|
|
3
|
+
source: "夹具自造架构示意(三层嵌套 + 声明闭包)"
|
|
4
|
+
elements:
|
|
5
|
+
- elementId: panel
|
|
6
|
+
elementType: shape
|
|
7
|
+
kind: roundRect
|
|
8
|
+
bounds: [60, 80, 840, 380]
|
|
9
|
+
fill: "#FFFFFF"
|
|
10
|
+
line: {color: "#CBD5E1", width: 1}
|
|
11
|
+
- elementId: box_a
|
|
12
|
+
elementType: shape
|
|
13
|
+
kind: rect
|
|
14
|
+
bounds: [100, 130, 350, 240]
|
|
15
|
+
fill: "#DBEAFE"
|
|
16
|
+
line: {color: "#2563EB", width: 1}
|
|
17
|
+
- elementId: box_a_t
|
|
18
|
+
elementType: text
|
|
19
|
+
bounds: [120, 150, 310, 60]
|
|
20
|
+
content: {text: "领域本体(知识层)", style: "$h2", color: "#1E3A8A"}
|
|
21
|
+
- elementId: box_a_b
|
|
22
|
+
elementType: text
|
|
23
|
+
bounds: [120, 230, 310, 120]
|
|
24
|
+
content: {text: "对象·属性·关系·约束\n换场景 = 换实例,零重构", style: "$body", color: "#334155"}
|
|
25
|
+
- elementId: box_b
|
|
26
|
+
elementType: shape
|
|
27
|
+
kind: rect
|
|
28
|
+
bounds: [510, 130, 350, 240]
|
|
29
|
+
fill: "#FEF3C7"
|
|
30
|
+
line: {color: "#F59E0B", width: 1}
|
|
31
|
+
- elementId: box_b_t
|
|
32
|
+
elementType: text
|
|
33
|
+
bounds: [530, 150, 310, 60]
|
|
34
|
+
content: {text: "仿真内核(执行层)", style: "$h2", color: "#92400E"}
|
|
35
|
+
- elementId: box_b_b
|
|
36
|
+
elementType: text
|
|
37
|
+
bounds: [530, 230, 310, 120]
|
|
38
|
+
content: {text: "车间生产·负载评估·计划跟踪\n结论可迁移(泛化性)", style: "$body", color: "#78350F"}
|
|
39
|
+
- elementId: arrow
|
|
40
|
+
elementType: line
|
|
41
|
+
points: [[450, 250], [508, 250]]
|
|
42
|
+
arrow: true
|
|
43
|
+
line: {color: "#2563EB", width: 2}
|
|
44
|
+
- elementId: foot
|
|
45
|
+
elementType: text
|
|
46
|
+
bounds: [100, 470, 760, 40]
|
|
47
|
+
content: {text: "知识层 → 映射 → 执行层:本体驱动仿真的泛化范式(A8 场景也在本页)", style: "$small"}
|
|
48
|
+
expectedOverlaps:
|
|
49
|
+
- {pair: [panel, box_a]}
|
|
50
|
+
- {pair: [panel, box_b]}
|
|
51
|
+
- {pair: [box_a, box_a_t]}
|
|
52
|
+
- {pair: [box_a, box_a_b]}
|
|
53
|
+
- {pair: [box_b, box_b_t]}
|
|
54
|
+
- {pair: [box_b, box_b_b]}
|
|
55
|
+
# 声明闭包:panel×box_a_t 等隔层对由包含关系传递自动通过,无需声明
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
pageType: content
|
|
2
|
+
background: "#F8FAFC"
|
|
3
|
+
source: "夹具自造表(数据为演示样本)"
|
|
4
|
+
elements:
|
|
5
|
+
- elementId: t_head
|
|
6
|
+
elementType: text
|
|
7
|
+
bounds: [60, 60, 400, 40]
|
|
8
|
+
content: {text: "对策-指标对照表", style: "$h1"}
|
|
9
|
+
- elementId: tbl
|
|
10
|
+
elementType: table
|
|
11
|
+
bounds: [60, 120, 840, 300]
|
|
12
|
+
cols: [对策, 指标A, 指标B, 说明]
|
|
13
|
+
rows:
|
|
14
|
+
- [线表决策辅助, 决策响应-32%, 准确率+12%, 基线 45.6%]
|
|
15
|
+
- [排程优化, 交付周期-18%, 利用率+9%, 中型场景]
|
|
16
|
+
- [生产流程仿真, 节拍-15%, 一次合格率+8%, 泛化验证]
|
|
17
|
+
- elementId: t_note
|
|
18
|
+
elementType: text
|
|
19
|
+
bounds: [60, 450, 840, 40]
|
|
20
|
+
content: {text: "注:数据为演示样本(45.6% 为跨页对账演示数字)", style: "$small"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
pageType: content
|
|
2
|
+
background: "#F8FAFC"
|
|
3
|
+
source: "夹具自造折线(演示)"
|
|
4
|
+
elements:
|
|
5
|
+
- elementId: c_head
|
|
6
|
+
elementType: text
|
|
7
|
+
bounds: [60, 60, 400, 40]
|
|
8
|
+
content: {text: "仿真运行趋势", style: "$h1"}
|
|
9
|
+
- elementId: chart
|
|
10
|
+
elementType: chart
|
|
11
|
+
bounds: [60, 130, 480, 300]
|
|
12
|
+
chart:
|
|
13
|
+
type: line
|
|
14
|
+
data:
|
|
15
|
+
cols: [month, pass]
|
|
16
|
+
rows:
|
|
17
|
+
- ["1月", 92]
|
|
18
|
+
- ["2月", 94]
|
|
19
|
+
- ["3月", 95]
|
|
20
|
+
- ["4月", 96]
|
|
21
|
+
series:
|
|
22
|
+
- {name: 一次合格率, x: month, y: pass}
|
|
23
|
+
colors: ["$primary"]
|
|
24
|
+
- elementId: key
|
|
25
|
+
elementType: shape
|
|
26
|
+
kind: roundRect
|
|
27
|
+
bounds: [580, 130, 320, 300]
|
|
28
|
+
fill: "#FFFFFF"
|
|
29
|
+
line: {color: "#CBD5E1", width: 1}
|
|
30
|
+
- elementId: key_t
|
|
31
|
+
elementType: text
|
|
32
|
+
bounds: [610, 160, 260, 60]
|
|
33
|
+
content: {text: "关键指标", style: "$h2"}
|
|
34
|
+
- elementId: key_body
|
|
35
|
+
elementType: text
|
|
36
|
+
bounds: [610, 240, 260, 160]
|
|
37
|
+
content: {text: "一次合格率 96%(+8pt)\n综合评 45.6% 提升\n节拍 −15%", style: "$body"}
|
|
38
|
+
expectedOverlaps:
|
|
39
|
+
- {pair: [key, key_t]}
|
|
40
|
+
- {pair: [key, key_body]}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
pageType: content
|
|
2
|
+
background: "#F8FAFC"
|
|
3
|
+
elements:
|
|
4
|
+
- elementId: tl_head
|
|
5
|
+
elementType: text
|
|
6
|
+
bounds: [60, 60, 500, 40]
|
|
7
|
+
content: {text: "实施路线(五阶段)", style: "$h1"}
|
|
8
|
+
- elementId: tl_line
|
|
9
|
+
elementType: line
|
|
10
|
+
points: [[80, 200], [860, 200]]
|
|
11
|
+
line: {color: "#94A3B8", width: 2}
|
|
12
|
+
- elementId: st1
|
|
13
|
+
elementType: shape
|
|
14
|
+
kind: pentagon
|
|
15
|
+
bounds: [60, 140, 140, 60]
|
|
16
|
+
fill: "#2563EB"
|
|
17
|
+
- elementId: st1_t
|
|
18
|
+
elementType: text
|
|
19
|
+
bounds: [70, 148, 120, 44]
|
|
20
|
+
content: {text: "建模", style: "$h2", color: "#FFFFFF", align: center}
|
|
21
|
+
- elementId: st2
|
|
22
|
+
elementType: shape
|
|
23
|
+
kind: pentagon
|
|
24
|
+
bounds: [220, 140, 140, 60]
|
|
25
|
+
fill: "#3B82F6"
|
|
26
|
+
- elementId: st2_t
|
|
27
|
+
elementType: text
|
|
28
|
+
bounds: [230, 148, 120, 44]
|
|
29
|
+
content: {text: "映射", style: "$h2", color: "#FFFFFF", align: center}
|
|
30
|
+
- elementId: st3
|
|
31
|
+
elementType: shape
|
|
32
|
+
kind: pentagon
|
|
33
|
+
bounds: [380, 140, 140, 60]
|
|
34
|
+
fill: "#F59E0B"
|
|
35
|
+
- elementId: st3_t
|
|
36
|
+
elementType: text
|
|
37
|
+
bounds: [390, 148, 120, 44]
|
|
38
|
+
content: {text: "仿真", style: "$h2", color: "#FFFFFF", align: center}
|
|
39
|
+
- elementId: st4
|
|
40
|
+
elementType: shape
|
|
41
|
+
kind: pentagon
|
|
42
|
+
bounds: [540, 140, 140, 60]
|
|
43
|
+
fill: "#8B5CF6"
|
|
44
|
+
- elementId: st4_t
|
|
45
|
+
elementType: text
|
|
46
|
+
bounds: [550, 148, 120, 44]
|
|
47
|
+
content: {text: "验证", style: "$h2", color: "#FFFFFF", align: center}
|
|
48
|
+
- elementId: st5
|
|
49
|
+
elementType: shape
|
|
50
|
+
kind: pentagon
|
|
51
|
+
bounds: [700, 140, 140, 60]
|
|
52
|
+
fill: "#10B981"
|
|
53
|
+
- elementId: st5_t
|
|
54
|
+
elementType: text
|
|
55
|
+
bounds: [710, 148, 120, 44]
|
|
56
|
+
content: {text: "推广", style: "$h2", color: "#FFFFFF", align: center}
|
|
57
|
+
- elementId: tl_note
|
|
58
|
+
elementType: text
|
|
59
|
+
bounds: [80, 300, 800, 100]
|
|
60
|
+
content: {text: "单向推进 + 每阶段门禁:建模评审 → 映射校验 → 仿真对标 → 验证报告 → 批量复制\n(时间线为示意图,非真实排期)", style: "$body"}
|
|
61
|
+
expectedOverlaps:
|
|
62
|
+
- {pair: [st1, tl_line]}
|
|
63
|
+
- {pair: [st2, tl_line]}
|
|
64
|
+
- {pair: [st3, tl_line]}
|
|
65
|
+
- {pair: [st4, tl_line]}
|
|
66
|
+
- {pair: [st5, tl_line]}
|
|
67
|
+
- {pair: [st1, st1_t]}
|
|
68
|
+
- {pair: [st2, st2_t]}
|
|
69
|
+
- {pair: [st3, st3_t]}
|
|
70
|
+
- {pair: [st4, st4_t]}
|
|
71
|
+
- {pair: [st5, st5_t]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
pageType: content
|
|
2
|
+
background: "#F8FAFC"
|
|
3
|
+
elements:
|
|
4
|
+
- elementId: lt_head
|
|
5
|
+
elementType: text
|
|
6
|
+
bounds: [60, 60, 500, 40]
|
|
7
|
+
content: {text: "长文本容纳(保守估算 + 显式断行)", style: "$h1"}
|
|
8
|
+
- elementId: lt_body
|
|
9
|
+
elementType: text
|
|
10
|
+
bounds: [60, 130, 840, 340]
|
|
11
|
+
content:
|
|
12
|
+
text: "这一段用于验证长文本在保守估算下的处理:中文全角加粗按 1.06 系数、行高 1.2、标点禁则——\n显式断行是长句的最佳实践,容器也必须给足高度。\n本夹具故意把每行控制在 40 字以内,并预留 340px 高度(约 20 行×16.8px),确保门禁零错误,\n同时验证保守估算不误报:若容器足够,estimate 与实测应一致。"
|
|
13
|
+
style: "$body"
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
pageType: content
|
|
2
|
+
background: "#F8FAFC"
|
|
3
|
+
expectedOutOfSafeArea: [logo, logo_t, footer, footer_t]
|
|
4
|
+
elements:
|
|
5
|
+
- elementId: logo
|
|
6
|
+
elementType: shape
|
|
7
|
+
kind: ellipse
|
|
8
|
+
bounds: [895, 8, 40, 30]
|
|
9
|
+
fill: "#2563EB"
|
|
10
|
+
- elementId: logo_t
|
|
11
|
+
elementType: text
|
|
12
|
+
bounds: [897, 12, 36, 24]
|
|
13
|
+
content: {text: "S", style: "$body", color: "#FFFFFF", align: center}
|
|
14
|
+
- elementId: sa_title
|
|
15
|
+
elementType: text
|
|
16
|
+
bounds: [60, 70, 600, 40]
|
|
17
|
+
content: {text: "安全区与页脚带声明(logo 落在安全区外)", style: "$h1"}
|
|
18
|
+
- elementId: sa_body
|
|
19
|
+
elementType: text
|
|
20
|
+
bounds: [60, 140, 840, 200]
|
|
21
|
+
content: {text: "主题 safeArea 定义为顶/底/左/右 34/26/40/40px:内容不得侵入。\n页脚带(y≥514)属于安全区外——如需放角标,用 expectedOutOfSafeArea 声明(已声明 logo)。", style: "$body"}
|
|
22
|
+
- elementId: footer
|
|
23
|
+
elementType: shape
|
|
24
|
+
kind: rect
|
|
25
|
+
bounds: [0, 514, 960, 26]
|
|
26
|
+
fill: "#E2E8F0"
|
|
27
|
+
- elementId: footer_t
|
|
28
|
+
elementType: text
|
|
29
|
+
bounds: [60, 518, 300, 20]
|
|
30
|
+
content: {text: "页脚带:夹具页脚 © v1.0.0", style: "$small"}
|
|
31
|
+
expectedOverlaps:
|
|
32
|
+
- {pair: [logo, logo_t]}
|
|
33
|
+
- {pair: [footer, footer_t]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
pageType: content
|
|
2
|
+
background: "#F8FAFC"
|
|
3
|
+
elements:
|
|
4
|
+
- elementId: ct_head
|
|
5
|
+
elementType: text
|
|
6
|
+
bounds: [60, 60, 600, 40]
|
|
7
|
+
content: {text: "对比度承载面(渐变深底白字)", style: "$h1"}
|
|
8
|
+
- elementId: carrier
|
|
9
|
+
elementType: shape
|
|
10
|
+
kind: parallelogram
|
|
11
|
+
bounds: [60, 150, 400, 180]
|
|
12
|
+
fill: {type: gradient, stops: [{pos: 0, color: "#0F172A"}, {pos: 100, color: "#2563EB"}], angle: 90}
|
|
13
|
+
- elementId: carrier_t
|
|
14
|
+
elementType: text
|
|
15
|
+
bounds: [110, 230, 300, 60]
|
|
16
|
+
content: {text: "深底上的白字", style: "$h2", color: "#FFFFFF", align: center}
|
|
17
|
+
- elementId: ct_note
|
|
18
|
+
elementType: text
|
|
19
|
+
bounds: [520, 170, 380, 140]
|
|
20
|
+
content: {text: '对比度启发式以最近承载面(渐变中途 stop)为基准——本页不应报"白字 vs 页面背景"误报。', style: "$body"}
|
|
21
|
+
expectedOverlaps:
|
|
22
|
+
- {pair: [carrier, carrier_t]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
pageType: content
|
|
2
|
+
background: "#F8FAFC"
|
|
3
|
+
expectedOutOfSafeArea: [arc]
|
|
4
|
+
elements:
|
|
5
|
+
- elementId: cg_head
|
|
6
|
+
elementType: text
|
|
7
|
+
bounds: [60, 60, 600, 40]
|
|
8
|
+
content: {text: "custGeom 自定义几何(弧带装饰)", style: "$h1"}
|
|
9
|
+
- elementId: arc
|
|
10
|
+
elementType: shape
|
|
11
|
+
kind: custGeom
|
|
12
|
+
bounds: [600, 320, 320, 200]
|
|
13
|
+
path:
|
|
14
|
+
w: 320
|
|
15
|
+
h: 200
|
|
16
|
+
commands:
|
|
17
|
+
- {cmd: moveTo, pts: [[0, 200]]}
|
|
18
|
+
- {cmd: arcTo, pts: [[160, 100]], wR: 160, hR: 100, stAng: 0, swAng: 5400000}
|
|
19
|
+
- {cmd: lnTo, pts: [[200, 60]]}
|
|
20
|
+
- {cmd: cubicBezTo, pts: [[180, 40], [120, 20], [0, 20]]}
|
|
21
|
+
- {cmd: close}
|
|
22
|
+
fill: {color: "#2563EB", alpha: 35}
|
|
23
|
+
- elementId: cg_body
|
|
24
|
+
elementType: text
|
|
25
|
+
bounds: [60, 140, 500, 160]
|
|
26
|
+
content: {text: "弧带为装饰层(role: decoration 豁免重叠);几何:moveTo/arcTo/lnTo/cubicBezTo/close。", style: "$body"}
|
|
27
|
+
- elementId: deco
|
|
28
|
+
elementType: shape
|
|
29
|
+
kind: ellipse
|
|
30
|
+
bounds: [700, 60, 120, 120]
|
|
31
|
+
fill: {color: "#F59E0B", alpha: 30}
|
|
32
|
+
role: decoration
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
pageType: content
|
|
2
|
+
background: "#F8FAFC"
|
|
3
|
+
source: "夹具自造摘要(45.6% 与 04 页跨页)"
|
|
4
|
+
elements:
|
|
5
|
+
- elementId: num_card
|
|
6
|
+
elementType: shape
|
|
7
|
+
kind: roundRect
|
|
8
|
+
bounds: [60, 90, 380, 220]
|
|
9
|
+
fill: "#FFFFFF"
|
|
10
|
+
line: {color: "#CBD5E1", width: 1}
|
|
11
|
+
- elementId: num_v
|
|
12
|
+
elementType: text
|
|
13
|
+
bounds: [100, 120, 300, 80]
|
|
14
|
+
content: {text: "45.6%", style: "$title", color: "#2563EB", align: center}
|
|
15
|
+
- elementId: num_l
|
|
16
|
+
elementType: text
|
|
17
|
+
bounds: [100, 220, 300, 40]
|
|
18
|
+
content: {text: "综合效率提升(与 04 页同值)", style: "$small", align: center}
|
|
19
|
+
- elementId: num_note
|
|
20
|
+
elementType: text
|
|
21
|
+
bounds: [480, 120, 420, 160]
|
|
22
|
+
content: {text: "跨页演示:本页 45.6% 与第 04 页 key_body 的 45.6% 应出现在 ppt_crosscheck 材料包。", style: "$body"}
|
|
23
|
+
expectedOverlaps:
|
|
24
|
+
- {pair: [num_card, num_v]}
|
|
25
|
+
- {pair: [num_card, num_l]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
pageType: content
|
|
2
|
+
background: "#F8FAFC"
|
|
3
|
+
expectedOutOfSafeArea: [sec_band]
|
|
4
|
+
elements:
|
|
5
|
+
- elementId: sec_band
|
|
6
|
+
elementType: shape
|
|
7
|
+
kind: rect
|
|
8
|
+
bounds: [0, 0, 960, 540]
|
|
9
|
+
fill: "#0F172A"
|
|
10
|
+
- elementId: sec_num
|
|
11
|
+
elementType: text
|
|
12
|
+
bounds: [80, 180, 300, 120]
|
|
13
|
+
content: {text: "03", style: "$title", color: "#F59E0B"}
|
|
14
|
+
- elementId: sec_t
|
|
15
|
+
elementType: text
|
|
16
|
+
bounds: [400, 200, 480, 80]
|
|
17
|
+
content: {text: "验证与展望", style: "$title", color: "#FFFFFF"}
|
|
18
|
+
expectedOverlaps:
|
|
19
|
+
- {pair: [sec_band, sec_num]}
|
|
20
|
+
- {pair: [sec_band, sec_t]}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
pageType: content
|
|
2
|
+
background: "#F8FAFC"
|
|
3
|
+
elements:
|
|
4
|
+
- elementId: sm_head
|
|
5
|
+
elementType: text
|
|
6
|
+
bounds: [60, 60, 600, 40]
|
|
7
|
+
content: {text: "总结:一条可验证的生产线", style: "$h1"}
|
|
8
|
+
- elementId: sm_a
|
|
9
|
+
elementType: shape
|
|
10
|
+
kind: roundRect
|
|
11
|
+
bounds: [60, 130, 260, 180]
|
|
12
|
+
fill: "#DBEAFE"
|
|
13
|
+
- elementId: sm_a_t
|
|
14
|
+
elementType: text
|
|
15
|
+
bounds: [80, 150, 220, 60]
|
|
16
|
+
content: {text: "声明制", style: "$h2", color: "#1E3A8A", align: center}
|
|
17
|
+
- elementId: sm_a_b
|
|
18
|
+
elementType: text
|
|
19
|
+
bounds: [80, 220, 220, 70]
|
|
20
|
+
content: {text: "冲突防不住?声明设计意图", style: "$body"}
|
|
21
|
+
- elementId: sm_b
|
|
22
|
+
elementType: shape
|
|
23
|
+
kind: roundRect
|
|
24
|
+
bounds: [350, 130, 260, 180]
|
|
25
|
+
fill: "#FEF3C7"
|
|
26
|
+
- elementId: sm_b_t
|
|
27
|
+
elementType: text
|
|
28
|
+
bounds: [370, 150, 220, 60]
|
|
29
|
+
content: {text: "双轨审阅", style: "$h2", color: "#92400E", align: center}
|
|
30
|
+
- elementId: sm_b_b
|
|
31
|
+
elementType: text
|
|
32
|
+
bounds: [370, 220, 220, 70]
|
|
33
|
+
content: {text: "数字门禁 + 视觉审阅 + 真渲染", style: "$body"}
|
|
34
|
+
- elementId: sm_c
|
|
35
|
+
elementType: shape
|
|
36
|
+
kind: roundRect
|
|
37
|
+
bounds: [640, 130, 260, 180]
|
|
38
|
+
fill: "#D1FAE5"
|
|
39
|
+
- elementId: sm_c_t
|
|
40
|
+
elementType: text
|
|
41
|
+
bounds: [660, 150, 220, 60]
|
|
42
|
+
content: {text: "保真交付", style: "$h2", color: "#065F46", align: center}
|
|
43
|
+
- elementId: sm_c_b
|
|
44
|
+
elementType: text
|
|
45
|
+
bounds: [660, 220, 220, 70]
|
|
46
|
+
content: {text: "splice / slice / patch", style: "$body"}
|
|
47
|
+
- elementId: sm_foot
|
|
48
|
+
elementType: text
|
|
49
|
+
bounds: [60, 360, 840, 90]
|
|
50
|
+
content: {text: "结论:元素区块冲突被机器防住(声明制),质量可验证(三轨),保真可一指令(splice)。", style: "$body"}
|
|
51
|
+
expectedOverlaps:
|
|
52
|
+
- {pair: [sm_a, sm_a_t]}
|
|
53
|
+
- {pair: [sm_a, sm_a_b]}
|
|
54
|
+
- {pair: [sm_b, sm_b_t]}
|
|
55
|
+
- {pair: [sm_b, sm_b_b]}
|
|
56
|
+
- {pair: [sm_c, sm_c_t]}
|
|
57
|
+
- {pair: [sm_c, sm_c_b]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<!doctype html><html><head><meta charset="utf-8"><style>*{box-sizing:border-box;margin:0}body{background:#64748b} .slide{position:relative;width:960px;height:540px;background:#F8FAFC;box-shadow:0 2px 12px rgba(0,0,0,.3);overflow:hidden}</style></head><body><div class="slide"><div class="el" id="band" data-kind="shape" data-shape="rect" style="position:absolute;left:0px;top:0px;width:960px;height:540px;background:linear-gradient(180deg, #0F172A 0%, #2563EB 100%)"></div><div class="el" id="glow" data-kind="shape" data-shape="ellipse" style="position:absolute;left:660px;top:34px;width:260px;height:260px;border-radius:50%;background:rgba(255,255,255,0.180)"></div><div class="el" id="title" data-kind="text" style="position:absolute;left:80px;top:150px;width:700px;height:90px;font-size:32px;line-height:1.2;color:#FFFFFF;font-family:微软雅黑;font-weight:bold;overflow:visible;white-space:pre-wrap;word-break:break-word">能力验证演示(自建夹具)</div><div class="el" id="sub" data-kind="text" style="position:absolute;left:80px;top:260px;width:600px;height:50px;font-size:22px;line-height:1.2;color:#CBD5E1;font-family:微软雅黑;font-weight:bold;overflow:visible;white-space:pre-wrap;word-break:break-word">PPTD 中间层 · 声明制 · 双轨审阅</div><div class="el" id="badge" data-kind="shape" data-shape="chevron" style="position:absolute;left:80px;top:420px;width:200px;height:56px;clip-path:polygon(0 0,80% 0,100% 50%,80% 100%,0 100%,20% 50%);background:#F59E0B"></div><div class="el" id="badge_t" data-kind="text" style="position:absolute;left:100px;top:430px;width:160px;height:40px;font-size:16px;line-height:1.2;color:#0F172A;font-family:微软雅黑;font-weight:bold;text-align:center;overflow:visible;white-space:pre-wrap;word-break:break-word">v1.0.0</div></div></body></html>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<!doctype html><html><head><meta charset="utf-8"><style>*{box-sizing:border-box;margin:0}body{background:#64748b} .slide{position:relative;width:960px;height:540px;background:#F8FAFC;box-shadow:0 2px 12px rgba(0,0,0,.3);overflow:hidden}</style></head><body><div class="slide"><div class="el" id="panel" data-kind="shape" data-shape="roundRect" style="position:absolute;left:60px;top:80px;width:840px;height:380px;border-radius:8px;background:#FFFFFF;border:1px solid #CBD5E1"></div><div class="el" id="box_a" data-kind="shape" data-shape="rect" style="position:absolute;left:100px;top:130px;width:350px;height:240px;background:#DBEAFE;border:1px solid #2563EB"></div><div class="el" id="box_a_t" data-kind="text" style="position:absolute;left:120px;top:150px;width:310px;height:60px;font-size:16px;line-height:1.2;color:#1E3A8A;font-family:微软雅黑;font-weight:bold;overflow:visible;white-space:pre-wrap;word-break:break-word">领域本体(知识层)</div><div class="el" id="box_a_b" data-kind="text" style="position:absolute;left:120px;top:230px;width:310px;height:120px;font-size:14px;line-height:1.2;color:#334155;font-family:微软雅黑;overflow:visible;white-space:pre-wrap;word-break:break-word">对象·属性·关系·约束
|
|
2
|
+
换场景 = 换实例,零重构</div><div class="el" id="box_b" data-kind="shape" data-shape="rect" style="position:absolute;left:510px;top:130px;width:350px;height:240px;background:#FEF3C7;border:1px solid #F59E0B"></div><div class="el" id="box_b_t" data-kind="text" style="position:absolute;left:530px;top:150px;width:310px;height:60px;font-size:16px;line-height:1.2;color:#92400E;font-family:微软雅黑;font-weight:bold;overflow:visible;white-space:pre-wrap;word-break:break-word">仿真内核(执行层)</div><div class="el" id="box_b_b" data-kind="text" style="position:absolute;left:530px;top:230px;width:310px;height:120px;font-size:14px;line-height:1.2;color:#78350F;font-family:微软雅黑;overflow:visible;white-space:pre-wrap;word-break:break-word">车间生产·负载评估·计划跟踪
|
|
3
|
+
结论可迁移(泛化性)</div><svg style="position:absolute;left:450px;top:250px;width:58px;height:1px;pointer-events:none" viewBox="450 250 58 1" xmlns="http://www.w3.org/2000/svg"><defs><marker id="arr" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto"><path d="M0,0 L8,4 L0,8 z" fill="#2563EB"/></marker></defs><line x1="450" y1="250" x2="508" y2="250" stroke="#2563EB" stroke-width="2" marker-end="url(#arr)"/></svg><div class="el" id="foot" data-kind="text" style="position:absolute;left:100px;top:470px;width:760px;height:40px;font-size:12px;line-height:1.2;color:#64748B;font-family:微软雅黑;overflow:visible;white-space:pre-wrap;word-break:break-word">知识层 → 映射 → 执行层:本体驱动仿真的泛化范式(A8 场景也在本页)</div></div></body></html>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<!doctype html><html><head><meta charset="utf-8"><style>*{box-sizing:border-box;margin:0}body{background:#64748b} .slide{position:relative;width:960px;height:540px;background:#F8FAFC;box-shadow:0 2px 12px rgba(0,0,0,.3);overflow:hidden}</style></head><body><div class="slide"><div class="el" id="t_head" data-kind="text" style="position:absolute;left:60px;top:60px;width:400px;height:40px;font-size:22px;line-height:1.2;color:#1F2937;font-family:微软雅黑;font-weight:bold;overflow:visible;white-space:pre-wrap;word-break:break-word">对策-指标对照表</div><table class="el" id="tbl" data-kind="table" style="position:absolute;left:60px;top:120px;width:840px;height:300px;border-collapse:collapse"><tbody><tr><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:12px">对策</td><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:12px">指标A</td><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:12px">指标B</td><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:12px">说明</td></tr><tr><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:12px">线表决策辅助</td><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:12px">决策响应-32%</td><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:12px">准确率+12%</td><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:12px">基线 45.6%</td></tr><tr><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:12px">排程优化</td><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:12px">交付周期-18%</td><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:12px">利用率+9%</td><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:12px">中型场景</td></tr><tr><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:12px">生产流程仿真</td><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:12px">节拍-15%</td><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:12px">一次合格率+8%</td><td style="border:1px solid #cbd5e1;padding:4px 8px;font-size:12px">泛化验证</td></tr></tbody></table><div class="el" id="t_note" data-kind="text" style="position:absolute;left:60px;top:450px;width:840px;height:40px;font-size:12px;line-height:1.2;color:#64748B;font-family:微软雅黑;overflow:visible;white-space:pre-wrap;word-break:break-word">注:数据为演示样本(45.6% 为跨页对账演示数字)</div></div></body></html>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<!doctype html><html><head><meta charset="utf-8"><style>*{box-sizing:border-box;margin:0}body{background:#64748b} .slide{position:relative;width:960px;height:540px;background:#F8FAFC;box-shadow:0 2px 12px rgba(0,0,0,.3);overflow:hidden}</style></head><body><div class="slide"><div class="el" id="c_head" data-kind="text" style="position:absolute;left:60px;top:60px;width:400px;height:40px;font-size:22px;line-height:1.2;color:#1F2937;font-family:微软雅黑;font-weight:bold;overflow:visible;white-space:pre-wrap;word-break:break-word">仿真运行趋势</div><div class="el" id="chart" data-kind="chart" style="position:absolute;left:60px;top:130px;width:480px;height:300px"><svg viewBox="0 0 480 300" width="480" height="300" xmlns="http://www.w3.org/2000/svg" style="display:block"><line x1="36" y1="12" x2="468" y2="12" stroke="#e2e8f0" stroke-width="1"/><text x="32" y="15" font-size="9" fill="#64748b" text-anchor="end">96</text><line x1="36" y1="77" x2="468" y2="77" stroke="#e2e8f0" stroke-width="1"/><text x="32" y="80" font-size="9" fill="#64748b" text-anchor="end">72</text><line x1="36" y1="142" x2="468" y2="142" stroke="#e2e8f0" stroke-width="1"/><text x="32" y="145" font-size="9" fill="#64748b" text-anchor="end">48</text><line x1="36" y1="207" x2="468" y2="207" stroke="#e2e8f0" stroke-width="1"/><text x="32" y="210" font-size="9" fill="#64748b" text-anchor="end">24</text><line x1="36" y1="272" x2="468" y2="272" stroke="#e2e8f0" stroke-width="1"/><text x="32" y="275" font-size="9" fill="#64748b" text-anchor="end">0</text><polyline points="90.0,22.8 198.0,17.4 306.0,14.7 414.0,12.0" fill="none" stroke="#2563EB" stroke-width="2"/><circle cx="90.0" cy="22.8" r="2.5" fill="#2563EB"><title>1月: 92</title></circle><circle cx="198.0" cy="17.4" r="2.5" fill="#2563EB"><title>2月: 94</title></circle><circle cx="306.0" cy="14.7" r="2.5" fill="#2563EB"><title>3月: 95</title></circle><circle cx="414.0" cy="12.0" r="2.5" fill="#2563EB"><title>4月: 96</title></circle><text x="90.0" y="292" font-size="9" fill="#475569" text-anchor="middle">1月</text><text x="198.0" y="292" font-size="9" fill="#475569" text-anchor="middle">2月</text><text x="306.0" y="292" font-size="9" fill="#475569" text-anchor="middle">3月</text><text x="414.0" y="292" font-size="9" fill="#475569" text-anchor="middle">4月</text></svg></div><div class="el" id="key" data-kind="shape" data-shape="roundRect" style="position:absolute;left:580px;top:130px;width:320px;height:300px;border-radius:8px;background:#FFFFFF;border:1px solid #CBD5E1"></div><div class="el" id="key_t" data-kind="text" style="position:absolute;left:610px;top:160px;width:260px;height:60px;font-size:16px;line-height:1.2;color:#1F2937;font-family:微软雅黑;font-weight:bold;overflow:visible;white-space:pre-wrap;word-break:break-word">关键指标</div><div class="el" id="key_body" data-kind="text" style="position:absolute;left:610px;top:240px;width:260px;height:160px;font-size:14px;line-height:1.2;color:#1F2937;font-family:微软雅黑;overflow:visible;white-space:pre-wrap;word-break:break-word">一次合格率 96%(+8pt)
|
|
2
|
+
综合评 45.6% 提升
|
|
3
|
+
节拍 −15%</div></div></body></html>
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
<!doctype html><html><head><meta charset="utf-8"><style>*{box-sizing:border-box;margin:0}body{background:#64748b} .slide{position:relative;width:960px;height:540px;background:#F8FAFC;box-shadow:0 2px 12px rgba(0,0,0,.3);overflow:hidden}</style></head><body><div class="slide"><div class="el" id="tl_head" data-kind="text" style="position:absolute;left:60px;top:60px;width:500px;height:40px;font-size:22px;line-height:1.2;color:#1F2937;font-family:微软雅黑;font-weight:bold;overflow:visible;white-space:pre-wrap;word-break:break-word">实施路线(五阶段)</div><svg style="position:absolute;left:80px;top:200px;width:780px;height:1px;pointer-events:none" viewBox="80 200 780 1" xmlns="http://www.w3.org/2000/svg"><defs><marker id="arr" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto"><path d="M0,0 L8,4 L0,8 z" fill="#94A3B8"/></marker></defs><line x1="80" y1="200" x2="860" y2="200" stroke="#94A3B8" stroke-width="2"/></svg><div class="el" id="st1" data-kind="shape" data-shape="pentagon" style="position:absolute;left:60px;top:140px;width:140px;height:60px;clip-path:polygon(50% 0,100% 38%,82% 100%,18% 100%,0 38%);background:#2563EB"></div><div class="el" id="st1_t" data-kind="text" style="position:absolute;left:70px;top:148px;width:120px;height:44px;font-size:16px;line-height:1.2;color:#FFFFFF;font-family:微软雅黑;font-weight:bold;text-align:center;overflow:visible;white-space:pre-wrap;word-break:break-word">建模</div><div class="el" id="st2" data-kind="shape" data-shape="pentagon" style="position:absolute;left:220px;top:140px;width:140px;height:60px;clip-path:polygon(50% 0,100% 38%,82% 100%,18% 100%,0 38%);background:#3B82F6"></div><div class="el" id="st2_t" data-kind="text" style="position:absolute;left:230px;top:148px;width:120px;height:44px;font-size:16px;line-height:1.2;color:#FFFFFF;font-family:微软雅黑;font-weight:bold;text-align:center;overflow:visible;white-space:pre-wrap;word-break:break-word">映射</div><div class="el" id="st3" data-kind="shape" data-shape="pentagon" style="position:absolute;left:380px;top:140px;width:140px;height:60px;clip-path:polygon(50% 0,100% 38%,82% 100%,18% 100%,0 38%);background:#F59E0B"></div><div class="el" id="st3_t" data-kind="text" style="position:absolute;left:390px;top:148px;width:120px;height:44px;font-size:16px;line-height:1.2;color:#FFFFFF;font-family:微软雅黑;font-weight:bold;text-align:center;overflow:visible;white-space:pre-wrap;word-break:break-word">仿真</div><div class="el" id="st4" data-kind="shape" data-shape="pentagon" style="position:absolute;left:540px;top:140px;width:140px;height:60px;clip-path:polygon(50% 0,100% 38%,82% 100%,18% 100%,0 38%);background:#8B5CF6"></div><div class="el" id="st4_t" data-kind="text" style="position:absolute;left:550px;top:148px;width:120px;height:44px;font-size:16px;line-height:1.2;color:#FFFFFF;font-family:微软雅黑;font-weight:bold;text-align:center;overflow:visible;white-space:pre-wrap;word-break:break-word">验证</div><div class="el" id="st5" data-kind="shape" data-shape="pentagon" style="position:absolute;left:700px;top:140px;width:140px;height:60px;clip-path:polygon(50% 0,100% 38%,82% 100%,18% 100%,0 38%);background:#10B981"></div><div class="el" id="st5_t" data-kind="text" style="position:absolute;left:710px;top:148px;width:120px;height:44px;font-size:16px;line-height:1.2;color:#FFFFFF;font-family:微软雅黑;font-weight:bold;text-align:center;overflow:visible;white-space:pre-wrap;word-break:break-word">推广</div><div class="el" id="tl_note" data-kind="text" style="position:absolute;left:80px;top:300px;width:800px;height:100px;font-size:14px;line-height:1.2;color:#1F2937;font-family:微软雅黑;overflow:visible;white-space:pre-wrap;word-break:break-word">单向推进 + 每阶段门禁:建模评审 → 映射校验 → 仿真对标 → 验证报告 → 批量复制
|
|
2
|
+
(时间线为示意图,非真实排期)</div></div></body></html>
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<!doctype html><html><head><meta charset="utf-8"><style>*{box-sizing:border-box;margin:0}body{background:#64748b} .slide{position:relative;width:960px;height:540px;background:#F8FAFC;box-shadow:0 2px 12px rgba(0,0,0,.3);overflow:hidden}</style></head><body><div class="slide"><div class="el" id="lt_head" data-kind="text" style="position:absolute;left:60px;top:60px;width:500px;height:40px;font-size:22px;line-height:1.2;color:#1F2937;font-family:微软雅黑;font-weight:bold;overflow:visible;white-space:pre-wrap;word-break:break-word">长文本容纳(保守估算 + 显式断行)</div><div class="el" id="lt_body" data-kind="text" style="position:absolute;left:60px;top:130px;width:840px;height:340px;font-size:14px;line-height:1.2;color:#1F2937;font-family:微软雅黑;overflow:visible;white-space:pre-wrap;word-break:break-word">这一段用于验证长文本在保守估算下的处理:中文全角加粗按 1.06 系数、行高 1.2、标点禁则——
|
|
2
|
+
显式断行是长句的最佳实践,容器也必须给足高度。
|
|
3
|
+
本夹具故意把每行控制在 40 字以内,并预留 340px 高度(约 20 行×16.8px),确保门禁零错误,
|
|
4
|
+
同时验证保守估算不误报:若容器足够,estimate 与实测应一致。</div></div></body></html>
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
<!doctype html><html><head><meta charset="utf-8"><style>*{box-sizing:border-box;margin:0}body{background:#64748b} .slide{position:relative;width:960px;height:540px;background:#F8FAFC;box-shadow:0 2px 12px rgba(0,0,0,.3);overflow:hidden}</style></head><body><div class="slide"><div class="el" id="logo" data-kind="shape" data-shape="ellipse" style="position:absolute;left:895px;top:8px;width:40px;height:30px;border-radius:50%;background:#2563EB"></div><div class="el" id="logo_t" data-kind="text" style="position:absolute;left:897px;top:12px;width:36px;height:24px;font-size:14px;line-height:1.2;color:#FFFFFF;font-family:微软雅黑;text-align:center;overflow:visible;white-space:pre-wrap;word-break:break-word">S</div><div class="el" id="sa_title" data-kind="text" style="position:absolute;left:60px;top:70px;width:600px;height:40px;font-size:22px;line-height:1.2;color:#1F2937;font-family:微软雅黑;font-weight:bold;overflow:visible;white-space:pre-wrap;word-break:break-word">安全区与页脚带声明(logo 落在安全区外)</div><div class="el" id="sa_body" data-kind="text" style="position:absolute;left:60px;top:140px;width:840px;height:200px;font-size:14px;line-height:1.2;color:#1F2937;font-family:微软雅黑;overflow:visible;white-space:pre-wrap;word-break:break-word">主题 safeArea 定义为顶/底/左/右 34/26/40/40px:内容不得侵入。
|
|
2
|
+
页脚带(y≥514)属于安全区外——如需放角标,用 expectedOutOfSafeArea 声明(已声明 logo)。</div><div class="el" id="footer" data-kind="shape" data-shape="rect" style="position:absolute;left:0px;top:514px;width:960px;height:26px;background:#E2E8F0"></div><div class="el" id="footer_t" data-kind="text" style="position:absolute;left:60px;top:518px;width:300px;height:20px;font-size:12px;line-height:1.2;color:#64748B;font-family:微软雅黑;overflow:visible;white-space:pre-wrap;word-break:break-word">页脚带:夹具页脚 © v1.0.0</div></div></body></html>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<!doctype html><html><head><meta charset="utf-8"><style>*{box-sizing:border-box;margin:0}body{background:#64748b} .slide{position:relative;width:960px;height:540px;background:#F8FAFC;box-shadow:0 2px 12px rgba(0,0,0,.3);overflow:hidden}</style></head><body><div class="slide"><div class="el" id="ct_head" data-kind="text" style="position:absolute;left:60px;top:60px;width:600px;height:40px;font-size:22px;line-height:1.2;color:#1F2937;font-family:微软雅黑;font-weight:bold;overflow:visible;white-space:pre-wrap;word-break:break-word">对比度承载面(渐变深底白字)</div><div class="el" id="carrier" data-kind="shape" data-shape="parallelogram" style="position:absolute;left:60px;top:150px;width:400px;height:180px;clip-path:polygon(20% 0,100% 0,80% 100%,0 100%);background:linear-gradient(180deg, #0F172A 0%, #2563EB 100%)"></div><div class="el" id="carrier_t" data-kind="text" style="position:absolute;left:110px;top:230px;width:300px;height:60px;font-size:16px;line-height:1.2;color:#FFFFFF;font-family:微软雅黑;font-weight:bold;text-align:center;overflow:visible;white-space:pre-wrap;word-break:break-word">深底上的白字</div><div class="el" id="ct_note" data-kind="text" style="position:absolute;left:520px;top:170px;width:380px;height:140px;font-size:14px;line-height:1.2;color:#1F2937;font-family:微软雅黑;overflow:visible;white-space:pre-wrap;word-break:break-word">对比度启发式以最近承载面(渐变中途 stop)为基准——本页不应报"白字 vs 页面背景"误报。</div></div></body></html>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<!doctype html><html><head><meta charset="utf-8"><style>*{box-sizing:border-box;margin:0}body{background:#64748b} .slide{position:relative;width:960px;height:540px;background:#F8FAFC;box-shadow:0 2px 12px rgba(0,0,0,.3);overflow:hidden}</style></head><body><div class="slide"><div class="el" id="cg_head" data-kind="text" style="position:absolute;left:60px;top:60px;width:600px;height:40px;font-size:22px;line-height:1.2;color:#1F2937;font-family:微软雅黑;font-weight:bold;overflow:visible;white-space:pre-wrap;word-break:break-word">custGeom 自定义几何(弧带装饰)</div><svg class="el" id="arc" data-kind="shape" data-shape="custGeom" style="position:absolute;left:600px;top:320px;width:320px;height:200px;overflow:visible" viewBox="0 0 320 200" preserveAspectRatio="none"><path d="M 0 200 A 160 100 0 0 1 -160.00 300.00 L 200 60 C 180 40 120 20 0 20 Z" fill="rgba(37,99,235,0.350)" stroke="none" stroke-width="0"/></svg><div class="el" id="cg_body" data-kind="text" style="position:absolute;left:60px;top:140px;width:500px;height:160px;font-size:14px;line-height:1.2;color:#1F2937;font-family:微软雅黑;overflow:visible;white-space:pre-wrap;word-break:break-word">弧带为装饰层(role: decoration 豁免重叠);几何:moveTo/arcTo/lnTo/cubicBezTo/close。</div><div class="el" id="deco" data-kind="shape" data-shape="ellipse" style="position:absolute;left:700px;top:60px;width:120px;height:120px;border-radius:50%;background:rgba(245,158,11,0.300)"></div></div></body></html>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<!doctype html><html><head><meta charset="utf-8"><style>*{box-sizing:border-box;margin:0}body{background:#64748b} .slide{position:relative;width:960px;height:540px;background:#F8FAFC;box-shadow:0 2px 12px rgba(0,0,0,.3);overflow:hidden}</style></head><body><div class="slide"><div class="el" id="num_card" data-kind="shape" data-shape="roundRect" style="position:absolute;left:60px;top:90px;width:380px;height:220px;border-radius:8px;background:#FFFFFF;border:1px solid #CBD5E1"></div><div class="el" id="num_v" data-kind="text" style="position:absolute;left:100px;top:120px;width:300px;height:80px;font-size:32px;line-height:1.2;color:#2563EB;font-family:微软雅黑;font-weight:bold;text-align:center;overflow:visible;white-space:pre-wrap;word-break:break-word">45.6%</div><div class="el" id="num_l" data-kind="text" style="position:absolute;left:100px;top:220px;width:300px;height:40px;font-size:12px;line-height:1.2;color:#64748B;font-family:微软雅黑;text-align:center;overflow:visible;white-space:pre-wrap;word-break:break-word">综合效率提升(与 04 页同值)</div><div class="el" id="num_note" data-kind="text" style="position:absolute;left:480px;top:120px;width:420px;height:160px;font-size:14px;line-height:1.2;color:#1F2937;font-family:微软雅黑;overflow:visible;white-space:pre-wrap;word-break:break-word">跨页演示:本页 45.6% 与第 04 页 key_body 的 45.6% 应出现在 ppt_crosscheck 材料包。</div></div></body></html>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<!doctype html><html><head><meta charset="utf-8"><style>*{box-sizing:border-box;margin:0}body{background:#64748b} .slide{position:relative;width:960px;height:540px;background:#F8FAFC;box-shadow:0 2px 12px rgba(0,0,0,.3);overflow:hidden}</style></head><body><div class="slide"><div class="el" id="sec_band" data-kind="shape" data-shape="rect" style="position:absolute;left:0px;top:0px;width:960px;height:540px;background:#0F172A"></div><div class="el" id="sec_num" data-kind="text" style="position:absolute;left:80px;top:180px;width:300px;height:120px;font-size:32px;line-height:1.2;color:#F59E0B;font-family:微软雅黑;font-weight:bold;overflow:visible;white-space:pre-wrap;word-break:break-word">03</div><div class="el" id="sec_t" data-kind="text" style="position:absolute;left:400px;top:200px;width:480px;height:80px;font-size:32px;line-height:1.2;color:#FFFFFF;font-family:微软雅黑;font-weight:bold;overflow:visible;white-space:pre-wrap;word-break:break-word">验证与展望</div></div></body></html>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<!doctype html><html><head><meta charset="utf-8"><style>*{box-sizing:border-box;margin:0}body{background:#64748b} .slide{position:relative;width:960px;height:540px;background:#F8FAFC;box-shadow:0 2px 12px rgba(0,0,0,.3);overflow:hidden}</style></head><body><div class="slide"><div class="el" id="sm_head" data-kind="text" style="position:absolute;left:60px;top:60px;width:600px;height:40px;font-size:22px;line-height:1.2;color:#1F2937;font-family:微软雅黑;font-weight:bold;overflow:visible;white-space:pre-wrap;word-break:break-word">总结:一条可验证的生产线</div><div class="el" id="sm_a" data-kind="shape" data-shape="roundRect" style="position:absolute;left:60px;top:130px;width:260px;height:180px;border-radius:8px;background:#DBEAFE"></div><div class="el" id="sm_a_t" data-kind="text" style="position:absolute;left:80px;top:150px;width:220px;height:60px;font-size:16px;line-height:1.2;color:#1E3A8A;font-family:微软雅黑;font-weight:bold;text-align:center;overflow:visible;white-space:pre-wrap;word-break:break-word">声明制</div><div class="el" id="sm_a_b" data-kind="text" style="position:absolute;left:80px;top:220px;width:220px;height:70px;font-size:14px;line-height:1.2;color:#1F2937;font-family:微软雅黑;overflow:visible;white-space:pre-wrap;word-break:break-word">冲突防不住?声明设计意图</div><div class="el" id="sm_b" data-kind="shape" data-shape="roundRect" style="position:absolute;left:350px;top:130px;width:260px;height:180px;border-radius:8px;background:#FEF3C7"></div><div class="el" id="sm_b_t" data-kind="text" style="position:absolute;left:370px;top:150px;width:220px;height:60px;font-size:16px;line-height:1.2;color:#92400E;font-family:微软雅黑;font-weight:bold;text-align:center;overflow:visible;white-space:pre-wrap;word-break:break-word">双轨审阅</div><div class="el" id="sm_b_b" data-kind="text" style="position:absolute;left:370px;top:220px;width:220px;height:70px;font-size:14px;line-height:1.2;color:#1F2937;font-family:微软雅黑;overflow:visible;white-space:pre-wrap;word-break:break-word">数字门禁 + 视觉审阅 + 真渲染</div><div class="el" id="sm_c" data-kind="shape" data-shape="roundRect" style="position:absolute;left:640px;top:130px;width:260px;height:180px;border-radius:8px;background:#D1FAE5"></div><div class="el" id="sm_c_t" data-kind="text" style="position:absolute;left:660px;top:150px;width:220px;height:60px;font-size:16px;line-height:1.2;color:#065F46;font-family:微软雅黑;font-weight:bold;text-align:center;overflow:visible;white-space:pre-wrap;word-break:break-word">保真交付</div><div class="el" id="sm_c_b" data-kind="text" style="position:absolute;left:660px;top:220px;width:220px;height:70px;font-size:14px;line-height:1.2;color:#1F2937;font-family:微软雅黑;overflow:visible;white-space:pre-wrap;word-break:break-word">splice / slice / patch</div><div class="el" id="sm_foot" data-kind="text" style="position:absolute;left:60px;top:360px;width:840px;height:90px;font-size:14px;line-height:1.2;color:#1F2937;font-family:微软雅黑;overflow:visible;white-space:pre-wrap;word-break:break-word">结论:元素区块冲突被机器防住(声明制),质量可验证(三轨),保真可一指令(splice)。</div></div></body></html>
|