Deploying to gh-pages from @ Klipper3d/klipper@434770eaf9 🚀
This commit is contained in:
@@ -1499,15 +1499,16 @@ z_hop_speed: 5
|
||||
<h2 id="bl-touch_4">BL-Touch 輸出模式<a class="headerlink" href="#bl-touch_4" title="Permanent link">¶</a></h2>
|
||||
<ul>
|
||||
<li>
|
||||
<p>BL-Touch V3.0支援設定 5V 或 OPEN-DRAIN 輸出模式,BL-TOUCH V3.1也支援,但它也可以在其內部 EEPROM 中儲存這個設定。如果你的控制主板需要 5V 模式的固定 5V 高邏輯電平,你可以把印表機配置檔案[bltouch]部分的 'set_output_mode' 參數設定為 "5V"。<strong><em> 只在你的控制主板的輸入線路可以容忍5V時使用 5V 模式。這就是為什麼這些 BL-Touch 版本的預設配置是OPEN-DRAIN模式。你有可能損壞你的控制主板上的MCU </em></strong></p>
|
||||
<p>BL-Touch V3.0支援設定 5V 或 OPEN-DRAIN 輸出模式,BL-TOUCH V3.1也支援,但它也可以在其內部 EEPROM 中儲存這個設定。如果你的控制主板需要 5V 模式的固定 5V 高邏輯電平,你可以把印表機配置檔案[bltouch]部分的 'set_output_mode' 參數設定為 "5V"。</p>
|
||||
<p><strong><em> 只在你的控制主板的輸入線路可以容忍5V時使用 5V 模式。這就是為什麼這些 BL-Touch 版本的預設配置是OPEN-DRAIN模式。你有可能損壞你的控制主板上的MCU </em></strong></p>
|
||||
<p>因此。如果一個控制主板需要 5V 模式,並且它的輸入訊號線是 5V 的,並且如果</p>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>你有一個 BL-TOUCH Smart V3.0,你需要使用 'set_output_mode:5V' 參數,以確保每次啟動時的應用這一設定,因為探針不能記住所需的設定。</li>
|
||||
<li>如果你有一個 BL-Touch Smart V3.1,你可以選擇使用 'set_output_mode:5V " 或者通過手動使用 "BLTOUCH_STORE MODE=5V "命令,而不是使用參數 "set_output_mode: "來儲存模式。</li>
|
||||
<li>如果你有一些其他的探針。有些探針在電路板上有一個需要切除的線路或者需要設定的一個跳線,以便(永久)設定輸出模式。在這種情況下,完全省略 "set_output_mode "參數。
|
||||
如果你有一個 V3.1,不要自動或重複儲存輸出模式,以避免磨損探針的 EEPROM。BLTouch 的 EEPROM可用於約100.000次更新。每天儲存100次,在磨損之前,加起來大約可以執行3年。因此,在 V3.1 中儲存輸出模式被供應商設計成一個複雜的操作(出廠預設值是一個 safe OPEN DRAIN 模式),不適合由任何切片軟體、宏或其他東西重複發出,最好僅在首次將探針新增到到印表機電子裝置時使用。</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
@@ -1812,7 +1812,10 @@ adaptive_margin: 5
|
||||
</code></pre></div>
|
||||
|
||||
<ul>
|
||||
<li><code>adaptive_margin</code> <em>Default Value: 0</em> Margin (in mm) to add around the area of the bed used by the defined objects. The diagram below shows the adapted bed mesh area with an <code>adaptive_margin</code> of 5mm. The adapted mesh area (area in green) is computed as the used bed area (area in blue) plus the defined margin.<img alt="adaptive_bedmesh_margin" src="img/adaptive_bed_mesh_margin.svg" /></li>
|
||||
<li>
|
||||
<p><code>adaptive_margin</code> <em>Default Value: 0</em> Margin (in mm) to add around the area of the bed used by the defined objects. The diagram below shows the adapted bed mesh area with an <code>adaptive_margin</code> of 5mm. The adapted mesh area (area in green) is computed as the used bed area (area in blue) plus the defined margin.</p>
|
||||
<p><img alt="adaptive_bedmesh_margin" src="img/adaptive_bed_mesh_margin.svg" /></p>
|
||||
</li>
|
||||
</ul>
|
||||
<p>By nature, adaptive bed meshes use the objects defined by the Gcode file being printed. Therefore, it is expected that each Gcode file will generate a mesh that probes a different area of the print bed. Therefore, adapted bed meshes should not be re-used. The expectation is that a new mesh will be generated for each print if adaptive meshing is used.</p>
|
||||
<p>It is also important to consider that adaptive bed meshing is best used on machines that can normally probe the entire bed and achieve a maximum variance less than or equal to 1 layer height. Machines with mechanical issues that a full bed mesh normally compensates for may have undesirable results when attempting print moves <strong>outside</strong> of the probed area. If a full bed mesh has a variance greater than 1 layer height, caution must be taken when using adaptive bed meshes and attempting print moves outside of the meshed area.</p>
|
||||
|
||||
@@ -1481,14 +1481,15 @@ iface can0 can static
|
||||
</code></pre></div>
|
||||
|
||||
<ul>
|
||||
<li>The "bridge mcu" is not actually on the CAN bus. Messages to and from the bridge mcu will not be seen by other adapters that may be on the CAN bus.</li>
|
||||
<li>
|
||||
<p>The "bridge mcu" is not actually on the CAN bus. Messages to and from the bridge mcu will not be seen by other adapters that may be on the CAN bus.</p>
|
||||
<ul>
|
||||
<li>The available bandwidth to both the "bridge mcu" itself and all devices on the CAN bus is effectively limited by the CAN bus frequency. As a result, it is recommended to use a CAN bus frequency of 1000000 when using "USB to CAN bus bridge mode".Even at a CAN bus frequency of 1000000, there may not be sufficient bandwidth to run a <code>SHAPER_CALIBRATE</code> test if both the XY steppers and the accelerometer all communicate via a single "USB to CAN bus" interface.</li>
|
||||
<li>A USB to CAN bridge board will not appear as a USB serial device, it will not show up when running <code>ls /dev/serial/by-id</code>, and it can not be configured in Klipper's printer.cfg file with a <code>serial:</code> parameter. The bridge board appears as a "USB CAN adapter" and it is configured in the printer.cfg as a <a href="#configuring-klipper">CAN node</a>.</li>
|
||||
</ul>
|
||||
<p>The available bandwidth to both the "bridge mcu" itself and all devices on the CAN bus is effectively limited by the CAN bus frequency. As a result, it is recommended to use a CAN bus frequency of 1000000 when using "USB to CAN bus bridge mode".</p>
|
||||
<p>Even at a CAN bus frequency of 1000000, there may not be sufficient bandwidth to run a <code>SHAPER_CALIBRATE</code> test if both the XY steppers and the accelerometer all communicate via a single "USB to CAN bus" interface.</p>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>A USB to CAN bridge board will not appear as a USB serial device, it will not show up when running <code>ls /dev/serial/by-id</code>, and it can not be configured in Klipper's printer.cfg file with a <code>serial:</code> parameter. The bridge board appears as a "USB CAN adapter" and it is configured in the printer.cfg as a <a href="#configuring-klipper">CAN node</a>.</li>
|
||||
</ul>
|
||||
<h2 id="tips-for-troubleshooting">Tips for troubleshooting<a class="headerlink" href="#tips-for-troubleshooting" title="Permanent link">¶</a></h2>
|
||||
<p>See the <a href="CANBUS_Troubleshooting.html">CAN bus troubleshooting</a> document.</p>
|
||||
|
||||
|
||||
@@ -1447,7 +1447,8 @@
|
||||
<p>審覈員通常會檢查這些:</p>
|
||||
<ol>
|
||||
<li>
|
||||
<p>提交是否沒有缺陷,是否準備好廣泛部署?提交者應在提交之前測試其更改。審覈員會查詢提交中的錯誤,但通常不會測試提交的實際內容。接受的提交通常會在被接受后的幾周內部署到數千臺印表機。因此,提交的質量極為重要。</p>
|
||||
<p>提交是否沒有缺陷,是否準備好廣泛部署?</p>
|
||||
<p>提交者應在提交之前測試其更改。審覈員會查詢提交中的錯誤,但通常不會測試提交的實際內容。接受的提交通常會在被接受后的幾周內部署到數千臺印表機。因此,提交的質量極為重要。</p>
|
||||
<p>主<a href="https://github.com/Klipper3d/klipper">Klipper3d/klipper</a> GitHub倉庫不接受實驗性程式碼。提交者應該在他們自己的倉庫中進行實驗、除錯和測試。<a href="Contact.html">Klipper Discourse</a>論壇可以幫助你找到其他有興趣的開發者和可以提供真實世界反饋的使用者,或者讓更多人瞭解你的工作。</p>
|
||||
<p>提交必須通過所有<a href="Debugging.html">迴歸測試用例</a>。</p>
|
||||
<p>When fixing a defect in the code, submitters should have a general understanding of the root cause of that defect, and the fix should target that root cause.</p>
|
||||
@@ -1456,7 +1457,8 @@
|
||||
<p>對檔案的更新不應該聲明它們是一項正在進行的工作。</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>提交的檔案是否為執行真實世界任務的真實世界使用者提供了 "高度影響"的好處?審閱人仕需要至少在自己的腦海中確定大致的“目標受眾是誰”、“受眾規模”的粗略尺度、他們將獲得的“好處”、“好處是如何衡量的”,以及“這些測量測試的結果”。在大多數情況下,這對於提交者和審閱者來說都是顯而易見的,並且在審閱期間沒有明確說明。</p>
|
||||
<p>提交的檔案是否為執行真實世界任務的真實世界使用者提供了 "高度影響"的好處?</p>
|
||||
<p>審閱人仕需要至少在自己的腦海中確定大致的“目標受眾是誰”、“受眾規模”的粗略尺度、他們將獲得的“好處”、“好處是如何衡量的”,以及“這些測量測試的結果”。在大多數情況下,這對於提交者和審閱者來說都是顯而易見的,並且在審閱期間沒有明確說明。</p>
|
||||
<p>向 Klipper 主分支提交的內容預計會有值得注意的目標受眾。作為一般的“經驗法則”,提交內容應針對至少 100 個真實用戶的用戶群。</p>
|
||||
<p>If a reviewer asks for details on the "benefit" of a submission, please don't consider it criticism. Being able to understand the real-world benefits of a change is a natural part of a review.</p>
|
||||
<p>When discussing benefits it is preferable to discuss "facts and measurements". In general, reviewers are not looking for responses of the form "someone may find option X useful", nor are they looking for responses of the form "this submission adds a feature that firmware X implements". Instead, it is generally preferable to discuss details on how the quality improvement was measured and what were the results of those measurements - for example, "tests on Acme X1000 printers show improved corners as seen in picture ...", or for example "print time of real-world object X on a Foomatic X900 printer went from 4 hours to 3.5 hours". It is understood that testing of this type can take significant time and effort. Some of Klipper's most notable features took months of discussion, rework, testing, and documentation prior to being merged into the master branch.</p>
|
||||
@@ -1466,17 +1468,18 @@
|
||||
<p>新模塊、新選項和新參數不應提供與現有模塊類似的功能 - 如果差異是任意的,則最好利用現有系統或重構現有代碼。</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>提交的版權是否清晰、無償、相容?新的 C 檔案和 Python 檔案應該有一個明確的版權聲明。請看現有檔案以瞭解推薦格式。不推薦在對現有檔案進行小的修改時對該檔案進行版權聲明。</p>
|
||||
<p>提交的版權是否清晰、無償、相容?</p>
|
||||
<p>新的 C 檔案和 Python 檔案應該有一個明確的版權聲明。請看現有檔案以瞭解推薦格式。不推薦在對現有檔案進行小的修改時對該檔案進行版權聲明。</p>
|
||||
<p>從第三方來源獲取的程式碼必須與 Klipper 的許可證(GNU GPLv3)相容。大型的第三方程式碼新增應被新增到<code>lib/</code>目錄中(並遵循<a href="https://github.com/Klipper3d/klipper/blob/master/lib/README">../lib/README</a>中描述的格式)。</p>
|
||||
<p>提交者必須提供一個<a href="#format-of-commit-messages">Signed-off-by 行</a>,使用他們的真實全名。它表明提交者同意<a href="developer-certificate-of-origin">開發者源頭證書</a>。</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>提交的檔案是否遵循 Klipper 檔案中規定的準則?特別是,程式碼應遵循 <Code_Overview.md> 中的準則,配置檔案應遵循 <Example_Configs.md> 中的準則。</p>
|
||||
<p>提交的檔案是否遵循 Klipper 檔案中規定的準則?</p>
|
||||
<p>特別是,程式碼應遵循 <Code_Overview.md> 中的準則,配置檔案應遵循 <Example_Configs.md> 中的準則。</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Klipper 文件是否已更新以反映新的更改?至少,參考檔案必須隨著程式碼的相應變化而更新:</p>
|
||||
</li>
|
||||
</ol>
|
||||
<p>Klipper 文件是否已更新以反映新的更改?</p>
|
||||
<p>至少,參考檔案必須隨著程式碼的相應變化而更新:</p>
|
||||
<ul>
|
||||
<li>所有命令和命令參數必須在 <G-Code.md> 中被描述。</li>
|
||||
<li>所有面向用戶的模組及其配置參數必須在<Config_Reference.md>中記錄。</li>
|
||||
@@ -1484,10 +1487,13 @@
|
||||
<li>所有新的 "webhooks "及其參數必須在<API_Server.md>中描述。</li>
|
||||
<li>任何對命令或配置檔案設定導致無法向後相容的改變,都必須在<Config_Changes.md>中進行說明。</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ol>
|
||||
<p>新的檔案應該被新增到<Overview.md>中,並被新增到網站索引<a href="https://github.com/Klipper3d/klipper/blob/master/docs/_klipper3d/mkdocs.yml">docs/_klipper3d/mkdocs.yml</a>。</p>
|
||||
<ol>
|
||||
<li>
|
||||
<p>提交的內容是否完整,每次提交只涉及一個主題,並且是獨立的?提交資訊應遵循<a href="#format-of-commit-messages">首選格式</a>。</p>
|
||||
<p>提交的內容是否完整,每次提交只涉及一個主題,並且是獨立的?</p>
|
||||
<p>提交資訊應遵循<a href="#format-of-commit-messages">首選格式</a>。</p>
|
||||
<p>提交的內容不能有合併衝突。對 Klipper 主分支的新新增總是通過 "rebase "或 "squash and rebase "完成。一般來說,提交者沒有必要在每次更新Klipper主庫的時候重新合併他們的提交。然而,如果有合併衝突,建議提交者使用<code>git rebase</code>來解決衝突。</p>
|
||||
<p>每一次提交都應該解決一個高層的變化。大的改動應該被分解成多個獨立的提交。每個提交都應該 "自成一體",這樣才能讓<code>git bisect</code>和<code>git revert</code>等工具可靠地工作。</p>
|
||||
<p>空格的修改不應該與功能修改混在一起。一般來說,無意義的空格修改是不被接受的,除非是來自被修改程式碼的既定 "所有者"。</p>
|
||||
|
||||
@@ -1484,21 +1484,23 @@
|
||||
<p>典型的印表機運動始於klipper上位機接收到"G1"命令,並在微控制器發出對應的步進脈衝結束。本節將簡述典型運動命令的程式碼流。<a href="Kinematics.html">運動學</a>文件將更為細緻的描述運動的機械原理。</p>
|
||||
<ul>
|
||||
<li>移動命令的處理始於gcode.py,該程式碼將G程式碼轉化為內部呼叫。G1命令將呼叫klippy/extras/gcode_move.py中的cmd_G1()函式。gcode_move.py中的程式碼將處理 原點變換(G92),絕對座標模式(G90)和單位變換(如F6000=100mm/s)。一個移動命令的處理路徑為:<code>_process_data() -> _process_commands() -> cmd_G1()</code>。最終將呼叫ToolHead類的方法實現移動 <code>cmd_G1() -> ToolHead.move()</code>。</li>
|
||||
<li>The ToolHead class (in toolhead.py) handles "look-ahead" and tracks the timing of printing actions. The main codepath for a move is: <code>ToolHead.move() -> LookAheadQueue.add_move() -> LookAheadQueue.flush() -> Move.set_junction() -> ToolHead._process_moves()</code>.<ul>
|
||||
<li>
|
||||
<p>The ToolHead class (in toolhead.py) handles "look-ahead" and tracks the timing of printing actions. The main codepath for a move is: <code>ToolHead.move() -> LookAheadQueue.add_move() -> LookAheadQueue.flush() -> Move.set_junction() -> ToolHead._process_moves()</code>.</p>
|
||||
<ul>
|
||||
<li>ToolHead.move()將建立一個Move()對像實例,其中將包含移動的參數(在笛卡爾空間中,並這些參數以mm和s為單位)。</li>
|
||||
<li>kinematics類將檢查每個運動命令(<code>ToolHead.move() -> kin.check_move()</code>)。各種kinematics類存放于 klippy/kinematics/ 目錄。check_move()能在運動命令不合理時拋出錯誤。如果 check_move()成功,這意味著印表機必定能完成運動命令。</li>
|
||||
<li>LookAheadQueue.add_move() places the move object on the "look-ahead" queue.</li>
|
||||
<li>LookAheadQueue.flush() determines the start and end velocities of each move.</li>
|
||||
<li>Move.set_junction()實現移動的「梯形加減速(trapezoid generator)」。「梯形加減速」將每次移動拆分為三部分:恒加速度加速階段、恒速度階段、恒加速度減速階段。所有移動均含有上述三個階段,但單個階段的持續時間可能為0。</li>
|
||||
<li>當ToolHead._process_moves()被呼叫時,一次移動的所有要素均已就緒——移動的起始位置、結束位置、加速度、起始/巡航/結束速度、以及起始/巡航/結束的距離。所有資訊以笛卡爾座標的形式儲存在Move()實例中,單位為mm和s。</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Klipper uses an <a href="https://en.wikipedia.org/wiki/Root-finding_algorithm">iterative solver</a> to generate the step times for each stepper. For efficiency reasons, the stepper pulse times are generated in C code. The moves are first placed on a "trapezoid motion queue": <code>ToolHead._process_moves() -> trapq_append()</code> (in klippy/chelper/trapq.c). The step times are then generated: <code>ToolHead._process_moves() -> ToolHead._advance_move_time() -> ToolHead._advance_flush_time() -> MCU_Stepper.generate_steps() -> itersolve_generate_steps() -> itersolve_gen_steps_range()</code> (in klippy/chelper/itersolve.c). The goal of the iterative solver is to find step times given a function that calculates a stepper position from a time. This is done by repeatedly "guessing" various times until the stepper position formula returns the desired position of the next step on the stepper. The feedback produced from each guess is used to improve future guesses so that the process rapidly converges to the desired time. The kinematic stepper position formulas are located in the klippy/chelper/ directory (eg, kin_cart.c, kin_corexy.c, kin_delta.c, kin_extruder.c).</li>
|
||||
<li>需要注意,擠出機有獨特的運動學模型,使用<code>ToolHead._process_moves() -> PrinterExtruder.move()</code>類繼續寧處理。儘管擠出機使用了獨立的Move()類,由於Move() 實例包含了實際運動的時間,並且脈衝時間的裝置是定時發送到微控制器上,因此由擠出機類產生的步進運動將與列印頭的運動同步。</li>
|
||||
<li>當迭代計算器計算出步進時長后,計算結果將被置於一個陣列中:<code>itersolve_gen_steps_range() -> stepcompress_append()</code> (位於 klippy/chelper/stepcompress.c)。陣列(結構體 stepcompress.queue)儲存每一步對應的微處理器時鐘計數器時間。上述的「微處理器計數器」的值指的是微處理器硬體上的計數器——其值基於微處理器最後一次上電而定。</li>
|
||||
<li>接下來重要的是,對步進數據進行壓縮: <code>stepcompress_flush() -> compress_bisect_add()</code> (位於 klippy/chelper/stepcompress.c)。上述程式碼將基於前述的 步進時間列表 產生和編碼一系列的微控制器"queue_step"(佇列步進)命令。這些"queue_step"命令將被佇列化,優先處理,併發送到微控制器中(上位機通過 stepcompress.c:steppersync;下位機通過serialqueue.c:serialqueue))。</li>
|
||||
<li>在微控制器,queue_step命令將經由 src/command.c 處理。改程式碼將對命令進行解釋,並呼叫 <code>command_queue_step()</code>。command_queue_step()(位於src/stepper.c)將每個queue_step命令的參數附加到對應的步進佇列中。正常執行下,一「步」將在其執行前100ms被解釋並加入佇列。最後通過 <code>stepper_event()</code>結束步進事件的產生。該程式碼會基於queue_step命令的參數產生步進脈衝,並安排下一次步進脈衝產生的時間。硬體定時器發出中斷,在設定的事件呼叫相應的stepper_event。queue_step命令的參數包含「間隔」、「計數」、「增量」。總體而言,stepper_event()將執行下列內容,「記錄時間」: <code>do_step(); next_wake_time = last_wake_time + interval; interval += add;</code></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<p>上面的運動過程看似十分複雜。然而,真正需要注意的只有ToolHead(列印頭) 和 kinematic (運動學)類,上述兩個類的程式碼確定了運動執行和定時。剩下的程式碼僅用於處理通訊和管道的問題。</p>
|
||||
<h2 id="_6">新增上位機模組<a class="headerlink" href="#_6" title="Permanent link">¶</a></h2>
|
||||
<p>Klippy上位機的主程式能對模組進行熱載入。如果設定檔案中出現了類似"[my_module]" 的欄位名,程式會自動嘗試載入 klippy/extras/my_module.py 檔案內的模組。Klipper推薦使用上述方式擴充套件Klipper功能。</p>
|
||||
|
||||
@@ -1621,16 +1621,17 @@
|
||||
<li>如果你已經將<code>[input_shaper]</code>分段新增到print.cfg中,執行<code>SET_INPUT_SHAPER SHAPER_FREQ_X=0 SHAPER_FREQ_Y=0</code>命令。如果你得到"未知命令"錯誤,此時你可以安全地忽略它,繼續進行測量。</li>
|
||||
<li>執行命令: <code>TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5</code> 基本上,我們嘗試通過設置不同的大加速度值來使環紋更加明顯。此命令將從 1500 mm/sec^2 開始每 5 mm 增加加速度:1500 mm/sec^2、2000 mm/sec^2、2500 mm/sec^2 等等,直到 7000 mm/sec^2最後一個區域。</li>
|
||||
<li>列印用建議的參數切片的測試模型。</li>
|
||||
<li>如果振紋清晰可見,並且發現加速度對你的印表機來說太高了(如印表機抖動太厲害或開始丟步),你可以提前停止列印。</li>
|
||||
<li>
|
||||
<p>如果振紋清晰可見,並且發現加速度對你的印表機來說太高了(如印表機抖動太厲害或開始丟步),你可以提前停止列印。</p>
|
||||
<ol>
|
||||
<li>使用模型背面的 X 和 Y 標記作為參考。帶有 X 標記的一側的測量值應用於 X 軸<em>配置</em>,而 Y 標記 - 用於 Y 軸配置。在帶有 X 標記的零件上,在槽口附近測量幾次振動之間的距離 <em>D</em>(以毫米為單位),最好跳過第一次或兩次振動。為了更容易地測量振蕩之間的距離,請先標記振盪,然後用尺子或卡尺測量標記之間的距離:|<img alt="Mark ringing" src="img/ringing-mark.jpg" />|<img alt="Measure ringing" src="img/ringing-measure.jpg" />|</li>
|
||||
<li>計算測量距離 <em>D</em> 對應的振盪次數 <em>N</em>。如果您不確定如何計算振盪次數,請參考上圖,其中顯示 <em>N</em> = 6 次振盪。</li>
|
||||
<p>使用模型背面的 X 和 Y 標記作為參考。帶有 X 標記的一側的測量值應用於 X 軸<em>配置</em>,而 Y 標記 - 用於 Y 軸配置。在帶有 X 標記的零件上,在槽口附近測量幾次振動之間的距離 <em>D</em>(以毫米為單位),最好跳過第一次或兩次振動。為了更容易地測量振蕩之間的距離,請先標記振盪,然後用尺子或卡尺測量標記之間的距離:</p>
|
||||
<p>|<img alt="Mark ringing" src="img/ringing-mark.jpg" />|<img alt="Measure ringing" src="img/ringing-measure.jpg" />|</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>計算測量距離 <em>D</em> 對應的振盪次數 <em>N</em>。如果您不確定如何計算振盪次數,請參考上圖,其中顯示 <em>N</em> = 6 次振盪。</p>
|
||||
</li>
|
||||
<li>計算X軸環紋頻率為<em>V</em> · <em>N</em> / <em>D</em> (Hz),其中 <em>V</em> 是外周的速度 (mm/sec)。對於上面的示例,我們標記了 6 個振盪,並且測試以 100 毫米/秒的速度打印,因此頻率為 100 * 6 / 12.14 ≈ 49.4 Hz。</li>
|
||||
<li>對 Y 標記也執行 (8) - (10)。</li>
|
||||
</ol>
|
||||
</li>
|
||||
</ol>
|
||||
<p>請注意,測試打印上的環紋應遵循彎曲凹槽的圖案,如上圖所示。如果不是,那麼這個缺陷並不是真正的環紋,而是有不同的起源——機械問題或擠出機問題。在啟用和input shapers之前,應該先修復它。</p>
|
||||
<p>如果測量結果不可靠,例如,振蕩之間的距離不穩定,則可能意味著打印機在同一軸上有多個共振頻率。可以嘗試遵循 <a href="#unreliable-measurements-of-ringing-frequencies">不可靠的環紋頻率測量</a> 部分中描述的調整過程,但仍然可以從input shaper技術中獲得一些東西。</p>
|
||||
<p>環紋頻率可能取決於模型在構建板內的位置和 Z 高度,<em>尤其是在 三角洲打印機上</em>;您可以檢查是否在測試模型兩側的不同位置和不同高度看到頻率差異。如果是這種情況,您可以計算 X 軸和 Y 軸上的平均環紋頻率。</p>
|
||||
|
||||
@@ -2012,7 +2012,10 @@
|
||||
<h2 id="exclude_object">exclude_object<a class="headerlink" href="#exclude_object" title="Permanent link">¶</a></h2>
|
||||
<p>The following information is available in the <a href="Exclude_Object.html">exclude_object</a> object:</p>
|
||||
<ul>
|
||||
<li><code>objects</code>: An array of the known objects as provided by the <code>EXCLUDE_OBJECT_DEFINE</code> command. This is the same information provided by the <code>EXCLUDE_OBJECT VERBOSE=1</code> command. The <code>center</code> and <code>polygon</code> fields will only be present if provided in the original <code>EXCLUDE_OBJECT_DEFINE</code>Here is a JSON sample:</li>
|
||||
<li>
|
||||
<p><code>objects</code>: An array of the known objects as provided by the <code>EXCLUDE_OBJECT_DEFINE</code> command. This is the same information provided by the <code>EXCLUDE_OBJECT VERBOSE=1</code> command. The <code>center</code> and <code>polygon</code> fields will only be present if provided in the original <code>EXCLUDE_OBJECT_DEFINE</code></p>
|
||||
<p>Here is a JSON sample:</p>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="highlight"><pre><span></span><code>[
|
||||
{
|
||||
|
||||
Binary file not shown.
File diff suppressed because one or more lines are too long
@@ -2,267 +2,267 @@
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2024-05-05</lastmod>
|
||||
<lastmod>2024-05-06</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
</urlset>
|
||||
Binary file not shown.
Reference in New Issue
Block a user