تخطَّ إلى المحتوى
CADCAMFUN
الوثائق

الوثائق

دورة حياة المشروع

قم بإنشاء مشروع، واحفظ بيانات التصميم الخاصة به، ثم أعد فتحه، ثم اختر نوع السجل المناسب.

مترجم تلقائيًا من الإنجليزية. عرض الأصل بالإنجليزية

ما يحتويه المشروع

يقوم المشروع بتجميع الرسومات والمكونات القابلة لإعادة الاستخدام ومسارات الأدوات المحفوظة. يخزن الرسم مستند JSON؛ يقوم أحد المكونات بتخزين بيانات التصميم القابلة لإعادة الاستخدام؛ يمكن أن يحتوي مسار الأدوات على NC عادي وبيانات وصفية أو مستند CAM محمول تم التحقق من صحته. تعد المواد والقواطع وتكوينات الماكينة بمثابة سجلات موارد منفصلة يمكن أن تشير إليها مسارات عمل المعالجة الآلية. ولا يحل معرف المشروع محل أي من معرفات الموارد هذه.

يتبع هذا الدليل نفس العائلات التي يستخدمها سطح المكتب. فهو يفصل بين حفظ حالة التطبيق وتنزيل ملف وتسجيل إصدار مسار الأدوات وتنفيذ سجل المشروع. تحافظ هذه العمليات على معلومات مختلفة. ابدأ بمشروع تطوير يمكن التخلص منه قبل تطبيق التسلسل على أعمال الإنتاج.

الأمثلة عبارة عن قوالب طلب تتطابق أجسام JSON الخاصة بها مع المخططات الحالية. لم يتم التقاطها استجابات الخادم. لكل حقل وحالة معلنة، استخدم المشاريع, الرسومات, عناصر، و مسارات الأدوات مراجع واجهة برمجة التطبيقات.

حدد واجهة برمجة التطبيقات الحقيقية

قم بتشغيل سطح المكتب باستخدام bun run desktop:dev، أو ابدأ تشغيل سايدكار يدوية معزولة باستخدام وصفة التنمية المحلية. تعلن العملية اليدوية عن منفذ سريع الزوال. تستخدم معاينة المتصفح بدون نقطة نهاية تركيبات في الذاكرة؛ لا يمكن إثبات بقاء المشروع بعد إعادة تشغيل الخادم.

المحطة الثانية: استبدل منفذ المثال والرمز المميز
CADCAM_URL=http://127.0.0.1:43111
CADCAM_TOKEN=local-development-token
CADCAM_DEMO_DIR=$(mktemp -d /tmp/cadcamfun-project-guide.XXXXXX)

curl --fail-with-body "$CADCAM_URL/api/health"
curl --fail-with-body "$CADCAM_URL/api/projects"   -H "Authorization: Bearer $CADCAM_TOKEN"

الصحة عامة، لذلك يمكن أن تنجح في حين يفشل طلب المشروع المحمي في الحصول على الترخيص. استخدم الرمز المميز المقدم لهذه العملية. احتفظ بنفس الغلاف للأمثلة التالية حتى يظل عنوان URL والرمز المميز والدليل المؤقت والمعرفات المستخرجة متاحة. أبقِ وحدة التحكم الخاصة بالسايدكار مفتوحة في محطة الإطلاق الخاصة بها.

إنشاء وفحص المشروع

إنشاء مشروع شخصي خاص واحد
curl --fail-with-body -X POST "$CADCAM_URL/api/projects"   -H "Authorization: Bearer $CADCAM_TOKEN"   -H 'Content-Type: application/json'   -d '{"name":"Bracket study","description":"Disposable guide project","organizationId":null,"isPublic":false}'   -o "$CADCAM_DEMO_DIR/project.json"

CADCAM_PROJECT_ID=$(bun --no-env-file -e   'console.write((await Bun.file(process.argv[1]).json()).id)'   "$CADCAM_DEMO_DIR/project.json")
curl --fail-with-body "$CADCAM_URL/api/projects/$CADCAM_PROJECT_ID"   -H "Authorization: Bearer $CADCAM_TOKEN"

