מתמונה לקובץ חיתוך,
עם המספרים האמיתיים.

המדריך הזה מריץ את מה שבית דפוס באמת קונה — הסרת רקע, קו חיתוך במילימטרים, וייצוא DXF שמדפסה פותחת — בקריאה אחת. כל בקשה וכל תשובה כאן נלכדו מהמערכת החיה ומורצות מחדש בכל בדיקה: הדף הזה לא יכול לסטות מה-API.

  1. הקלט: מדבקה עם שקיפות משלה

    לוגו, קו, טקסט, מדבקה — PNG עם רקע שקוף ושוליים, כפי שלקוח שולח. זה מה שהשרשרת הזו בנויה בשבילו. תצלום יעבור, אבל יצא פוסטרי — המדריך הזה הוא לאיורים שטוחים.

  2. הצעת מחיר לפני שמשלמים

    השרשרת כולה מתומחרת מראש — שלושה שלבים בחיוב אחד, עם הנחת חבילה. המספרים כאן נמשכים חיים מ-/api/pricing, לא מודפסים בדף.

    … קרדיטיםהערכה לשרשרת
    …הנחת חבילה לעומת שלוש קריאות נפרדות
  3. קריאה אחת

    /v1/pipeline מקבל את הקובץ ואת רשימת השלבים. כל שלב עובר דרך רישום המנועים; ההערכה, התקרה והחיוב נגזרים מהשרשרת כולה ולא מהשלב הראשון. ה-Idempotency-Key הוא מה שמונע חיוב כפול כשהרשת נופלת אחרי שהשרת קיבל.

    curl -X POST http://localhost:8080/v1/pipeline \
      -H "Authorization: Bearer $VECTORFY_KEY" \
      -H "Idempotency-Key: $(uuidgen)" \
      -F file=@sticker.png \
      -F 'steps=@steps.json'
    [
      {
        "operation": "cutout"
      },
      {
        "operation": "cutline",
        "params": {
          "output": "svg"
        }
      },
      {
        "operation": "export",
        "params": {
          "output": "dxf"
        }
      }
    ]
  4. 202, ואז התוצאה

    התשובה חוזרת מיד עם מזהה והערכה; מבצעים polling על העבודה. בסיום, credits_charged שווה ל-estimated_credits — מה שצוטט הוא מה שחויב. עבודה שנכשלה לא מחויבת כלל.

    … קרדיטיםהערכה לשרשרת
  5. מה שמאשר את החיתוך לפני הוויניל

    אל תסתכלו רק על הסטטוס. cut_mm הוא המדבקה במילימטרים ו-physical_mm הוא העמוד; cut_contour_deviation_mm הוא כמה הקו שפורסם סוטה מהחיתוך בפועל — נמדד, לא מונח; clipped_at_edge אומר אם הלהב ירוץ לאורך הקצה; mask_source אומר מאיפה הגיעה המסכה. אלה המספרים שבית דפוס קורא לפני שמעמיס חומר.

    {
      "id": "job_…",
      "status": "succeeded",
      "operation": "pipeline",
      "engine": "pipeline-runner",
      "estimated_credits": "…",
      "credits_charged": "…",
      "result": {
        "url": "https://<your-host>/files/out/…/output.dxf?sig=…",
        "bytes": 4695
      },
      "diagnostics": {
        "steps": [
          {
            "operation": "cutout",
            "diagnostics": {
              "method": "existing-alpha",
              "model_ran": false
            }
          },
          {
            "operation": "cutline",
            "diagnostics": {
              "mask_source": "alpha",
              "cut_mm": [
                50.3,
                36.76
              ],
              "physical_mm": [
                59.3,
                42.3
              ],
              "cut_contour_deviation_mm": 0.0393,
              "clipped_at_edge": false
            }
          },
          {
            "operation": "export",
            "diagnostics": {
              "cut_mm": [
                50.29,
                36.74
              ],
              "physical_mm": [
                59.27,
                42.33
              ]
            }
          }
        ]
      }
    }
    {
      "cutout": [
        "method",
        "model_ran"
      ],
      "cutline": [
        "mask_source",
        "cut_mm",
        "physical_mm",
        "cut_contour_deviation_mm",
        "clipped_at_edge"
      ],
      "export": [
        "cut_mm",
        "physical_mm"
      ]
    }
  6. ה-DXF: מילימטרים, ונתיב סגור אחד

    הקובץ מצהיר $INSUNITS=4 — מילימטרים — כי R12 בלי יחידות הוא קובץ שתוכנת סימון מניחה שהוא באינצ'ים, ומדבקה של 50 מ"מ נכנסת ב-1,270. פתחו אותו ב-CutStudio, SignCut או FlexiSign ומדדו עם סרגל לפני שחותכים ויניל. בדיקה בקוד אינה מכונה שחותכת.

  7. מי עשה את העבודה — ומה חייבים להעביר הלאה

    engine ברמה העליונה הוא שורת הקטלוג שחויבה — לא טענה שמודל רץ. האמת יושבת ב-diagnostics.model_ran: קובץ שהגיע עם מסכה משלו לא מריץ את מודל הפילוח, והתשובה אומרת זאת. כשמודל מאומן כן רץ, diagnostics.model נוקב בשמו וגילוי הרישיון מופיע ב-warnings — משווק-משנה חייב להעביר אותו ללקוח שלו.

  8. הכסף, בסדר הנכון

    הצעה → הערכה ב-202 → חיוב בסיום, ושלושתם אותו מספר. הקרדיטים לא פגים לעולם. מחיר ה-gang sheet המעורב (gangsheet-nest) הוא מחיר-מבוא ועדיין לא נקבע סופית — כל מספר אחר בדף הזה הוא המחיר החי.

מכאן