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

الوثائق

بداية سريعة

من تبعيات مساحة العمل إلى نافذة سطح المكتب المدعومة بالسايدكار المحلية الحقيقية.

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

متطلبات

تختلف أدوات التثبيت والخروج من المصدر

يوجد إصدار سطح مكتب منشور على صفحة التحميل. يقوم هذا الدليل بتثبيت المستودع وتشغيله desktop:dev. يقرأ ثَبَّتَ عندما تريد عناصر الإصدار بدلاً من ذلك.

مساحة العمل تعلن Bun 1.4.4 كمدير الحزم الخاص به. استخدم ملف قفل المستودع لتثبيت التبعية. يتطلب تطوير سطح المكتب الأصلي أيضًا سلسلة أدوات Rust، وتبعيات بناء Tauri للنظام الأساسي، وعرض ويب للنظام المثبت. يعد Tauri CLI بالفعل أحد تبعيات تطوير سطح المكتب.

  • ماك: أدوات سطر أوامر Xcode للربط والتعبئة Rust/الأصلي.
  • ويندوز: المتطلبات الأساسية لسلسلة أدوات MSVC وWebView2 لوقت التشغيل/الإنشاء.
  • لينكس: WebKitGTK 4.1، ومؤشر التطبيق، وlibrsvg، وOpenSSL، وأدوات المجمع. يسجل سير عمل CI الحزم المستخدمة في Ubuntu.
  • رفيق دائرة الرقابة الداخلية: macOS، وXcode، وCocoaPods، وإصدار Expo الأصلي الذي يحتوي على وحدة التثبيت المحلية.

تتطلب معاينة المتصفح تبعيات Bun ومساحة العمل ولكنها لا تقوم بتجميع غلاف Rust. يتطلب مثبت الإصدار أيضًا تكوين التوقيع؛ وهذا منفصل عن تطوير واجهة المستخدم المحلية.

تثبيت التبعيات

من جذر المستودع
bun install
bun run --filter @cadcamfun/desktop typecheck
bun test packages/core

التثبيت مرة واحدة في جذر مساحة العمل محليًا جدًا workspace:* التبعيات تحل معًا. يستخدم سي.آي bun install --frozen-lockfile لرفض الانجراف lockfile. استخدم البرامج النصية للحزمة لتحديد المترجم الذي تم تكوينه للمستودع بدلاً من افتراض أن كل حزمة تستخدم نفس TypeScript القابل للتنفيذ.

توفر الأوامر المستهدفة أعلاه فحصًا سريعًا للمصدر. الشيكات مساحة العمل الكاملة هي bun run typecheck و bun run test; فهي تغطي المزيد من الوحدات وقد تستغرق وقتًا أطول. لا تثبت حزمة التمرير الفردية أنه تم تكوين جميع عمليات تكامل وقت التشغيل.

إعداد قاعدة البيانات

لا يتطلب سطح المكتب الحقيقي أمرًا منفصلاً لترحيل واجهة سطر الأوامر (CLI). يوفر المشغل الخاص به دليل بيانات التطبيق وعمليات الترحيل المرحلية إلى السايدكار؛ ينطبق فتح قاعدة البيانات على عمليات الترحيل المعلقة. bun run desktop:dev مراحل مورد الترحيل كجزء من إعداد السايدكار.

أداة سطر أوامر قاعدة البيانات منفصلة. bun run db:migrate المفوضين إلى حزمة قاعدة البيانات والإعدادات الافتراضية ل ./data/cadcamfun.db بالنسبة إلى دليل عمليات تلك الحزمة، عادةً packages/db/data/cadcamfun.db عند استدعائها من خلال البرنامج النصي الجذر. تعيين مطلق DATABASE_URL عندما تحتاج إلى استهداف قاعدة بيانات محددة.

فقط عند تغيير مخطط قاعدة البيانات
bun run db:generate
bun run db:migrate

يقرأ الجيل packages/db/src/schema.ts ويكتب الهجرات تحت packages/db/drizzle. يؤدي تطبيق عمليات الترحيل إلى تحديث قاعدة بيانات واجهة سطر الأوامر (CLI) المحددة، وليس كل قاعدة بيانات التطبيق. توجد بيانات سطح المكتب الأصلية في دليل بيانات تطبيق Tauri؛ استخدامات السايدكار التي تم تشغيلها يدويًا CADCAMFUN_DATA_DIR.