يُرجع الإنشاء HTTP 201 بصف مشروع. يتطلب المعالج اسمًا حقيقيًا على الرغم من أن مخطط النقل يعلن أن هذا الحقل اختياري. يجب أن تكون المؤسسة المقدمة هي المؤسسة التي ينتمي إليها المتصل. تؤدي قراءة المشروع إلى إرجاع معلومات المالك/المؤسسة وعدد الرسومات/المكونات؛ إنه شكل استجابة مختلف عن الخلق.

في سطح المكتب، استخدم /projects للتصفح و /projects/:id لفتح لوحة القيادة. يحتوي على علامات تبويب الرسومات والمكونات ومسارات الأدوات، بالإضافة إلى إجراءات التحكم في التحرير والحذف والإصدار. يتطلب تحديث المشروع الاسم مرة أخرى؛ يمكن للمالك أو المؤسسة ADMIN/MANAGER التحديث، بينما يقتصر الحذف على المالك أو ADMIN.

إنشاء وفتح الرسم

قم بإنشاء مستند محرر فارغ واحتفظ بمعرفه
curl --fail-with-body -X POST "$CADCAM_URL/api/projects/$CADCAM_PROJECT_ID/drawings"   -H "Authorization: Bearer $CADCAM_TOKEN"   -H 'Content-Type: application/json'   -d '{"name":"Main drawing","description":null,"data":{"elements":[],"version":"1.0"}}'   -o "$CADCAM_DEMO_DIR/drawing.json"

CADCAM_DRAWING_ID=$(bun --no-env-file -e   'console.write((await Bun.file(process.argv[1]).json()).id)'   "$CADCAM_DEMO_DIR/drawing.json")
curl --fail-with-body "$CADCAM_URL/api/drawings/$CADCAM_DRAWING_ID"   -H "Authorization: Bearer $CADCAM_TOKEN"

يتم استخدام نفس شكل المستند الفارغ من خلال تدفق إنشاء الرسم في لوحة معلومات المشروع. إنه ينشئ صفًا، وليس هندسة. يفتح /cad?drawingId=<id> أو /drawings/<id> لتحريره. مع /cad?projectId=<id>، يختار CAD أحدث رسم للمشروع؛ الرسم المسمى له الأسبقية.

يتطلب إنشاء الرسم الوصول إلى المشروع واسمًا. تتطلب قراءة/تحديث الرسم الفردي مالك المشروع أو أحد أعضاء المؤسسة؛ يؤدي الحذف إلى إضافة فحص للمالك/المؤسسة-ADMIN. JSON data لم يتم التحقق من صحته كمستند هندسي كامل قابل للرسم بواسطة نقطة النهاية العامة. وبالتالي فإن الكتابة الناجحة لا تثبت أن كل عنصر متوفر يمكن عرضه.

حفظ بيانات التصميم وتكرارها وتصديرها

في رسم مخزن مفتوح بالفعل، يقوم إجراء حفظ CAD بتحديث هذا الرسم وإضافة مكونات المكتبة المحلية المفقودة إلى مشروعه. تنفذ صفحة CAD الخاصة بها Cmd/Ctrl+S معالج. يقوم المستند الذي ليس له وجهة مخزنة بفتح تدفق التصدير/الحفظ؛ يتطلب الحفظ كمشروع شكلًا هندسيًا أو عنصرًا محددًا ويقوم بإنشاء مشروع ورسم جديدين.

تتضمن لقطة الرسم عناصر وطبقات ومعرف العنصر المحدد وإعدادات القياس وإصدار التنسيق. يستعيد مسار التحميل الحالي العناصر وإعدادات الوحدات/التفاوتات الصالحة، ويعين معرفات الطبقة غير المعروفة للطبقة النشطة، ويمسح التحديد. لا تستنتج استعادة الطبقة بالكامل من الحقول الموجودة في عملية التصدير.

تعمل مزامنة مكونات المشروع على مطابقة الأسماء المقطوعة وغير الحساسة لحالة الأحرف وإضافة الأسماء المفقودة؛ ولا يقوم بالكتابة فوق تعريف يحمل نفس الاسم. يعد إنشاء المكونات أفضل جهد ويمكن أن يفشل بشكل مستقل. لا يثبت الرسم المحفوظ أنه تم نسخ كل مكون محلي، كما أن تدفق الحفظ متعدد الطلبات ليس معاملة قاعدة بيانات واحدة.

