Kihagyás

Objektumok kizárása

The [exclude_object] module allows Klipper to exclude objects while a print is in progress. To enable this feature include an exclude_object config section (also see the command reference and sample-macros.cfg file for a Marlin/RepRapFirmware compatible M486 G-Code macro.)

Más 3D nyomtatók firmware opcióitól eltérően a Klippert futtató nyomtató komponenscsomagot használ, és a felhasználók számos lehetőség közül választhatnak. Ezért az egységes felhasználói élmény biztosítása érdekében az [exclude_object] modul egyfajta szerződést vagy API-t hoz létre. A szerződés tartalmazza a G-kód fájl tartalmát, a modul belső állapotának vezérlését és azt, hogy ez az állapot hogyan kerül a kliensek rendelkezésre bocsátásra.

Munkafolyamat áttekintése

Egy tipikus munkafolyamat egy fájl nyomtatásához így nézhet ki:

  1. A szeletelés befejeződik, és a fájl feltöltésre kerül nyomtatásra. A feltöltés során a fájl feldolgozása megtörténik, és [exclude_object] jelölések kerülnek a fájlhoz. A szeletelőket úgy is be lehet állítani, hogy az objektumkizáró jelöléseket natívan vagy saját előfeldolgozási lépésben készítsék el.
  2. A nyomtatás megkezdésekor a Klipper visszaállítja az [exclude_object] státuszt.
  3. Amikor a Klipper feldolgozza az EXCLUDE_OBJECT_DEFINE blokkot, frissíti a státuszt az ismert objektumokkal, és továbbítja azt az ügyfeleknek.
  4. Az ügyfél felhasználhatja ezeket az információkat arra, hogy egy felhasználói felületet jelenítsen meg a felhasználónak, hogy nyomon követhesse az előrehaladást. A Klipper frissíti az állapotot, hogy tartalmazza az aktuálisan nyomtatott objektumot, amelyet az ügyfél megjelenítési célokra használhat.
  5. Ha a felhasználó egy objektum törlését kéri, a kliens egy EXCLUDE_OBJECT NAME=<name> parancsot ad a Klippernek.
  6. Amikor a Klipper feldolgozza a parancsot, hozzáadja az objektumot a kizárt objektumok listájához, és frissíti állapotát az ügyfél felé.
  7. Az ügyfél megkapja a Klipper frissített állapotát, és ezt az információt felhasználhatja az objektum állapotának megjelenítéséhez a felhasználói felületen.
  8. A nyomtatás befejezésekor az [exclude_object] állapot továbbra is elérhető marad, amíg egy másik művelet vissza nem állítja.

A G-kód fájl

Az objektumok kizárásához szükséges speciális G-kód feldolgozás nem illeszkedik a Klipper alapvető tervezési céljaihoz. Ezért ez a modul megköveteli a fájl feldolgozását, mielőtt a Klippernek nyomtatásra elküldi. A fájl Klipper számára történő előkészítésére két lehetőség egy utófeldolgozó szkript használata a szeletelőben, vagy a fájl feltöltéskor történő feldolgozása a middleware segítségével. Egy referencia utófeldolgozó szkript elérhető futtatható és python könyvtárként is, lásd az objektum előfeldolgozó törlése.

Objektum meghatározások

Az EXCLUDE_OBJECT_DEFINE parancsot arra használjuk, hogy a G-kód fájlban lévő minden egyes objektumról összefoglalót adjunk a nyomtatáshoz. A fájlban lévő objektumok összefoglalóját adja meg. Az objektumokat nem kell definiálni ahhoz, hogy más parancsok hivatkozhassanak rájuk. Ennek a parancsnak az elsődleges célja, hogy információt szolgáltasson a felhasználói felületnek anélkül, hogy a teljes G-kód fájlt elemeznie kellene.

Az objektumdefiníciókat elnevezik, hogy a felhasználók könnyen kiválaszthassák a kizárandó objektumot, és további metaadatokat is megadhatnak a grafikus törlésmegjelenítéshez. A jelenleg definiált metaadatok közé tartozik egy CENTER X,Y koordináta, valamint egy POLYGON X,Y pontok listája, amely az objektum minimális körvonalát ábrázolja. Ez lehet egy egyszerű határoló doboz, vagy egy bonyolult burkolat a nyomtatott objektumok részletesebb megjelenítéséhez. Különösen akkor, ha a G-kód fájlok több, egymást átfedő határoló régiókkal rendelkező alkatrészt tartalmaznak, a középpontok vizuálisan nehezen megkülönböztethetők. POLYGONS pontokból álló json-kompatibilis tömbnek kell lennie [X,Y] szóközök nélkül. A további paraméterek karakterláncokként kerülnek elmentésre az objektumdefinícióban, és állapotfrissítésekben lesznek megadva.

EXCLUDE_OBJECT_DEFINE NAME=calibration_pyramid CENTER=50,50 POLYGON=[[40,40],[50,60],[60,40]]

All available G-Code commands are documented in the G-Code Reference

Állapotinformáció

The state of this module is provided to clients by the exclude_object status.

Az állapot visszaáll, amikor:

  • A Klipper firmware újraindul.
  • A [virtual_sdcard] visszaállítása megtörtént. Figyelemre méltó, hogy ezt a Klipper a nyomtatás kezdetén visszaállítja.
  • Amikor egy EXCLUDE_OBJECT_DEFINE RESET=1 parancsot adunk ki.

A meghatározott objektumok listája az exclude_object.objects állapotmezőben jelenik meg. Egy jól definiált G-kód fájlban ez a fájl elején található EXCLUDE_OBJECT_DEFINE parancsokkal történik. Ez biztosítja a kliensek számára az objektumok nevét és koordinátáit, így a felhasználói felület kívánság szerint grafikusan is megjelenítheti az objektumokat.

A nyomtatás előrehaladtával az exclude_object.current_object állapotmező frissül, ahogy a Klipper feldolgozza az EXCLUDE_OBJECT_START és EXCLUDE_OBJECT_END parancsokat. A current_object mező akkor is be lesz állítva, ha az objektumot kizárták. Az EXCLUDE_OBJECT_START mezővel jelölt nem definiált objektumok hozzá lesznek adva az ismert objektumokhoz, hogy segítsék a felhasználói felületre való utalásukat, minden további metaadat nélkül.

Az EXCLUDE_OBJECT parancsok kiadásakor a kizárt objektumok listáját az exclude_object.excluded_objects tömb tartalmazza. Mivel a Klipper előre tekint, hogy feldolgozza a közelgő G-kódot, a parancs kiadása és az állapot frissítése között késés lehet.

Back to top