599 lines
35 KiB
HTML
599 lines
35 KiB
HTML
<!doctype html>
|
||
<html>
|
||
<head>
|
||
<meta charset='UTF-8'><meta name='viewport' content='width=device-width initial-scale=1'>
|
||
|
||
<link href='https://fonts.loli.net/css?family=Open+Sans:400italic,700italic,700,400&subset=latin,latin-ext' rel='stylesheet' type='text/css' /><style type='text/css'>html {overflow-x: initial !important;}:root { --bg-color:#ffffff; --text-color:#333333; --select-text-bg-color:#B5D6FC; --select-text-font-color:auto; --monospace:"Lucida Console",Consolas,"Courier",monospace; --title-bar-height:20px; }
|
||
.mac-os-11 { --title-bar-height:28px; }
|
||
html { font-size: 14px; background-color: var(--bg-color); color: var(--text-color); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; }
|
||
h1, h2, h3, h4, h5 { white-space: pre-wrap; }
|
||
body { margin: 0px; padding: 0px; height: auto; inset: 0px; font-size: 1rem; line-height: 1.42857; overflow-x: hidden; background: inherit; tab-size: 4; }
|
||
iframe { margin: auto; }
|
||
a.url { word-break: break-all; }
|
||
a:active, a:hover { outline: 0px; }
|
||
.in-text-selection, ::selection { text-shadow: none; background: var(--select-text-bg-color); color: var(--select-text-font-color); }
|
||
#write { margin: 0px auto; height: auto; width: inherit; word-break: normal; overflow-wrap: break-word; position: relative; white-space: normal; overflow-x: visible; padding-top: 36px; }
|
||
#write.first-line-indent p { text-indent: 2em; }
|
||
#write.first-line-indent li p, #write.first-line-indent p * { text-indent: 0px; }
|
||
#write.first-line-indent li { margin-left: 2em; }
|
||
.for-image #write { padding-left: 8px; padding-right: 8px; }
|
||
body.typora-export { padding-left: 30px; padding-right: 30px; }
|
||
.typora-export .footnote-line, .typora-export li, .typora-export p { white-space: pre-wrap; }
|
||
.typora-export .task-list-item input { pointer-events: none; }
|
||
@media screen and (max-width: 500px) {
|
||
body.typora-export { padding-left: 0px; padding-right: 0px; }
|
||
#write { padding-left: 20px; padding-right: 20px; }
|
||
}
|
||
#write li > figure:last-child { margin-bottom: 0.5rem; }
|
||
#write ol, #write ul { position: relative; }
|
||
img { max-width: 100%; vertical-align: middle; image-orientation: from-image; }
|
||
button, input, select, textarea { color: inherit; font: inherit; }
|
||
input[type="checkbox"], input[type="radio"] { line-height: normal; padding: 0px; }
|
||
*, ::after, ::before { box-sizing: border-box; }
|
||
#write h1, #write h2, #write h3, #write h4, #write h5, #write h6, #write p, #write pre { width: inherit; }
|
||
#write h1, #write h2, #write h3, #write h4, #write h5, #write h6, #write p { position: relative; }
|
||
p { line-height: inherit; }
|
||
h1, h2, h3, h4, h5, h6 { break-after: avoid-page; break-inside: avoid; orphans: 4; }
|
||
p { orphans: 4; }
|
||
h1 { font-size: 2rem; }
|
||
h2 { font-size: 1.8rem; }
|
||
h3 { font-size: 1.6rem; }
|
||
h4 { font-size: 1.4rem; }
|
||
h5 { font-size: 1.2rem; }
|
||
h6 { font-size: 1rem; }
|
||
.md-math-block, .md-rawblock, h1, h2, h3, h4, h5, h6, p { margin-top: 1rem; margin-bottom: 1rem; }
|
||
.hidden { display: none; }
|
||
.md-blockmeta { color: rgb(204, 204, 204); font-weight: 700; font-style: italic; }
|
||
a { cursor: pointer; }
|
||
sup.md-footnote { padding: 2px 4px; background-color: rgba(238, 238, 238, 0.7); color: rgb(85, 85, 85); border-radius: 4px; cursor: pointer; }
|
||
sup.md-footnote a, sup.md-footnote a:hover { color: inherit; text-transform: inherit; text-decoration: inherit; }
|
||
#write input[type="checkbox"] { cursor: pointer; width: inherit; height: inherit; }
|
||
figure { overflow-x: auto; margin: 1.2em 0px; max-width: calc(100% + 16px); padding: 0px; }
|
||
figure > table { margin: 0px; }
|
||
thead, tr { break-inside: avoid; break-after: auto; }
|
||
thead { display: table-header-group; }
|
||
table { border-collapse: collapse; border-spacing: 0px; width: 100%; overflow: auto; break-inside: auto; text-align: left; }
|
||
table.md-table td { min-width: 32px; }
|
||
.CodeMirror-gutters { border-right: 0px; background-color: inherit; }
|
||
.CodeMirror-linenumber { user-select: none; }
|
||
.CodeMirror { text-align: left; }
|
||
.CodeMirror-placeholder { opacity: 0.3; }
|
||
.CodeMirror pre { padding: 0px 4px; }
|
||
.CodeMirror-lines { padding: 0px; }
|
||
div.hr:focus { cursor: none; }
|
||
#write pre { white-space: pre-wrap; }
|
||
#write.fences-no-line-wrapping pre { white-space: pre; }
|
||
#write pre.ty-contain-cm { white-space: normal; }
|
||
.CodeMirror-gutters { margin-right: 4px; }
|
||
.md-fences { font-size: 0.9rem; display: block; break-inside: avoid; text-align: left; overflow: visible; white-space: pre; background: inherit; position: relative !important; }
|
||
.md-fences-adv-panel { width: 100%; margin-top: 10px; text-align: center; padding-top: 0px; padding-bottom: 8px; overflow-x: auto; }
|
||
#write .md-fences.mock-cm { white-space: pre-wrap; }
|
||
.md-fences.md-fences-with-lineno { padding-left: 0px; }
|
||
#write.fences-no-line-wrapping .md-fences.mock-cm { white-space: pre; overflow-x: auto; }
|
||
.md-fences.mock-cm.md-fences-with-lineno { padding-left: 8px; }
|
||
.CodeMirror-line, twitterwidget { break-inside: avoid; }
|
||
svg { break-inside: avoid; }
|
||
.footnotes { opacity: 0.8; font-size: 0.9rem; margin-top: 1em; margin-bottom: 1em; }
|
||
.footnotes + .footnotes { margin-top: 0px; }
|
||
.md-reset { margin: 0px; padding: 0px; border: 0px; outline: 0px; vertical-align: top; background: 0px 0px; text-decoration: none; text-shadow: none; float: none; position: static; width: auto; height: auto; white-space: nowrap; cursor: inherit; -webkit-tap-highlight-color: transparent; line-height: normal; font-weight: 400; text-align: left; box-sizing: content-box; direction: ltr; }
|
||
li div { padding-top: 0px; }
|
||
blockquote { margin: 1rem 0px; }
|
||
li .mathjax-block, li p { margin: 0.5rem 0px; }
|
||
li blockquote { margin: 1rem 0px; }
|
||
li { margin: 0px; position: relative; }
|
||
blockquote > :last-child { margin-bottom: 0px; }
|
||
blockquote > :first-child, li > :first-child { margin-top: 0px; }
|
||
.footnotes-area { color: rgb(136, 136, 136); margin-top: 0.714rem; padding-bottom: 0.143rem; white-space: normal; }
|
||
#write .footnote-line { white-space: pre-wrap; }
|
||
@media print {
|
||
body, html { border: 1px solid transparent; height: 99%; break-after: avoid; break-before: avoid; font-variant-ligatures: no-common-ligatures; }
|
||
#write { margin-top: 0px; border-color: transparent !important; padding-top: 0px !important; padding-bottom: 0px !important; }
|
||
.typora-export * { -webkit-print-color-adjust: exact; }
|
||
.typora-export #write { break-after: avoid; }
|
||
.typora-export #write::after { height: 0px; }
|
||
.is-mac table { break-inside: avoid; }
|
||
#write > p:nth-child(1) { margin-top: 0px; }
|
||
.typora-export-show-outline .typora-export-sidebar { display: none; }
|
||
figure { overflow-x: visible; }
|
||
}
|
||
.footnote-line { margin-top: 0.714em; font-size: 0.7em; }
|
||
a img, img a { cursor: pointer; }
|
||
pre.md-meta-block { font-size: 0.8rem; min-height: 0.8rem; white-space: pre-wrap; background: rgb(204, 204, 204); display: block; overflow-x: hidden; }
|
||
p > .md-image:only-child:not(.md-img-error) img, p > img:only-child { display: block; margin: auto; }
|
||
#write.first-line-indent p > .md-image:only-child:not(.md-img-error) img { left: -2em; position: relative; }
|
||
p > .md-image:only-child { display: inline-block; width: 100%; }
|
||
#write .MathJax_Display { margin: 0.8em 0px 0px; }
|
||
.md-math-block { width: 100%; }
|
||
.md-math-block:not(:empty)::after { display: none; }
|
||
.MathJax_ref { fill: currentcolor; }
|
||
[contenteditable="true"]:active, [contenteditable="true"]:focus, [contenteditable="false"]:active, [contenteditable="false"]:focus { outline: 0px; box-shadow: none; }
|
||
.md-task-list-item { position: relative; list-style-type: none; }
|
||
.task-list-item.md-task-list-item { padding-left: 0px; }
|
||
.md-task-list-item > input { position: absolute; top: 0px; left: 0px; margin-left: -1.2em; margin-top: calc(1em - 10px); border: none; }
|
||
.math { font-size: 1rem; }
|
||
.md-toc { min-height: 3.58rem; position: relative; font-size: 0.9rem; border-radius: 10px; }
|
||
.md-toc-content { position: relative; margin-left: 0px; }
|
||
.md-toc-content::after, .md-toc::after { display: none; }
|
||
.md-toc-item { display: block; color: rgb(65, 131, 196); }
|
||
.md-toc-item a { text-decoration: none; }
|
||
.md-toc-inner:hover { text-decoration: underline; }
|
||
.md-toc-inner { display: inline-block; cursor: pointer; }
|
||
.md-toc-h1 .md-toc-inner { margin-left: 0px; font-weight: 700; }
|
||
.md-toc-h2 .md-toc-inner { margin-left: 2em; }
|
||
.md-toc-h3 .md-toc-inner { margin-left: 4em; }
|
||
.md-toc-h4 .md-toc-inner { margin-left: 6em; }
|
||
.md-toc-h5 .md-toc-inner { margin-left: 8em; }
|
||
.md-toc-h6 .md-toc-inner { margin-left: 10em; }
|
||
@media screen and (max-width: 48em) {
|
||
.md-toc-h3 .md-toc-inner { margin-left: 3.5em; }
|
||
.md-toc-h4 .md-toc-inner { margin-left: 5em; }
|
||
.md-toc-h5 .md-toc-inner { margin-left: 6.5em; }
|
||
.md-toc-h6 .md-toc-inner { margin-left: 8em; }
|
||
}
|
||
a.md-toc-inner { font-size: inherit; font-style: inherit; font-weight: inherit; line-height: inherit; }
|
||
.footnote-line a:not(.reversefootnote) { color: inherit; }
|
||
.reversefootnote { font-family: ui-monospace, sans-serif; }
|
||
.md-attr { display: none; }
|
||
.md-fn-count::after { content: "."; }
|
||
code, pre, samp, tt { font-family: var(--monospace); }
|
||
kbd { margin: 0px 0.1em; padding: 0.1em 0.6em; font-size: 0.8em; color: rgb(36, 39, 41); background: rgb(255, 255, 255); border: 1px solid rgb(173, 179, 185); border-radius: 3px; box-shadow: rgba(12, 13, 14, 0.2) 0px 1px 0px, rgb(255, 255, 255) 0px 0px 0px 2px inset; white-space: nowrap; vertical-align: middle; }
|
||
.md-comment { color: rgb(162, 127, 3); opacity: 0.6; font-family: var(--monospace); }
|
||
code { text-align: left; vertical-align: initial; }
|
||
a.md-print-anchor { white-space: pre !important; border-width: initial !important; border-style: none !important; border-color: initial !important; display: inline-block !important; position: absolute !important; width: 1px !important; right: 0px !important; outline: 0px !important; background: 0px 0px !important; text-decoration: initial !important; text-shadow: initial !important; }
|
||
.os-windows.monocolor-emoji .md-emoji { font-family: "Segoe UI Symbol", sans-serif; }
|
||
.md-diagram-panel > svg { max-width: 100%; }
|
||
[lang="flow"] svg, [lang="mermaid"] svg { max-width: 100%; height: auto; }
|
||
[lang="mermaid"] .node text { font-size: 1rem; }
|
||
table tr th { border-bottom: 0px; }
|
||
video { max-width: 100%; display: block; margin: 0px auto; }
|
||
iframe { max-width: 100%; width: 100%; border: none; }
|
||
.highlight td, .highlight tr { border: 0px; }
|
||
mark { background: rgb(255, 255, 0); color: rgb(0, 0, 0); }
|
||
.md-html-inline .md-plain, .md-html-inline strong, mark .md-inline-math, mark strong { color: inherit; }
|
||
.md-expand mark .md-meta { opacity: 0.3 !important; }
|
||
mark .md-meta { color: rgb(0, 0, 0); }
|
||
@media print {
|
||
.typora-export h1, .typora-export h2, .typora-export h3, .typora-export h4, .typora-export h5, .typora-export h6 { break-inside: avoid; }
|
||
}
|
||
.md-diagram-panel .messageText { stroke: none !important; }
|
||
.md-diagram-panel .start-state { fill: var(--node-fill); }
|
||
.md-diagram-panel .edgeLabel rect { opacity: 1 !important; }
|
||
.md-fences.md-fences-math { font-size: 1em; }
|
||
.md-fences-advanced:not(.md-focus) { padding: 0px; white-space: nowrap; border: 0px; }
|
||
.md-fences-advanced:not(.md-focus) { background: inherit; }
|
||
.typora-export-show-outline .typora-export-content { max-width: 1440px; margin: auto; display: flex; flex-direction: row; }
|
||
.typora-export-sidebar { width: 300px; font-size: 0.8rem; margin-top: 80px; margin-right: 18px; }
|
||
.typora-export-show-outline #write { --webkit-flex:2; flex: 2 1 0%; }
|
||
.typora-export-sidebar .outline-content { position: fixed; top: 0px; max-height: 100%; overflow: hidden auto; padding-bottom: 30px; padding-top: 60px; width: 300px; }
|
||
@media screen and (max-width: 1024px) {
|
||
.typora-export-sidebar, .typora-export-sidebar .outline-content { width: 240px; }
|
||
}
|
||
@media screen and (max-width: 800px) {
|
||
.typora-export-sidebar { display: none; }
|
||
}
|
||
.outline-content li, .outline-content ul { margin-left: 0px; margin-right: 0px; padding-left: 0px; padding-right: 0px; list-style: none; overflow-wrap: anywhere; }
|
||
.outline-content ul { margin-top: 0px; margin-bottom: 0px; }
|
||
.outline-content strong { font-weight: 400; }
|
||
.outline-expander { width: 1rem; height: 1.42857rem; position: relative; display: table-cell; vertical-align: middle; cursor: pointer; padding-left: 4px; }
|
||
.outline-expander::before { content: ""; position: relative; font-family: Ionicons; display: inline-block; font-size: 8px; vertical-align: middle; }
|
||
.outline-item { padding-top: 3px; padding-bottom: 3px; cursor: pointer; }
|
||
.outline-expander:hover::before { content: ""; }
|
||
.outline-h1 > .outline-item { padding-left: 0px; }
|
||
.outline-h2 > .outline-item { padding-left: 1em; }
|
||
.outline-h3 > .outline-item { padding-left: 2em; }
|
||
.outline-h4 > .outline-item { padding-left: 3em; }
|
||
.outline-h5 > .outline-item { padding-left: 4em; }
|
||
.outline-h6 > .outline-item { padding-left: 5em; }
|
||
.outline-label { cursor: pointer; display: table-cell; vertical-align: middle; text-decoration: none; color: inherit; }
|
||
.outline-label:hover { text-decoration: underline; }
|
||
.outline-item:hover { border-color: rgb(245, 245, 245); background-color: var(--item-hover-bg-color); }
|
||
.outline-item:hover { margin-left: -28px; margin-right: -28px; border-left: 28px solid transparent; border-right: 28px solid transparent; }
|
||
.outline-item-single .outline-expander::before, .outline-item-single .outline-expander:hover::before { display: none; }
|
||
.outline-item-open > .outline-item > .outline-expander::before { content: ""; }
|
||
.outline-children { display: none; }
|
||
.info-panel-tab-wrapper { display: none; }
|
||
.outline-item-open > .outline-children { display: block; }
|
||
.typora-export .outline-item { padding-top: 1px; padding-bottom: 1px; }
|
||
.typora-export .outline-item:hover { margin-right: -8px; border-right: 8px solid transparent; }
|
||
.typora-export .outline-expander::before { content: "+"; font-family: inherit; top: -1px; }
|
||
.typora-export .outline-expander:hover::before, .typora-export .outline-item-open > .outline-item > .outline-expander::before { content: "−"; }
|
||
.typora-export-collapse-outline .outline-children { display: none; }
|
||
.typora-export-collapse-outline .outline-item-open > .outline-children, .typora-export-no-collapse-outline .outline-children { display: block; }
|
||
.typora-export-no-collapse-outline .outline-expander::before { content: "" !important; }
|
||
.typora-export-show-outline .outline-item-active > .outline-item .outline-label { font-weight: 700; }
|
||
.md-inline-math-container mjx-container { zoom: 0.95; }
|
||
mjx-container { break-inside: avoid; }
|
||
|
||
|
||
:root {
|
||
--side-bar-bg-color: #fafafa;
|
||
--control-text-color: #777;
|
||
}
|
||
|
||
@include-when-export url(https://fonts.loli.net/css?family=Open+Sans:400italic,700italic,700,400&subset=latin,latin-ext);
|
||
|
||
/* open-sans-regular - latin-ext_latin */
|
||
/* open-sans-italic - latin-ext_latin */
|
||
/* open-sans-700 - latin-ext_latin */
|
||
/* open-sans-700italic - latin-ext_latin */
|
||
html {
|
||
font-size: 16px;
|
||
-webkit-font-smoothing: antialiased;
|
||
}
|
||
|
||
body {
|
||
font-family: "Open Sans","Clear Sans", "Helvetica Neue", Helvetica, Arial, 'Segoe UI Emoji', sans-serif;
|
||
color: rgb(51, 51, 51);
|
||
line-height: 1.6;
|
||
}
|
||
|
||
#write {
|
||
max-width: 860px;
|
||
margin: 0 auto;
|
||
padding: 30px;
|
||
padding-bottom: 100px;
|
||
}
|
||
|
||
@media only screen and (min-width: 1400px) {
|
||
#write {
|
||
max-width: 1024px;
|
||
}
|
||
}
|
||
|
||
@media only screen and (min-width: 1800px) {
|
||
#write {
|
||
max-width: 1200px;
|
||
}
|
||
}
|
||
|
||
#write > ul:first-child,
|
||
#write > ol:first-child{
|
||
margin-top: 30px;
|
||
}
|
||
|
||
a {
|
||
color: #4183C4;
|
||
}
|
||
h1,
|
||
h2,
|
||
h3,
|
||
h4,
|
||
h5,
|
||
h6 {
|
||
position: relative;
|
||
margin-top: 1rem;
|
||
margin-bottom: 1rem;
|
||
font-weight: bold;
|
||
line-height: 1.4;
|
||
cursor: text;
|
||
}
|
||
h1:hover a.anchor,
|
||
h2:hover a.anchor,
|
||
h3:hover a.anchor,
|
||
h4:hover a.anchor,
|
||
h5:hover a.anchor,
|
||
h6:hover a.anchor {
|
||
text-decoration: none;
|
||
}
|
||
h1 tt,
|
||
h1 code {
|
||
font-size: inherit;
|
||
}
|
||
h2 tt,
|
||
h2 code {
|
||
font-size: inherit;
|
||
}
|
||
h3 tt,
|
||
h3 code {
|
||
font-size: inherit;
|
||
}
|
||
h4 tt,
|
||
h4 code {
|
||
font-size: inherit;
|
||
}
|
||
h5 tt,
|
||
h5 code {
|
||
font-size: inherit;
|
||
}
|
||
h6 tt,
|
||
h6 code {
|
||
font-size: inherit;
|
||
}
|
||
h1 {
|
||
font-size: 2.25em;
|
||
line-height: 1.2;
|
||
border-bottom: 1px solid #eee;
|
||
}
|
||
h2 {
|
||
font-size: 1.75em;
|
||
line-height: 1.225;
|
||
border-bottom: 1px solid #eee;
|
||
}
|
||
|
||
/*@media print {
|
||
.typora-export h1,
|
||
.typora-export h2 {
|
||
border-bottom: none;
|
||
padding-bottom: initial;
|
||
}
|
||
|
||
.typora-export h1::after,
|
||
.typora-export h2::after {
|
||
content: "";
|
||
display: block;
|
||
height: 100px;
|
||
margin-top: -96px;
|
||
border-top: 1px solid #eee;
|
||
}
|
||
}*/
|
||
|
||
h3 {
|
||
font-size: 1.5em;
|
||
line-height: 1.43;
|
||
}
|
||
h4 {
|
||
font-size: 1.25em;
|
||
}
|
||
h5 {
|
||
font-size: 1em;
|
||
}
|
||
h6 {
|
||
font-size: 1em;
|
||
color: #777;
|
||
}
|
||
p,
|
||
blockquote,
|
||
ul,
|
||
ol,
|
||
dl,
|
||
table{
|
||
margin: 0.8em 0;
|
||
}
|
||
li>ol,
|
||
li>ul {
|
||
margin: 0 0;
|
||
}
|
||
hr {
|
||
height: 2px;
|
||
padding: 0;
|
||
margin: 16px 0;
|
||
background-color: #e7e7e7;
|
||
border: 0 none;
|
||
overflow: hidden;
|
||
box-sizing: content-box;
|
||
}
|
||
|
||
li p.first {
|
||
display: inline-block;
|
||
}
|
||
ul,
|
||
ol {
|
||
padding-left: 30px;
|
||
}
|
||
ul:first-child,
|
||
ol:first-child {
|
||
margin-top: 0;
|
||
}
|
||
ul:last-child,
|
||
ol:last-child {
|
||
margin-bottom: 0;
|
||
}
|
||
blockquote {
|
||
border-left: 4px solid #dfe2e5;
|
||
padding: 0 15px;
|
||
color: #777777;
|
||
}
|
||
blockquote blockquote {
|
||
padding-right: 0;
|
||
}
|
||
table {
|
||
padding: 0;
|
||
word-break: initial;
|
||
}
|
||
table tr {
|
||
border: 1px solid #dfe2e5;
|
||
margin: 0;
|
||
padding: 0;
|
||
}
|
||
table tr:nth-child(2n),
|
||
thead {
|
||
background-color: #f8f8f8;
|
||
}
|
||
table th {
|
||
font-weight: bold;
|
||
border: 1px solid #dfe2e5;
|
||
border-bottom: 0;
|
||
margin: 0;
|
||
padding: 6px 13px;
|
||
}
|
||
table td {
|
||
border: 1px solid #dfe2e5;
|
||
margin: 0;
|
||
padding: 6px 13px;
|
||
}
|
||
table th:first-child,
|
||
table td:first-child {
|
||
margin-top: 0;
|
||
}
|
||
table th:last-child,
|
||
table td:last-child {
|
||
margin-bottom: 0;
|
||
}
|
||
|
||
.CodeMirror-lines {
|
||
padding-left: 4px;
|
||
}
|
||
|
||
.code-tooltip {
|
||
box-shadow: 0 1px 1px 0 rgba(0,28,36,.3);
|
||
border-top: 1px solid #eef2f2;
|
||
}
|
||
|
||
.md-fences,
|
||
code,
|
||
tt {
|
||
border: 1px solid #e7eaed;
|
||
background-color: #f8f8f8;
|
||
border-radius: 3px;
|
||
padding: 0;
|
||
padding: 2px 4px 0px 4px;
|
||
font-size: 0.9em;
|
||
}
|
||
|
||
code {
|
||
background-color: #f3f4f4;
|
||
padding: 0 2px 0 2px;
|
||
}
|
||
|
||
.md-fences {
|
||
margin-bottom: 15px;
|
||
margin-top: 15px;
|
||
padding-top: 8px;
|
||
padding-bottom: 6px;
|
||
}
|
||
|
||
|
||
.md-task-list-item > input {
|
||
margin-left: -1.3em;
|
||
}
|
||
|
||
@media print {
|
||
html {
|
||
font-size: 13px;
|
||
}
|
||
pre {
|
||
page-break-inside: avoid;
|
||
word-wrap: break-word;
|
||
}
|
||
}
|
||
|
||
.md-fences {
|
||
background-color: #f8f8f8;
|
||
}
|
||
#write pre.md-meta-block {
|
||
padding: 1rem;
|
||
font-size: 85%;
|
||
line-height: 1.45;
|
||
background-color: #f7f7f7;
|
||
border: 0;
|
||
border-radius: 3px;
|
||
color: #777777;
|
||
margin-top: 0 !important;
|
||
}
|
||
|
||
.mathjax-block>.code-tooltip {
|
||
bottom: .375rem;
|
||
}
|
||
|
||
.md-mathjax-midline {
|
||
background: #fafafa;
|
||
}
|
||
|
||
#write>h3.md-focus:before{
|
||
left: -1.5625rem;
|
||
top: .375rem;
|
||
}
|
||
#write>h4.md-focus:before{
|
||
left: -1.5625rem;
|
||
top: .285714286rem;
|
||
}
|
||
#write>h5.md-focus:before{
|
||
left: -1.5625rem;
|
||
top: .285714286rem;
|
||
}
|
||
#write>h6.md-focus:before{
|
||
left: -1.5625rem;
|
||
top: .285714286rem;
|
||
}
|
||
.md-image>.md-meta {
|
||
/*border: 1px solid #ddd;*/
|
||
border-radius: 3px;
|
||
padding: 2px 0px 0px 4px;
|
||
font-size: 0.9em;
|
||
color: inherit;
|
||
}
|
||
|
||
.md-tag {
|
||
color: #a7a7a7;
|
||
opacity: 1;
|
||
}
|
||
|
||
.md-toc {
|
||
margin-top:20px;
|
||
padding-bottom:20px;
|
||
}
|
||
|
||
.sidebar-tabs {
|
||
border-bottom: none;
|
||
}
|
||
|
||
#typora-quick-open {
|
||
border: 1px solid #ddd;
|
||
background-color: #f8f8f8;
|
||
}
|
||
|
||
#typora-quick-open-item {
|
||
background-color: #FAFAFA;
|
||
border-color: #FEFEFE #e5e5e5 #e5e5e5 #eee;
|
||
border-style: solid;
|
||
border-width: 1px;
|
||
}
|
||
|
||
/** focus mode */
|
||
.on-focus-mode blockquote {
|
||
border-left-color: rgba(85, 85, 85, 0.12);
|
||
}
|
||
|
||
header, .context-menu, .megamenu-content, footer{
|
||
font-family: "Segoe UI", "Arial", sans-serif;
|
||
}
|
||
|
||
.file-node-content:hover .file-node-icon,
|
||
.file-node-content:hover .file-node-open-state{
|
||
visibility: visible;
|
||
}
|
||
|
||
.mac-seamless-mode #typora-sidebar {
|
||
background-color: #fafafa;
|
||
background-color: var(--side-bar-bg-color);
|
||
}
|
||
|
||
.md-lang {
|
||
color: #b4654d;
|
||
}
|
||
|
||
/*.html-for-mac {
|
||
--item-hover-bg-color: #E6F0FE;
|
||
}*/
|
||
|
||
#md-notification .btn {
|
||
border: 0;
|
||
}
|
||
|
||
.dropdown-menu .divider {
|
||
border-color: #e5e5e5;
|
||
opacity: 0.4;
|
||
}
|
||
|
||
.ty-preferences .window-content {
|
||
background-color: #fafafa;
|
||
}
|
||
|
||
.ty-preferences .nav-group-item.active {
|
||
color: white;
|
||
background: #999;
|
||
}
|
||
|
||
.menu-item-container a.menu-style-btn {
|
||
background-color: #f5f8fa;
|
||
background-image: linear-gradient( 180deg , hsla(0, 0%, 100%, 0.8), hsla(0, 0%, 100%, 0));
|
||
}
|
||
|
||
|
||
|
||
</style><title></title>
|
||
</head>
|
||
<body class='typora-export os-windows'><div class='typora-export-content'>
|
||
<div id='write' class=''><h1 id='1背景'><span>1.背景</span></h1><p><span>单挤出机(热端)打印机在切换不同耗材进行打印时,需要对耗材进行冲刷,用一定量的新耗材去冲刷掉热端中残留的旧耗材,避免打印混色。不同耗材间的冲刷量不一样,具体的值可以在Bambu Studio的冲刷页面查看。您可以参考wiki:</span><a href='https://wiki.bambulab.com/zh/software/bambu-studio/reduce-wasting-during-filament-change'><span>减少多色打印时的耗材浪费</span></a></p><p><span>对于像H2D这种双挤出机(热端)的打印机来说,打印两种耗材时最优的方式就是用不同挤出机打印不同的耗材,因为这种情况下耗材之间的切换仅仅需要切换挤出机,而不需要用新耗材冲刷旧耗材。而打印超过两种耗材的情况,同样可以通过切换挤出机打印来减少耗材冲刷次数。本文将介绍针对双挤出机打印机的耗材分配策略,以实现最省料或最便捷的多耗材打印方式。</span></p><h1 id='2多色打印顺序'><span>2.多色打印顺序</span></h1><p><span>单层内,不同的颜色打印顺序会导致换料次序不同,从而导致换料产生的耗材总冲刷量也有差异。切片软件会根据耗材间彼此的冲刷量,计算出一个最优的打印顺序,使得模型冲刷的损耗量最低。比如,耗材丝打印顺序 1->2->3 的总冲刷量大于 1->3->2 的总冲刷量,就会使用后者作为该层的打印顺序。如果您想要手动调整打印排序,详细内容可以参考:</span><a href='https://wiki.bambulab.com/zh/software/bambu-studio/parameter/filament-sequence-for-different-layers'><span>设置不同层耗材打印顺序</span></a></p><p><img src="https://bambulab.feishu.cn/space/api/box/stream/download/asynccode/?code=NmI3NTBhNDk4YWQ5ZGVlZDVjODY3NThkYWY1NDhlMjZfTURsdW9McnFhUUdRNUhVTmhvaGlYYlNSWWsxZ2RnWDVfVG9rZW46UnZDRGJEN1hDb1dCdFV4WUN6Q2MxMlBOblNnXzE3MzcwMzUwODk6MTczNzAzODY4OV9WNA" referrerpolicy="no-referrer" alt="img"></p><p><img src="https://bambulab.feishu.cn/space/api/box/stream/download/asynccode/?code=ZGY4M2M4YWQwMDk1Mzk3Nzc1YTZiMjEzMmM3MjRjNGRfSlNmeTk1UXF2WjBacUdMRVdUQU5sRUVpcWdWN3I3bFVfVG9rZW46VnplSmJDc09ob0VIU2t4Z0dwU2NPeUxSbnBBXzE3MzcwMzUwODk6MTczNzAzODY4OV9WNA" referrerpolicy="no-referrer" alt="img"></p><p><img src="https://bambulab.feishu.cn/space/api/box/stream/download/asynccode/?code=OGViZTAzOGIxYzE1YjRjODlkYTQ3MDJiNGY3NDA1OGFfd1R1TDVMNUI1VXRLZWxkUHNsRDNCYlRCREQ4TmpKSVdfVG9rZW46UDRDM2JuZ3FSb1BGd054bEp2eWNxU3FubjljXzE3MzcwMzUwODk6MTczNzAzODY4OV9WNA" referrerpolicy="no-referrer" alt="img"><img src="https://bambulab.feishu.cn/space/api/box/stream/download/asynccode/?code=ZGZmMzQyNzdiZDYzYTgyMzQzOTdkNDhmMTMyNjc5ZDNfbG9ZUlEwZWxkZ3BGdGxDOGRPSFB0UmNEa1dnUVRMSDFfVG9rZW46QUVKdmJnQXJMb0lKblZ4WHREU2NFdjFVbjJmXzE3MzcwMzUwODk6MTczNzAzODY4OV9WNA" referrerpolicy="no-referrer" alt="img"></p><p> </p><h1 id='3省料模式可能需要调整ams中的耗材摆放位置)'><span>3.省料模式(可能需要调整AMS中的耗材摆放位置)</span></h1><p><span>由于不同挤出机之间的耗材切换无需冲刷,所以整个模型的冲刷量都来自同一个挤出机的耗材间的切换。</span><strong><span>为了最小化换料时冲刷的耗材消耗,我们应该尽可能将两者间冲刷量较大的耗材放于不同挤出机,也就是将打印使用到的耗材按照两个挤出机进行分组。</span></strong><span>Bambu Studio中默认采用的耗材分配策略,就是省料模式。您可以在切片按钮的悬浮窗中看到共有3种模式,选择“省料模式”并点击切片,即可获得最省耗材耗材分配方案。下文将简要介绍该分配策略的逻辑。</span></p><p><img src="https://bambulab.feishu.cn/space/api/box/stream/download/asynccode/?code=Y2I5M2NjZWM3OTlkZjZkMzUzNDJmMDNlNmFjMzMzYjFfWFJHRGdoNHZ1NHRHNDgxMnR0QzE3RHRpa0VDTjlwZnFfVG9rZW46THlUeWJZc0kwb3hPdHV4RGhLYWNvYmhybmRlXzE3MzcwMzUwODk6MTczNzAzODY4OV9WNA" referrerpolicy="no-referrer" alt="img"></p><p><span>由于挤出机的物理限制,不同挤出机有各自的可打印区域限制(</span><a href='https://bambulab.feishu.cn/docx/TK0bd5gF2oSKD5xTK0icqaeRnVd'><span>H2D双喷嘴可打印范围介绍</span></a><span>)。如下图所示,当模型内需要使用某耗材打印的部分,被放置到仅左喷嘴或仅右喷嘴可打印区域时,那么这个耗材只用对应的喷嘴打印。</span></p><p><img src="https://bambulab.feishu.cn/space/api/box/stream/download/asynccode/?code=NmMxNDlmNTliOWMyZWZhZGFhNWI4OWQyYmI1NGU4NzBfb2Q0WHlJN25URWpRMTBBdFkxMHVTZnFOWm5NVDdVWUVfVG9rZW46R2RnUWJVNUUwb0VCRkN4SkN3cGMzdmVSbkplXzE3MzcwMzUwODk6MTczNzAzODY4OV9WNA" referrerpolicy="no-referrer" alt="img"></p><p><span>当连接上打印机后,我们能够得知每个挤出机的连接的AMS数量。当无AMS连接打印机时,我们默认该挤出机可以通过外挂料盘放置一个耗材,这样就能够在切片时计算每个喷嘴可以分配的耗材数量上限。</span></p><p><img src="https://bambulab.feishu.cn/space/api/box/stream/download/asynccode/?code=ZTE0NWZiY2JkOTJjZjc5N2NiN2YwMDZiODNiYmI2YmVfYkRvV00zWkZ6d09hRGw5SjV4a09MN1dQWUpiY3hqT1JfVG9rZW46UGh6bGJpZ3V1b29zR0d4Q0RuMmNubG1DbkNjXzE3MzcwMzUwODk6MTczNzAzODY4OV9WNA" referrerpolicy="no-referrer" alt="img"></p><p><span>在满足上述限制后,切片软件会计算出一个最佳的耗材分组,保证在这种分组下,按照计算出的打印顺序,能够获得最小的冲刷量损耗。原理是尽可能让共同出现的层数较多(需要来回切换的次数更多)、换料冲刷量较大的耗材分到不同的挤出机组中。</span></p><p><span>综上所述,省料模式的分组算法主要需要考虑以下几点,每个点的优先级按照次序降低:</span></p><ol><li><p><span>挤出机的不可打印耗材限制;</span></p></li><li><p><span>挤出机可分配打印的耗材上限;</span></p></li><li><p><span>最小化耗材冲刷损耗;</span></p></li><li><p><span>最小化到打印机连接AMS中耗材的色彩差距;</span></p></li></ol><p><strong><span>由于该分组逻辑更倾向于减少耗材冲刷量而不是颜色最接近,故在切片后,用户需要根据“耗材摆放推荐”,检查是否把耗材丝都放入对应左右挤出机连接的AMS中,若耗材实际摆放位置与软件推荐的不同,需要适当调整。否则有可能会在发送打印任务的窗口中无法选择为挤出机自动分配的耗材丝。</span></strong></p><p><span>如下动图所示,</span><strong><span>一旦切片的耗材丝被分配到了特定的挤出机中,则在发送任务时无法强行将其更改为另一个挤出机中的耗材,即使另一挤出机连接的AMS中有更接近颜色的耗材也无法手动匹配。</span></strong><span>所以只能先手动调整耗材在AMS中摆放的位置,来实现最省料的打印。</span></p><p><img src="https://bambulab.feishu.cn/space/api/box/stream/download/asynccode/?code=MWVjYmFlNzA3ZThkYzM0ZmY2YTkwYmY5YmI0MGE2YzlfMG1kTnM4Smp1MGRuNEpZMjZmc1hnU0RTcDQ5bWw0R2FfVG9rZW46TUt5WmJaTmdIb3Q0MU94QjNRWmNsRUNxbmRkXzE3MzcwMzUwODk6MTczNzAzODY4OV9WNA" referrerpolicy="no-referrer" alt="img"></p><p> </p><h1 id='4便捷模式不需要调整ams中的耗材)'><span>4.便捷模式(不需要调整AMS中的耗材)</span></h1><p><span>不同于最省料的分组策略,便捷模式完全基于打印机中摆放的耗材进行分组规划,与模型无关。在这种策略下,会尽可能让耗材分配结果与AMS中摆放的耗材尽可能相匹配(颜色、类型等)。该选项更倾向于根据用户现有的耗材摆放方式,进行分组规划。</span><strong><span>故可能会浪费更多的耗材用于冲刷,但无需额外调整耗材的摆放顺序。适合用户不在打印机旁,远程发起多耗材打印的场景。</span></strong><span>我们建议您在使用该策略之前,先在耗材丝列表里重新同步一次AMS的耗材信息。你可以在切片按钮的悬浮窗里选择“便捷模式”,则会根据您当前AMS中实际摆放的耗材对切片耗材进行分组,然后再进行切片。切片后可以看到最优分组(最省料)方案与最便捷分组方案相比,多节省的耗材量和换料次数。</span></p><p><img src="https://bambulab.feishu.cn/space/api/box/stream/download/asynccode/?code=NTdlMDFjNjE0NDRiYmMzNDI2NDUyODBhZmEyOWVjM2NfZHl3YUc5QjFtcjlodVlPZFh2RlVUV2dnTFdnOG84cHpfVG9rZW46T3hzMGJybW05b3REMjh4cU5XOGN1dnpMbndiXzE3MzcwMzUwODk6MTczNzAzODY4OV9WNA" referrerpolicy="no-referrer" alt="img"></p><p><span>便捷模式的分组算法主要考虑以下几点,每个点的优先级按次序降低:</span></p><ol><li><p><span>挤出机的不可打印耗材限制;</span></p></li><li><p><span>打印耗材类型一致性限制;</span></p></li><li><p><span>最小化到挤出机连接AMS中耗材的色彩差距;</span></p></li></ol><p> </p><h1 id='5手动模式'><span>5.手动模式</span></h1><p><span>如果您对自动耗材分组策略不满意,可以在“耗材摆放推荐”中点击“耗材分组”,然后在“自定义”中手动调整左右挤出机中的耗材,再次切片后可以看到最优分组(最省料)方式与手动设置的耗材分组相比,多节省的耗材量和换料次数。</span><strong><span>注:最省料的分组策略仅考虑节省耗材,故有时候会出现更省料但换料次数比自定义的分组更多的情况,这是正常的现象。</span></strong></p><p><img src="https://bambulab.feishu.cn/space/api/box/stream/download/asynccode/?code=MWRiZGI2NGZlNmRhYTUwZjQ3OTE1ZjdjMzQyZTQ1MGNfZ3ExTGV4S2Z6dDhjaGVXQUJNODJhZXBMekFaaExDUXJfVG9rZW46VldmTGJ0Tlplb2NCcHl4cjE3cGNRaGtObjRnXzE3MzcwMzUwODk6MTczNzAzODY4OV9WNA" referrerpolicy="no-referrer" alt="img"></p><p><span>你也可以直接在切片按钮的悬浮窗里选择“手动模式”,则在切片前会先让你自定义给左右挤出机分配切片的耗材,然后再进行切片。</span></p><figure><table><thead><tr><th><span> </span><img src="https://bambulab.feishu.cn/space/api/box/stream/download/asynccode/?code=MzJlYTJiNTQ1MjAyZTRmOTZlODcwZDQzZDQyNjZhZWVfMmtDRXBySFpOM2lPbUZadFNyTU85QmlPMWlIREpwMGdfVG9rZW46TkYwN2JUNkdSb2tvV1d4YVQxb2M5SWdCbktkXzE3MzcwMzUwODk6MTczNzAzODY4OV9WNA" referrerpolicy="no-referrer" alt="img"><span> </span></th><th><img src="https://bambulab.feishu.cn/space/api/box/stream/download/asynccode/?code=MDRkZjEyMDc4MWY1NzlkOTc2NTVmNWYzOTA5ODE1YjZfN2ZmYUxaaHZ2UVFLTlN1dzJsYkdPSVJ4TThQa21iSTlfVG9rZW46R1MxUGJDRDVVbzdDZEV4UENqMmNpWnJxbkVmXzE3MzcwMzUwODk6MTczNzAzODY4OV9WNA" referrerpolicy="no-referrer" alt="img"><span> </span></th></tr></thead><tbody><tr><td> </td><td> </td></tr></tbody></table></figure><p><img src="https://bambulab.feishu.cn/space/api/box/stream/download/asynccode/?code=ZjQ2ZDhiMWY5YWQ5YTQyNTUxZjBjZDU4M2IwMWE1ODJfb0xKbE02NVVtZEZWcUxUUVo5dDNmUXhPTHdvdXFRbmFfVG9rZW46SmF2SmJQYlFXbzlUR0x4SDl3UmM0ejNpbmJoXzE3MzcwMzUwODk6MTczNzAzODY4OV9WNA" referrerpolicy="no-referrer" alt="img"></p><p> </p><h1 id='6盘参数与全局参数'><span>6.盘参数与全局参数</span></h1><p><span>针对不同场景,耗材的分配策略分成了不同层级的参数:盘参数与全局参数。在实际切片时,</span><strong><span>若您为某个盘设置了耗材分配策略,那么盘参数会覆盖全局参数。</span></strong></p><p><span>在每个打印盘的右侧,点击对应图标后会有个弹窗,可以看到当前盘使用的耗材分配策略。您可以为单盘设置耗材分配策略,包含上文中提到的自动(省料模式和便捷模式)、自定义(手动模式)和缺省(跟随全局设置)。</span></p><p><img src="https://bambulab.feishu.cn/space/api/box/stream/download/asynccode/?code=MDJhNGJlNDBiOGM4NGEwMmFkNTRjYzViM2E1YWE2MWFfdmdRSzAzYWVocGtTTGFWcGJIejE3eGFxdXNFWjRZSFRfVG9rZW46VlF5S2J1eGM0b2FBTEp4YW12RGNXOWNzbm9nXzE3MzcwMzUwODk6MTczNzAzODY4OV9WNA" referrerpolicy="no-referrer" alt="img"></p><p><img src="https://bambulab.feishu.cn/space/api/box/stream/download/asynccode/?code=MmIzM2NkNDk4MDg5ZjIwNTZkNDRiMmZjODFjNTQwNDFfdW1ncjVMbEg5dmxwZEo4czZVT0xpZVc0YVZPeDFRc3BfVG9rZW46TUVJdWIzQnJ6b21yUE54enlOZWNUVFFlbndmXzE3MzcwMzUwODk6MTczNzAzODY4OV9WNA" referrerpolicy="no-referrer" alt="img"></p><p><img src="https://bambulab.feishu.cn/space/api/box/stream/download/asynccode/?code=YTJkNTQ4YTE5ZmQzMmFlYWY0NjVkMjQyODQwMWQ5NDZfY3hvZ3JFRlJRV3YxUE93ZnV6cFFKRTJCQVpHMmUyR1JfVG9rZW46VGs2VmJ2SnVsbzNCRmJ4aG5SOWNZQkVMbjZnXzE3MzcwMzUwODk6MTczNzAzODY4OV9WNA" referrerpolicy="no-referrer" alt="img"></p><p><span>若你为某盘单独设置了耗材分配策略,则在切片单盘后,切片按钮处的浮窗与弹窗中会优先显示当前盘上的分组策略,不过会有个全局设置的图标放置在对应的模式后面,提醒用户全局切片用的是哪种耗材分组策略。若未为单盘单独设置模式,则浮窗与弹窗会优先显示全局的分组策略。</span></p><p><img src="https://bambulab.feishu.cn/space/api/box/stream/download/asynccode/?code=N2I4ODUyZGM0NjlhMTJjZjYxYjFhNTMxN2RlNGM1NGNfQ1lEbGVPWmd1cUVPSWt1UEcxTHBYTGJ4RmhocEVvVldfVG9rZW46TzBWUGI1SGp3b3M0bXF4SnJKamNUVHZMbm9kXzE3MzcwMzUwODk6MTczNzAzODY4OV9WNA" referrerpolicy="no-referrer" alt="img"></p><p><span>在切片所有盘时,总是显示全局的耗材分配策略,以方便为所有盘进行设置,不过为单盘设置的耗材分配方式依然生效。</span></p><p><img src="https://bambulab.feishu.cn/space/api/box/stream/download/asynccode/?code=YzRlZGM0MjYyYzFjNTgxMTNmYzU2YzJlZDQxYzQyZWFfRTlFQXNKQmRvRHFtSkhXQ3VWQThFVklUQlJRZ1hrYTlfVG9rZW46TEFVUmJtNzNnbzhNSlh4OE1LZGN5Zlp1bmpoXzE3MzcwMzUwODk6MTczNzAzODY4OV9WNA" referrerpolicy="no-referrer" alt="img"></p><p><span>在手动模式的耗材分配窗口中,切片单盘时仅显示当前盘里会用到的耗材,切片所有盘时才会显示该项目用到的所有耗材。</span></p><figure><table><thead><tr><th><strong><span>切片单盘</span></strong></th><th><strong><span>切片所有盘</span></strong></th></tr></thead><tbody><tr><td><img src="https://bambulab.feishu.cn/space/api/box/stream/download/asynccode/?code=NDEzYzc2MTk2NWUzNjczMTUzMzRhNjg1ZWJjY2Q3YjlfYnZYcUJZWWdlSGs1V0h5Q1BMcml1TEVYVXBxMTRhSXZfVG9rZW46UTV1NmJGb0Vmb1M3NnR4Vm8wZWNrcFlYbk9jXzE3MzcwMzUwODk6MTczNzAzODY4OV9WNA" referrerpolicy="no-referrer" alt="img"><span> </span></td><td><img src="https://bambulab.feishu.cn/space/api/box/stream/download/asynccode/?code=MWZlNTFhZDM0ZjZhMTg0ZTIzYTZmYmUxOGI4NzQyYjZfTTBFYWhmaUY5V0lVcHpIODNGcENxY1RNZE9HZXZjOFlfVG9rZW46TE9rc2J5VlROb3RZbld4ckNnSmNWZjZablpnXzE3MzcwMzUwODk6MTczNzAzODY4OV9WNA" referrerpolicy="no-referrer" alt="img"><span> </span></td></tr></tbody></table></figure></div></div>
|
||
</body>
|
||
</html> |