اختر قاعدة البيانات عمدا

لا يؤدي ترحيل سطر الأوامر (CLI) الناجح إلى تغيير قاعدة البيانات التي يفتحها سطح المكتب. حدد موقع دليل بيانات السايدكار قبل التحقيق في المشاريع المفقودة أو تطبيق عملية بيانات يدوية.

افتح سطح المكتب

من جذر المستودع
bun run desktop:dev

يقوم هذا بتجميع عربة Bun السايدكار الحقيقية ومراحل الهجرات، ثم تشغيل Tauri. يبدأ تاوري فيت في http://localhost:1420 ويفتح عرض الويب. تنتظر قذيفة Rust المصافحة الجاهزة للعربة السايدكار. يقوم عرض الويب بالتحقق من الصحة قبل عرض الشاشات الموجهة.

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

معاينة واجهة المستخدم للمتصفح فقط
bun run --filter @cadcamfun/desktop dev

يفتح http://localhost:1420. مع لا VITE_SIDECAR_URL، يستخدم هذا واجهة برمجة التطبيقات المزيفة في الذاكرة. وهو يدعم مجموعة فرعية من الطلبات ولا يوفر مشاريع مستمرة أو جلسات موفر أو مربعات حوار أصلية. اتصل بسايدكار مباشرة عن طريق تعيين كل من عنوان URL الخاص بالسايدكار Vite ومتغيرات عملية الرمز المميز.

حزمة سطح المكتب tauri:dev يقوم البرنامج النصي بإنشاء كعب روتين سايدكار عندما يكون الملف الثنائي مفقودًا. يدعم الركيزة عزل القشرة. تفضل الجذر desktop:dev الأمر عند ممارسة خدمات التطبيق.

bun run desktop:dev أشواط الأولى build:sidecar، الذي يقوم بتجميع السايدكار ومراحل الترحيل (خطوات خط الأنابيب compile و resources). ثم يبدأ tauri dev في حزمة سطح المكتب.

التحقق من الجلسة الأولى

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

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

قم بتشغيل موقع التوثيق
bun run --cwd packages/web start
bun run --cwd packages/web check
bun run --cwd packages/web build

الويب start يدير الأمر أسترو. استخدم عنوانها المحلي المطبوع. الويب dev يقوم البرنامج النصي بالإضافة إلى ذلك بتشغيل Studio API، والذي يمكنه فتح قاعدة البيانات المحلية المحددة؛ استخدمه عند العمل على الاستوديو بدلاً من التوثيق الثابت وحده.

الأوامر التالية

هدفيأمر
تجميع السايدكار فقط ومرحلة الترحيلbun run build:sidecar
بناء الواجهة الأمامية دون المثبتاتbun run build:desktop
مراجعة خطة البناء الأصليةbun scripts/build.ts --dry-run
إعادة إنشاء عملاء APIbun run generate
تحقق من العملاء الذين تم إنشاؤهمbun run generate:check
قم بإجراء اختبارات النقل المرافقةbun run --cwd apps/mobile test

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

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

المحطة الثانية: الصحة، الإنشاء، القائمة، القراءة
CADCAM_URL=http://127.0.0.1:43111
CADCAM_TOKEN=local-development-token

curl --fail-with-body "$CADCAM_URL/api/health"

curl --fail-with-body -X POST "$CADCAM_URL/api/projects"   -H "Authorization: Bearer $CADCAM_TOKEN"   -H 'Content-Type: application/json'   -d '{"name":"Documentation smoke","description":"Disposable local check","isPublic":false}'   -o /tmp/cadcamfun-project-smoke.json

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

CADCAM_PROJECT_ID=$(bun --no-env-file -e   'const row = await Bun.file("/tmp/cadcamfun-project-smoke.json").json(); console.write(row.id)')
curl --fail-with-body "$CADCAM_URL/api/projects/$CADCAM_PROJECT_ID"   -H "Authorization: Bearer $CADCAM_TOKEN"

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

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

يعد التنظيف اختياريًا ومدمرًا لهذا المشروع القابل للتصرف: إرسال DELETE /api/projects/<id> فقط بعد التأكد من المعرف الذي تم إرجاعه. إنشاء/قائمة/قراءة استمرار تطبيق التمرين دون الحاجة إلى التنظيف لتحقيق النجاح.