من بطاقة الرسم، يقوم Duplicate بتحميل بياناته المخزنة وإنشاء معرف جديد. يقوم التنزيل بتصدير بيانات هذا الرسم بتنسيق JSON؛ ولا يتم تصدير المشروع بأكمله. تطبق تحديثات الرسم العامة قيم الاسم/البيانات/الصور المصغرة الحقيقية وتسمح بوصف فارغ واضح. وهي لا تكشف عن معلمة تجزئة المقارنة والمبادلة الخاصة بالمستودع.

قم بتخزين مكون قابل لإعادة الاستخدام

أنشئ مكونًا، ثم تحقق من صحة بياناته القابلة لإعادة الاستخدام عند التحديث
curl --fail-with-body -X POST "$CADCAM_URL/api/projects/$CADCAM_PROJECT_ID/components"   -H "Authorization: Bearer $CADCAM_TOKEN"   -H 'Content-Type: application/json'   -d '{"name":"Bracket insert","description":"Reusable empty template","data":{"name":"Bracket insert","type":"custom","elements":[]}}'   -o "$CADCAM_DEMO_DIR/component.json"

CADCAM_COMPONENT_ID=$(bun --no-env-file -e   'console.write((await Bun.file(process.argv[1]).json()).id)'   "$CADCAM_DEMO_DIR/component.json")
curl --fail-with-body -X PUT "$CADCAM_URL/api/components/$CADCAM_COMPONENT_ID"   -H "Authorization: Bearer $CADCAM_TOKEN"   -H 'Content-Type: application/json'   -d '{"type":"custom","isPublic":false,"data":{"name":"Bracket insert","type":"custom","elements":[]}}'

يُرجع الإنشاء HTTP 201. يقوم المستودع الحالي بإنشاء عملية تخزين الاسم والوصف والبيانات وارتباط المشروع؛ ولا يستمر في الاحتفاظ بخيارات النوع/العامة/الصورة المصغرة ذات المستوى الأعلى عند الإنشاء. يقوم التحديث الصريح أعلاه بتعيين نوع المستوى الأعلى ومستوى الرؤية المقصودين. يقوم التحديث بالتحقق من صحة بيانات المكونات الصحيحة، وتطبيع الحقول الاختيارية المفقودة، ورفض التصحيح الفارغ.

يفتح /components/:id لشاشة التفاصيل أو التصفح /components مع مرشح المشروع. تتضمن الرؤية حاليًا مالكي المشروع وأعضاء المؤسسة والمكونات العامة. لا تفرض معالجات المكونات بوابة إضافية خاصة بالمالك فقط لتحرير/حذف المكونات المرئية؛ لا تتعامل مع الرؤية العامة كمشاركة محمية للقراءة فقط.

إعداد موارد الآلات

شاشات الموارد هي /materials, /tools، و /machine، مع طرق التفاصيل الفردية. تتطلب المواد اسمًا وقيمة خصائص. تتطلب الأدوات الاسم والنوع والقطر غير الصفري والمادة. توفر واجهة المستخدم قيود قطر إيجابية، ولكن يجب أن تتحقق عمليات التكامل من صحة الأبعاد الهندسية بشكل صريح بدلاً من الاعتماد على عمليات التحقق من الصدق.

مثال على جسم القاطع لـ POST /api/tools
{
  "name": "6 mm end mill",
  "type": "endmill",
  "diameter": 6,
  "material": "carbide",
  "numberOfFlutes": 3,
  "cuttingLength": 18,
  "shankDiameter": 6,
  "isPublic": false
}

يحتاج تكوين الجهاز إلى النوع mill, lathe, printer، أو laser; أبعاد حجم العمل الإيجابية، وسرعة المغزل القصوى، ومعدل التغذية الأقصى؛ وبيانات التحكم/المحاور الاختيارية. تتطلب التكوينات رباعية/خمسة محاور تكوينًا دوارًا متوافقًا يتم فحصه بواسطة المعالج. تصف هذه السجلات المعدات؛ وجودها لا يؤكد وجود برنامج معين.

يستخدم مواد, أدوات، و آلات للأجسام الدقيقة. قوائم المواد/الأدوات ترجع المصفوفات؛ تستخدم مسارات الآلة مظروف النجاح. اقرأ استجابة نقطة النهاية المحددة بدلاً من افتراض شكل مجموعة عالمي واحد.

