# อ่านเส้นทางพิมพ์จาก G-code ที่เก็บไว้

ภาพหกภาพนี้สร้างจากพิกัดเส้นทาง extrusion ในไฟล์ PrusaSlicer เดิมของแผ่นยึดกล้องหนา 3 และ 4 มม. ไม่ได้ slice ใหม่ ไม่ได้เปิดหน้าต่าง PrusaSlicer เพื่อยืนยันผล และยังไม่ได้พิมพ์ชิ้นงานจริง

## อ่านภาพ

1. เลือกความหนาเดียวกันแล้วเทียบ first, middle และ top แกน X/Y เป็นมิลลิเมตรและใช้มาตราส่วนเท่ากัน ตัวเลข Z คือระดับของชั้นนั้น
2. รุ่น 3 มม. แสดงชั้น 1/8/15 ที่ Z 0.2/1.6/3.0 มม. รุ่น 4 มม. แสดงชั้น 1/10/20 ที่ Z 0.2/2.0/4.0 มม. ถ้าจำนวนชั้นเป็นเลขคู่ เลือกชั้นกลางตัวล่าง
3. เทียบเส้นรอบนอกกับ infill ตามคำอธิบายสี มองรูและช่องของชิ้นงาน รวมทั้ง skirt ในชั้นแรก เส้นทุกเส้นมาจาก G-code ไม่ใช่รูปทรงตัวอย่างที่วาดขึ้นเอง
4. เส้นเป็นแนวศูนย์กลางที่สั่งให้ extrusion ไม่ใช่ความกว้างพลาสติกจริง ความหนาเส้นในภาพมีไว้ให้อ่านง่าย ไม่ใช้วัด nozzle หรือรับรองความแข็งแรง
5. ภาพไม่แสดง travel, การดึงเส้นกลับ หรือการป้อนคืนที่ไม่มีการเคลื่อน XY จึงไม่ใช่ภาพจำลองการเคลื่อนเครื่องครบทุกคำสั่ง

## ตรวจที่มาและทดลองอย่างจำกัด

เปิด `manifest.json` ดู hash ของ G-code/STL, จำนวนชั้น, จำนวนเส้นในแต่ละภาพและผลทดสอบตัวอ่าน 21 กรณี ข้อมูลเดิมต้องตรง SHA-256 ก่อนสร้างภาพ ตัวอ่านรักษาค่า retraction ค้างไว้แม้เจอ `G92 E0` และปฏิเสธกรณีป้อนคืนพร้อมเคลื่อน XY ที่ยังตีความไม่ได้

ดาวน์โหลดและแตก `toolpath-source.zip` ในโฟลเดอร์ใหม่ ภายในมีข้อมูลเดิมสองไฟล์นามสกุล `.gcode.txt` สำหรับอ่านเป็นข้อมูลเท่านั้น และ manifest เดิม ใช้ Python 3 ที่มีอยู่แล้วโดยไม่ต้องติดตั้งไลบรารีเพิ่ม:

```text
python toolpath.py toolpath-data/mount-3mm-preview.gcode.txt 957688195942ec268c35472971170cc4a54f546cbfe5233ec1dab4ae2bac1177 3 plots-3mm
python toolpath.py toolpath-data/mount-4mm-preview.gcode.txt ca75d5a51ae81b7789f1793cb7ed1e4b15ee04ae187d26b184e0ca987c565fcc 4 plots-4mm
```

ต้องใช้ชื่อโฟลเดอร์ผลลัพธ์ใหม่ ตัวอ่านจะไม่เขียนทับโฟลเดอร์เดิม คำสั่งนี้ทำงานออฟไลน์ ไม่ส่งคำสั่งให้เครื่องพิมพ์และไม่ต้องมี repository ส่วนตัว อย่าเปลี่ยนนามสกุลแล้วนำไฟล์ไปพิมพ์จากแบบฝึกนี้ เพราะยังไม่ได้รับรองโปรไฟล์เครื่องพิมพ์หรือวัสดุ

หากมี repository ต้นฉบับพร้อม Python, RTK, Docker และ cached image อยู่แล้ว คำสั่งต่อไปนี้เป็นการตรวจเต็มชุดใน sandbox รวมทั้ง hash ของ STL เดิม:

```powershell
rtk python tools/camera-mount-verification/toolpath_check.py
```

คำสั่ง repository รันทดสอบและสร้างภาพใน container ออฟไลน์ที่จำกัด CPU/RAM/เวลา ไม่ดาวน์โหลด dependency อ่าน `toolpath-README.md` เพื่อแยกวิธีใช้ ZIP แบบพกพากับการตรวจใน repository

แบบฝึก: อธิบายว่าทำไม infill ชั้นกลางต่างจากผิวบน ระบุสิ่งที่เห็นจากพิกัดจริงแยกจากสิ่งที่ภาพยืนยันไม่ได้ เช่น การยึดเกาะ ความแข็งแรง ความพอดี และคุณภาพผิว อย่าสรุปว่าเครื่องพิมพ์พร้อมใช้งานจากภาพนี้

การตรวจ native GUI ยังรออยู่: เมื่อมี PrusaSlicer G-code Viewer ที่พร้อมใช้ ให้เปิดไฟล์เดิมเพื่อดูชั้นและชนิดเส้น แล้วเก็บหลักฐานการตรวจนั้นแยกต่างหาก ไม่ต้องสั่งพิมพ์เพื่อทำแบบฝึกนี้ ดู [คู่มือทางการ PrusaSlicer G-code Viewer](https://help.prusa3d.com/article/prusaslicer-g-code-viewer_193152)