تفسير حالات الفشل في التشغيل الأول

فشلالحدود المحتملةالإجراء التالي
لا يمكن تثبيت التبعية حل حزمة محليةتركيب مساحة العملقم بالتشغيل من جذر المستودع باستخدام إصدار Bun المعلن وملف القفل.
الارتباط الأصلي أو خطأ WebKitمتطلبات تاوريقم بتثبيت مكتبات سلسلة الأدوات/النظام الأساسي التي يستخدمها هدف CI المطابق.
لا يوجد حدث جاهزتكوين Sidecar أو الترحيل أو بدء التشغيلافحص stderr وحدث الخطأ المنظم. أبقِ stdin مفتوحًا.
الأعمال الصحية، إرجاع استدعاء المشروع 401إذنالصحة عامة؛ لا تزال مكالمات API المحمية بحاجة إلى الرمز المميز للعملية الحالية.
إنشاء المرتجعات 400طلب التحقق من صحة/التحقق من صحة الأعمالأرسل JSON باسم غير فارغ وافحص الرسالة التي تم إرجاعها.
أنشئ المرتجعات 403 ببيانات المؤسسةعضوية المنظمةاستخدم مؤسسة يمكن الوصول إليها أو قم بحذف حقل المؤسسة لإجراء فحص محلي.
يقول الرفيق الأصلي أن التثبيت غير متاحوحدة Expo المحلية مفقودةاستخدم إصدار iOS مخصصًا، وليس Expo Go.

اجعل التحقق الأول صغيرًا: الصحة، ومشروع واحد، ورسم/برنامج مستمر واحد، ثم عمليات التكامل الاختيارية. لا يؤدي الإطلاق الناجح للتطبيق الأساسي إلى تكوين Stripe أو موفري الذكاء الاصطناعي أو مستودع GitHub البعيد أو توجيه الهاتف المحمول تلقائيًا.

تفاصيل المتطلبات

أداةإصدارمطلوب ل
Bun1.4.4 (المستودع packageManager)كل شيء: التثبيت والاختبارات والسايدكار والبرامج النصية
سلسلة أدوات Rust + المتطلبات الأساسية لـ Tauriمستقر؛ مكتبات عرض الويب الخاصة بالمنصة على Linuxغلاف سطح المكتب (desktop:dev، يبني)
سكليتي سطر الأوامرأياختياري: فحص قاعدة البيانات للقراءة فقط
Xcode—فقط لرفيق iOS

ساعتك الأولى، خطوة بخطوة

من الاستنساخ إلى سطح المكتب قيد التشغيل
git clone https://github.com/nikomatt69/cadcamfun.git
cd cadcamfun
bun install --frozen-lockfile
bun run typecheck                 # all workspaces
bun run test                      # bun test packages apps scripts
bun run desktop:dev               # builds the sidecar + migrations, then tauri dev
  1. عندما تفتح النافذة، تصبح حالة السايدكار جاهزة خلال ثوانٍ؛ يتم ترحيل دليل بيانات جديد عند الإطلاق الأول.
  2. أنشئ مشروعًا وأضف رسمًا وارسم مستطيلًا ثم بثقه.
  3. افتح CAM، واختر المادة الصلبة وقم بتوليدها. تحقق من مستوى الإصدار والمطالبات قبل تصدير NC.
  4. افتح لوحة السجل والتزم: المشروع لديه الآن نسخته الأولى.

لا حاجة لمفتاح النموذج

كل شيء أعلاه يعمل بدون مزود الذكاء الاصطناعي. أضف مفتاحًا لاحقًا في إعدادات المساعد.

في 3د

تبدأ القطع السريعة اسحب إلى المدار · قم بالتمرير للتكبير · اسحب بزر الماوس الأيمن للتحريك
Processes at run time. The Tauri shell spawns the sidecar and waits for its {”event”:”ready”,”port”:N} line on stdout (sidecar.rs); the webview then talks HTTP to 127.0.0.1 on that port with the bearer token. The sidecar owns the SQLite database, the embedded nikcli AI host (CADCAMFUN_AI_HOST=nikcli, the default) and plugins; the mobile app reaches it through companion pairing.