حفظ وإعادة فتح برنامج CAM

يمكن إنشاء مسار الأدوات ضمن مشروع باستخدام POST /api/toolpaths باستخدام الاسم ومعرف المشروع، أو إرفاقه برسم POST /api/drawings/:id/toolpaths باستخدام الاسم والبيانات. تستخدم لوحة معلومات المشروع عائلة المستوى الأعلى وتفتح النتيجة من خلالها /cam?loadToolpath=<id>. تقرأ صفحة CAM النسخة الأصلية المحفوظة من خلال واجهة برمجة التطبيقات.

يوفر نموذج حفظ CAM مشروعًا موجودًا أو مشروعًا جديدًا أو تحديثًا للبرنامج المحفوظ. تنزيل نص تصدير G-code. تنزيلات التصدير المحمولة .cam.json مع format: cadcamfun-camوالإعدادات والبرنامج والمخزون وسياق الرسم ومطابقة الأدلة حيثما كان ذلك متاحًا. يحافظ حفظ التطبيق على هذا المستند في سجل مسار الأدوات.

يتم التحقق من صحة المستندات المحمولة ومطابقتها مع NC الخاصة بها. يمكن أن يؤدي تحرير التعليمات البرمجية إلى إزالة الأدلة القديمة أو يتطلب إعادة التحليل. تتم إعادة فحص عناصر النواة الجديدة مقابل طلبات المصدر التي تم التقاطها؛ لا يتم قبول مطالبات التحقق التعسفية المقدمة من العميل كدليل. تنطبق قيود المالك/المسؤول/المدير أيضًا على حفظ البرامج المحمولة في المشروع.

عندما ينجح حفظ مشروع جديد جزئيًا، يحتفظ النموذج بالوجهة التي تم إنشاؤها لإعادة المحاولة. افحص هذا المعرف قبل إعادة تشغيل التدفق وإنشاء مشروع آخر. يرى مسارات الأدوات و وثائق البرنامج المحفوظة.

اختر التاريخ الذي تحتاجه

آليةمعلباتيستخدم
محرر التراجع/الإعادةلقطات التفاعل/الجلسة المحليةالتراجع عن إجراء التحرير الحالي.
إصدارات مسار الأدواتالبيانات المسجلة، NC، المؤلف، ورسالة التغيير لبرنامج واحدمراجعة أو استعادة مراجعة البرنامج.
تاريخ المشروعلقطات المشروع الملتزم بها وملفات الكيانات المتغيرةمقارنة حالة المشروع أو تفرعها أو مراجعتها أو استعادتها.
تم تنزيل JSON/NCالمحتوى المُصدَّر الخاصالاحتفاظ أو نقل قطعة أثرية خارجية.

التحديث من خلال CAM يحفظ التسجيل المشروط للبرنامج السابق أولاً. يسجل الحفظ اليدوي على شاشة تفاصيل مسار الأدوات الحالة المحدثة كإصدار. تسجل استعادة الإصدار الحالة الحالية قبل استبدالها، لذا يمكن عكس عملية الاستعادة من خلال عملية إصدار أخرى. هذه تدفقات متميزة. لا يعد PUT العام التزامًا بالمشروع تلقائيًا.

يفتح /toolpaths/:id للحصول على التفاصيل ورمز G والإصدارات والتعليقات. يفتح /projects/:id/history لتاريخ المشروع. يتم تصفية الأزرار لكل عنصر حسب مسارات مثل drawings/<id>.json. ال واجهة برمجة تطبيقات محفوظات مسار الأدوات يقبل versionId للترميم.

يتم أيضًا نشر تغييرات التاريخ كأحداث مباشرة (commit, pr.*, workflow.started/workflow.finished, ai.session). يتلقى المشترك الجديد أولاً ما يصل إلى 20 من الأحداث المطابقة الأخيرة.

التحقق من الثبات وحل حالات الفشل

  1. اقرأ المشروع الذي تم إنشاؤه والرسم والمكون من خلال نقاط نهاية المعرف الخاصة بهم.
  2. افتح مسارات سطح المكتب المقابلة وقم بتأكيد محتويات التصميم/البرنامج الفعلي.
  3. أعد تشغيل نفس دليل بيانات السايدكار، وقم بتحديث عنوان URL سريع الزوال، وكرر عمليات القراءة.
  4. قم بتنزيل التصدير بشكل منفصل وتفقد حقوله؛ صف قاعدة البيانات لا يثبت أنه تم تصدير الملف.

يشير 400 عادةً إلى عدم وجود حقول عمل مطلوبة أو بيانات مستند غير صالحة؛ يشير 403 إلى عملية مرفوضة؛ يمكن أن يعني 404 بيانات غائبة أو لا يمكن الوصول إليها. تعمل لوحة معلومات المشروع حاليًا على تحويل حالات فشل قائمة الموارد الفردية إلى صفائف فارغة، لذا فإن علامة التبويب الفارغة وحدها لا تعد دليلاً كافيًا على الحذف. افحص نتيجة واجهة برمجة التطبيقات المباشرة قبل إنشاء التكرارات.

مراسي التنفيذ هي projects.ts و groups/{drawings,components,toolpaths}.ts في حزمة API؛ المعالجات/المستودعات السايدكار المقابلة؛ projectSnapshot.ts, CadPage.tsx, SaveCamModal.tsx، و ToolpathDetailScreen.tsx. استخدم مشروعًا معزولًا لاختبارات الحذف واحتفظ بعمل المستخدم قبل الاستعادة.

الوصفة: دورة الحياة بأكملها مع الضفيرة

المشروع → الرسم → مسار الأدوات → الالتزام
A=(--header "Authorization: Bearer $CADCAMFUN_TOKEN" --header "Content-Type: application/json")
U="$CADCAMFUN_URL"

project=$(curl -sS "${A[@]}" -d '{"name":"Bracket"}' "$U/api/projects" | jq -r .id)
drawing=$(curl -sS "${A[@]}" -d '{"name":"Plate","data":{}}' "$U/api/projects/$project/drawings" | jq -r .id)

curl -sS "${A[@]}" "$U/api/projects/$project/drawings" | jq 'length'

curl -sS "${A[@]}" -X PUT -d '{"name":"Plate v2"}' "$U/api/drawings/$drawing"

curl -sS "${A[@]}" -d '{"name":"Program","gcode":"G21\nM30","data":{}}' \
  "$U/api/drawings/$drawing/toolpaths" | jq .id

curl -sS "${A[@]}" -d '{"message":"First version"}' "$U/api/projects/$project/vcs/commit"
curl -sS "${A[@]}" "$U/api/projects/$project/vcs/log" | jq
خطوةعمليةحقول الجسم
إنشاء مشروعPOST /api/projectsname (مطلوب من قبل المعالج)، description, organizationId, isPublic
إنشاء الرسمPOST /api/projects/{id}/drawingsname, description, data, thumbnail
تحديث الرسمPUT /api/drawings/{id}نفس الحقول، جزئية
إنشاء مسار الأدواتPOST /api/drawings/{id}/toolpathsname, data, gcode, type, operationType, materialId, toolId, machineConfigId, …
يقترفPOST /api/projects/{id}/vcs/commitmessage (مطلوب)، authorKind, files
فرعPOST /api/projects/{id}/vcs/branchesname (مطلوب)، from
يعيدPOST /api/projects/{id}/vcs/restorerev (مطلوب)، paths

قم بتشغيل سايدكار جديدة، يجيب الالتزام باستخدام كائن الالتزام الجديد، ويدرجه السجل:

استجابة vcs/الالتزام
{"oid":"44d2d03d23b27fbbc4b388e32e15dfb0f39fff87","parents":[],"message":"First version\n","author":{"name":"Local user","email":"local@cadcamfun.local","time":1792037121}}

بدون رأس الجلسة، يكون المؤلف هو ملف التعريف المحلي للتثبيت. تستخدم الوصفة jq. مسار أدوات حر الشكل data مقبول كما هو؛ محمول cadcamfun-cam يتم التحقق من صحة الوثيقة بدقة، كما هو موضح في دليل التصنيع الأصلي.

في 3د

ما يتوقف عن المشروع اسحب إلى المدار · قم بالتمرير للتكبير · اسحب بزر الماوس الأيمن للتحريك
الجداول ذات المفتاح الخارجي للمشروع، وأطفالهم، من هجرات Drizzle.