सामग्री पर जाएँ
CADCAMFUN
दस्तावेज़

दस्तावेज़

डेस्कटॉप यूआई

सॉलिडजेएस वर्कस्पेस, एक स्थानीय एपीआई क्लाइंट और एक टॉरी शेल जो मूल एकीकरण का मालिक है।

अंग्रेज़ी से स्वचालित रूप से अनुवादित। अंग्रेज़ी मूल देखें

अनुप्रयोग वास्तुकला

डेस्कटॉप एप्लिकेशन एक सॉलिडजेएस वेबव्यू, वाइट, थ्री.जेएस और एक टौरी वी2 रस्ट शेल को जोड़ता है। वेबव्यू स्क्रीन और इंटरेक्शन स्थिति का मालिक है। Bun साइडकार एपीआई हैंडलर, डेटाबेस एक्सेस, एआई सत्र और परियोजना सेवाओं का मालिक है। रस्ट प्रक्रिया विंडो, मेनू, ट्रे, ऑपरेटिंग-सिस्टम संवाद, किचेन एक्सेस, अपडेट और साइडकार जीवनचक्र का मालिक है।

apps/desktop/src/main.tsx एप्लिकेशन माउंट करता है. app/App.tsx एपीआई कनेक्शन स्थापित करता है और साझा स्थिति की आपूर्ति करता है; app/routes.tsx यूआरएल को आलसी पेज मॉड्यूल में मैप करता है। फ़ीचर स्क्रीन लाइव हैं features/. किसी रूट की मौजूदगी उसकी बाहरी सेवाओं की उपलब्धता स्थापित नहीं करती है: बिलिंग के लिए स्ट्राइप कॉन्फ़िगरेशन की आवश्यकता होती है और एआई को एक कॉन्फ़िगर प्रदाता की आवश्यकता होती है।

स्टार्टअप और कनेक्शन पुनर्प्राप्ति

  1. शेल जेनरेट किए गए लॉन्च टोकन और एप्लिकेशन डेटा और माइग्रेशन निर्देशिकाओं के साथ बंडल साइडकार शुरू करता है।
  2. साइडकार एक क्षणिक बंदरगाह को बांधता है 127.0.0.1, अपने स्वास्थ्य मार्ग के उत्तर देने की प्रतीक्षा करता है, और एक JSON लिखता है ready घटना जिसमें पोर्ट शामिल है।
  3. वेबव्यू आह्वान करता है get_sidecar_endpoint और एक एपीआई क्लाइंट बनाता है और इफेक्ट रनटाइम प्रबंधित करता है।
  4. एक सफल स्वास्थ्य अनुरोध एप्लिकेशन स्थिति बनाता है और राउटर और शेल को माउंट करता है।

वेबव्यू कनेक्शन पुनर्प्राप्ति के लिए 150 सेकंड की अनुमति देता है, प्रति प्रयास 30-सेकंड टाइमआउट और 750-मिलीसेकंड पुनः प्रयास विराम के साथ। असफल प्रयास कैश्ड एंडपॉइंट को हटा देते हैं ताकि पुनः आरंभ किया गया साइडकार एक नया पोर्ट प्रदान कर सके। रस्ट सुपरवाइज़र प्रत्येक तैयार हैंडशेक के लिए 60 सेकंड प्रतीक्षा करता है और एक स्वचालित पुनरारंभ की अनुमति देता है। वेबव्यू कनेक्शन बजट समाप्त होने पर पुनः प्रयास उपलब्ध हो जाता है।

ब्राउज़र पूर्वावलोकन इन-मेमोरी एपीआई का उपयोग करता है

टॉरी के बाहर, बिना ब्राउज़र वाला VITE_SIDECAR_URL उपयोग src/testing/fake-api.ts. पूर्वावलोकन डेटा चल रहे पृष्ठ पर स्थानीय है; असमर्थित संग्रह HTTP 501 लौटाते हैं। किसी ब्राउज़र को वास्तविक साइडकार से कनेक्ट करने के लिए, दोनों प्रदान करें VITE_SIDECAR_URL और VITE_SIDECAR_TOKEN vite प्रारंभ करते समय.

स्क्रीन मार्ग

क्षेत्रमार्ग और मॉड्यूल
परियोजनाओं/projects, /projects/create, /projects/:id, और /projects/:id/history; स्क्रीन में features/projects/screens.
डिजाइन और विनिर्माण/cad माउंट CadPage; /cam माउंट CamPage. सहेजे गए चित्र और टूलपाथ में अलग-अलग विवरण मार्ग हैं।
संसाधन/library, /materials, /tools, /machine, और उनके विवरण पृष्ठ लाइब्रेरी सुविधा मॉड्यूल का उपयोग करते हैं। घटकों में सूची और विवरण मार्ग हैं।
सहायक/ai और डॉक किया गया सहायक पैनल AI सुविधा स्थिति साझा करता है। AI गतिविधि पैनल को टॉगल करती है।
सेटिंग्स/settings, /settings/companion, एमसीपी सेटिंग्स, और सदस्यता सेटिंग्स।
खाता और सहयोगप्रमाणीकरण, प्रोफ़ाइल, संगठन, आमंत्रण, चैट, बाज़ार, प्लगइन, लागत, विश्लेषण और प्रशासन प्रत्येक लोड सुविधा मॉड्यूल को रूट करता है।

उपयोग app/routes.tsx सटीक पैरामीटर नामों के लिए और pages/ किसी URL पर लगी स्क्रीन का पता लगाने के लिए। रूट एडाप्टर जानबूझकर छोटे होते हैं; खाली दृश्य या विफल कार्रवाई का निदान करते समय स्क्रीन और उसकी एपीआई कॉल पढ़ें।

स्रोत संगठन

  • app/: स्टार्टअप, राउटर, ग्लोबल एपीआई क्लाइंट, नेटिव इंटीग्रेशन, शेल और कीबोर्ड शॉर्टकट।
  • pages/: रूट एडेप्टर स्क्रीन आयात या पुनः निर्यात कर रहे हैं।
  • features/: स्क्रीन, घटकों, हुक, राज्य और डोमेन-विशिष्ट सहायकों के साथ उत्पाद क्षेत्र।
  • shared/: पुन: प्रयोज्य नियंत्रण, शेल घटक, एप्लिकेशन स्थिति, क्वेरी कैशिंग और कमांड इतिहास।
  • viewport/: कैनवास ड्राइंग, स्नैपिंग, टूल जेस्चर, थ्री.जेएस रेंडरिंग, मेशिंग और प्लेबैक।
  • i18n/, styles/, और testing/: अनुवाद, वैश्विक शैलियाँ, और परीक्षण फिक्स्चर।

डेस्कटॉप पर निर्भर करता है @cadcamfun/api hTTP अनुबंध वगैरह के लिए @cadcamfun/core ज्यामिति और सीएएम संचालन के लिए। साइडकार एपीआई के पीछे डेटाबेस की दृढ़ता बनी रहती है। स्थानीय संपादक का इतिहास निरंतर ड्राइंग या टूलपाथ संस्करणों और प्रोजेक्ट संस्करण नियंत्रण से अलग है।

देशी खोल

उत्पादन विंडो डिफ़ॉल्ट रूप से 1440 × 900 है, न्यूनतम 960 × 600 के साथ। तौरी ने अग्रभाग का मंचन किया apps/desktop/dist, एक लक्ष्य-विशिष्ट साइडकार src-tauri/binaries, और संसाधनों के रूप में प्रवास उत्पन्न किया। यह रजिस्टर करता है .cadcam, .nc, और .gcode फ़ाइल एसोसिएशन. किसी समर्थित फ़ाइल को खोलना या दूसरा इंस्टेंस लॉन्च करके मौजूदा विंडो में फ़ाइल पथ अग्रेषित करना।

src-tauri/src/sidecar.rs बाल प्रक्रिया का पर्यवेक्षण करता है। ऐप को बंद करने पर a लिखता है {"event":"shutdown"} बच्चे के बिस्तर पर लाइन लगाएं और फसल काटने से पहले थोड़ी देर प्रतीक्षा करें; बच्चा स्टडिन बंद होने का भी अवलोकन करता है। लॉन्च टोकन 32 यादृच्छिक बाइट्स, हेक्स-एन्कोडेड 64 वर्णों के रूप में है, और साइडकार लॉग लाइनें जिनमें क्रेडेंशियल हो सकते हैं, उन्हें संशोधित किया गया है। लॉग स्टडआउट से अलग होते हैं, जो रेडी/एरर हैंडशेक को वहन करता है। के माध्यम से देशी रहस्यों तक पहुंचा जाता है src-tauri/src/secrets.rs ऑपरेटिंग-सिस्टम कीचेन का उपयोग करना।

MacOS पर, शेल लिक्विड ग्लास प्लगइन को पंजीकृत करता है। वेबव्यू ग्लास सेटिंग का अनुसरण करता है और प्रभाव अनुपलब्ध होने पर वापस आ जाता है। ऐप स्टोर कॉन्फ़िगरेशन निजी एपीआई विकल्प को अक्षम कर देता है; नियमित कॉन्फ़िगरेशन इसे सक्षम बनाता है. ये अलग-अलग बिल्ड कॉन्फ़िगरेशन हैं।

सुरक्षा और दृढ़ता सीमाएँ

उत्पादन सामग्री नीति स्थानीय संपत्तियों, लूपबैक एपीआई कनेक्शन, डेटा/ब्लॉब छवियों और वेबअसेंबली मूल्यांकन की अनुमति देती है। यह मनमाने ढंग से दूरस्थ स्क्रिप्ट निष्पादन की अनुमति नहीं देता है। मूल अनुमतियाँ दायरे में हैं src-tauri/capabilities; विकास नीति अतिरिक्त रूप से Vite और उसके वेबसोकेट को अनुमति देती है।

open_path पथों को कैनोनिकलाइज़ करता है, उन्हें अनुमत उपयोगकर्ता/एप्लिकेशन निर्देशिकाओं तक सीमित करता है, और निष्पादन योग्य एक्सटेंशन को अस्वीकार करता है जैसे .exe, .app, .sh, .bat, .msi, और .jar. .. खंड और सिम्लिंक अनुमत फ़ोल्डरों से बच नहीं सकते क्योंकि दोनों पक्ष विहित हैं। फ़ाइल चुनना और सहेजना मूल संवाद और सत्यापन का उपयोग करता है। एक लॉन्च टोकन स्थानीय एप्लिकेशन एपीआई तक पहुंच प्रदान करता है; इसे किसी साथी टोकन या प्रोजेक्ट-स्कोप्ड एआई ब्रिज टोकन से अलग समझें।

यूआई सेटिंग्स, एपीआई क्वेरी स्थिति, संपादक कमांड, संग्रहीत प्रोजेक्ट संस्करण और मूल रहस्यों के अलग-अलग मालिक हैं। यह मानने के बजाय कि सभी एप्लिकेशन स्थिति SQLite में संग्रहीत है, प्रत्येक का उसकी वास्तविक सेवा के माध्यम से निदान करें।

सुविधा एकीकरण

सीएडी और सीएएम फीचर मॉड्यूल अपने स्वयं के पैनल, स्टोर और सेव फ्लो के साथ पुन: प्रयोज्य व्यूपोर्ट घटकों की रचना करते हैं। सहायक पैनल प्रोजेक्ट और संपादक संदर्भ प्राप्त करता है और एआई फीचर स्थिति के माध्यम से टूल इवेंट स्ट्रीम करता है। संसाधन स्क्रीन सीधे डेटाबेस तक पहुंचने के बजाय एपीआई क्लाइंट का उपयोग करते हैं।

यूआई परिवर्तन के लिए, रूट एडॉप्टर को उसकी फीचर स्क्रीन पर फॉलो करें, फिर अनुरोध भेजने वाले फीचर स्टोर या हुक का निरीक्षण करें। साझा घटकों का पुन: उपयोग तभी करें जब उनका मौजूदा अनुबंध इंटरैक्शन से मेल खाता हो। कोर पैकेज में शुद्ध ज्यामिति और रस्ट शेल में मूल ऑपरेटिंग-सिस्टम व्यवहार रखें।

रूट लोडिंग और त्रुटियाँ

प्रत्येक मार्ग सॉलिड की आलसी आयात सीमा का उपयोग करता है। तालिका में एक कैच-ऑल पेज शामिल है, /500, /offline, और कानूनी मार्ग। डायरेक्ट ब्राउज़र नेविगेशन को वाइट डेवलपमेंट सर्वर या पैकेज्ड वेबव्यू के माध्यम से परोसा जाना चाहिए ताकि क्लाइंट राउटर यूआरएल को हल कर सके।

पूर्वावलोकन एपीआई संग्रह के एक सीमित सेट को लागू करता है और जानबूझकर परीक्षणों में अनुरोध विफलताओं को इंजेक्ट कर सकता है। एक सफल पूर्वावलोकन रेंडर उन फिक्स्चर के विरुद्ध यूआई व्यवहार को प्रदर्शित करता है; लाइव साइडकार के साथ दृढ़ता, अनुमतियाँ, स्ट्रीमिंग और बाहरी एकीकरण सत्यापित करें।

मूल कमांड इंटरफ़ेस

आज्ञाउद्देश्य
get_sidecar_endpointपर्यवेक्षित साइडकार की प्रतीक्षा करें और उसका आधार URL और लॉन्च टोकन लौटाएँ। प्रतीक्षा में एक पुनरारंभ शामिल है: दो 60-सेकंड तैयार टाइमआउट प्लस 5 सेकंड (125 सेकंड)।
get_logs_dir, open_pathएप्लिकेशन लॉग निर्देशिका को एक स्ट्रिंग के रूप में हल करें, और ऑपरेटिंग-सिस्टम ओपनर के साथ मौजूदा निरपेक्ष पथ खोलें। पथ को ऐप डेटा, लॉग, दस्तावेज़, डाउनलोड या डेस्कटॉप फ़ोल्डर के अंतर्गत हल करना होगा।
secret_get, secret_set, secret_deleteके अंतर्गत मूल किचेन प्रविष्टियों तक पहुंचें com.cadcamfun.app सेवा। कुंजियाँ ASCII अक्षरों, अंकों और के 1–128 बाइट्स हैं . _ - : (उदाहरण के लिए ai.anthropic.apiKey); secret_get रिटर्न null गुम प्रविष्टि के लिए.
pick_file, save_filepick_file({ filters: [{ name, extensions }] }) चुना हुआ पथ लौटाता है या null रद्द करने पर. save_file({ defaultName, contents }) चुने हुए पथ पर UTF-8 टेक्स्ट लिखता है और उसे लौटाता है, या null रद्द करने पर; निर्देशिकाएँ और निष्पादन योग्य एक्सटेंशन अस्वीकार कर दिए गए हैं।
set_recent_projectsट्रे के हालिया-प्रोजेक्ट मेनू को ताज़ा करें।
check_for_updates, install_updateअपडेटर जांच का अनुरोध करें, या लंबित अपडेट इंस्टॉल करें। install_update एक वैकल्पिक स्वीकार करता है unsavedWork ध्वज (डिफ़ॉल्ट false) इसलिए एक इंस्टाल एक खुले संपादक को बाधित नहीं करता है।

The invoke handler is registered in src-tauri/src/lib.rs. Capabilities and generated command permissions also control availability; command registration alone does not establish webview access. Command errors are serialized as { kind, message } with kinds such as sidecar, invalid_path, io, dialog, and path; no command panics.

मूल घटनाएँ

खोल उत्सर्जित करता है sidecar-status जीवनचक्र परिवर्तन के लिए, open-file समर्थित पथों के साथ, menu मेनू चयन के लिए, और update://status अद्यतनकर्ता प्रगति के लिए. ट्रे हालिया-प्रोजेक्ट चयनों का प्रतिनिधित्व किया जाता है tray.recent.<projectId> मेनू पहचानकर्ता. शेल के मेनू और ट्रे मॉड्यूल उनके संपूर्ण पहचानकर्ता सेट को परिभाषित करते हैं।

श्रोताओं को उनके घटक या अनुप्रयोग जीवनचक्र के दायरे में रखा जाना चाहिए और सफाई पर हटा दिया जाना चाहिए। वेबव्यू को पिछले पोर्ट का उपयोग जारी रखने के बजाय साइडकार पुनरारंभ के बाद एंडपॉइंट को फिर से हल करना होगा।

विकास एवं सत्यापन

रिपॉजिटरी रूट से चलाएँ
bun run --filter @cadcamfun/desktop dev
bun run desktop:dev
bun run --filter @cadcamfun/desktop typecheck
bun test apps/desktop/src
bun run build:desktop

पहला कमांड ब्राउज़र पूर्वावलोकन चलाता है। desktop:dev टौरी शुरू करने से पहले वास्तविक साइडकार को संकलित करता है और माइग्रेशन का चरण निर्धारित करता है। डेस्कटॉप पैकेज tauri:dev इसके बजाय स्क्रिप्ट केवल तभी स्टब बाइनरी बनाती है जब कोई बाइनरी मौजूद नहीं होती है; इसे पृथक शेल कार्य के लिए उपयोग करें और इसकी एपीआई प्रतिक्रियाओं की व्याख्या करने से पहले जांचें कि कौन सी बाइनरी मौजूद है।

डेस्कटॉप build स्क्रिप्ट चलती है vite build केवल; यह साइडकार को संकलित नहीं करता है या टौरी बंडल को पैकेज नहीं करता है। उपयोग bun scripts/build.ts पूर्ण रिलीज़ पाइपलाइन के लिए (देखें मुक्त करना).

प्राथमिकताएँ और सेटिंग्स

साझा सेटिंग्स स्टोर के अंतर्गत एक मान्य रिकॉर्ड बना रहता है cadcamfun.settings वेबव्यू स्थानीय भंडारण में। गुम, अमान्य या अपठनीय फ़ील्ड स्वतंत्र रूप से वापस आ जाती हैं। पूर्ण या अवरुद्ध भंडारण क्षेत्र संपादन बंद नहीं करता है, लेकिन प्राथमिकता परिवर्तन जारी रहने में विफल हो सकते हैं। ब्राउज़र पूर्वावलोकन प्राथमिकताएँ ब्राउज़र मूल से संबंधित हैं और मूल वेबव्यू प्राथमिकताओं से अलग हैं।

सेटिंगस्वीकृत मान/डिफ़ॉल्टपरिचालन प्रभाव
विषयlight, dark, system; डिफ़ॉल्ट प्रणालीसिस्टम मोड ऑपरेटिंग-सिस्टम रंग-स्कीम परिवर्तनों का अनुसरण करता है।
प्रदर्शन इकाइयांmm या in; डिफ़ॉल्ट मिमीप्रस्तुति को नियंत्रित करता है; कोर ड्राइंग निर्देशांक मिलीमीटर रहते हैं।
दशमलवपूर्णांक 0–6; डिफ़ॉल्ट 3लंबाई प्रस्तुति परिशुद्धता.
डिफ़ॉल्ट पोस्टgrbl, linuxcnc, smoothwb, gcode, fanuc; डिफ़ॉल्ट ग्रब्लचयनित आउटपुट व्याकरण एक प्राथमिकता है, यह प्रमाण नहीं है कि मशीन कॉन्फ़िगर या सत्यापित है।
ड्राइंग सहिष्णुतामान्य कोर सहिष्णुता; डिफ़ॉल्ट 0.01 मिमीड्राइंग/टूलपाथ उपभोक्ताओं द्वारा उपयोग की जाने वाली साझा परिशुद्धता प्राथमिकता।
स्नैप स्थितिबूलियन; डिफ़ॉल्ट सक्षमसाझा स्थिति प्राथमिकता. व्यक्तिगत संपादकों का अपना चिड़चिड़ा व्यवहार होता है; स्टैंडअलोन Editor2D वर्तमान में यह अपने ग्रिड स्नैप को आंतरिक रूप से सक्षम करता है।
काँचबूलियन; डिफ़ॉल्ट सक्षमजब मूल होस्ट इसका समर्थन करता है तो macOS विंडो सामग्री का अनुरोध करता है।

सेटिंग्स स्क्रीन में प्रोफ़ाइल, खाता, सुरक्षा, सदस्यता, सूचनाएं, एआई, डिवाइस और भाषा टैब हैं। डिवाइस टैब सहयोगी गेटवे पैनल को एम्बेड करता है। भाषा सेटिंग्स में ग्लास टॉगल शामिल है। सामान्य लोकेल स्टोर वर्तमान में डिफ़ॉल्ट लोकेल को मान्य करता है; प्रदर्शन लेबल की सूची से अतिरिक्त अनुवाद कवरेज का अनुमान न लगाएं।

CAM प्रोग्राम को सहेजें और पुनः खोलें

  1. सीएएम में एनसी कोड जेनरेट या लोड करें और इसके मौजूदा प्रवेश बिंदु से सेव/एक्सपोर्ट डायलॉग खोलें।
  2. फ़ाइल निर्यात के लिए, जी-कोड या पोर्टेबल टूलपाथ प्रारूप चुनें। जी-कोड वर्तमान एनसी पाठ को डाउनलोड करता है; टूलपाथ विकल्प एक संरचित लिखता है .cam.json स्नैपशॉट.
  3. एप्लिकेशन की दृढ़ता के लिए, एक मौजूदा प्रोजेक्ट, एक नया प्रोजेक्ट चुनें, या पहले से सहेजे गए प्रोग्राम को अपडेट करें। प्रोग्राम का नाम और आवश्यक गंतव्य फ़ील्ड प्रदान करें।
  4. अद्यतन करते समय, सेव फ़्लो वर्तमान डेटा को बदलने से पहले पिछले पूर्ण प्रोग्राम को टूलपाथ संस्करण के रूप में रिकॉर्ड करता है।
  5. संस्करणों का निरीक्षण या पुनर्स्थापित करने के लिए सहेजे गए आइटम को उसके टूलपाथ विवरण मार्ग पर खोलें।

सेव सारांश में एनसी लाइनें, बाइट्स, चालें, टूल पहचानकर्ता, ऑपरेशन नाम, स्टॉक, इकाइयां, कार्य ऑफसेट और सत्यापन पहचान शामिल होती है जब वह साक्ष्य वर्तमान एनसी से संबंधित होता है। एक संशोधित एनसी पाठ पहले से गणना किए गए साक्ष्य को पुराना बना सकता है। सारांश पर भरोसा करने से पहले वर्तमान कोड/साक्ष्य संबंध की समीक्षा करें।

यदि एक नया प्रोजेक्ट बनाना सफल हो जाता है लेकिन बाद में सेव चरण विफल हो जाता है, तो मोडल पुनः प्रयास के लिए बनाए गए गंतव्य को बरकरार रखता है और त्रुटि में इसके पहचानकर्ता को शामिल करता है। उस मोडल के भीतर पुनः प्रयास करने से वही प्रोजेक्ट दोबारा बनाने से बचा जा सकता है। यह न मानें कि बचत प्रवाह एक परमाणु क्रॉस-संसाधन लेनदेन है।

फ़ाइल निर्यात और प्रोजेक्ट दृढ़ता अलग-अलग ऑपरेशन हैं

डाउनलोड की गई जी-कोड फ़ाइल प्रोजेक्ट टूलपाथ पंक्ति नहीं बनाती है। एक पोर्टेबल स्नैपशॉट सादे एनसी की तुलना में अधिक समृद्ध स्थिति प्रदान करता है। किसी सहेजे गए प्रोग्राम को एप्लिकेशन से दोबारा खोलकर सत्यापित करें, और डाउनलोड की गई फ़ाइल का निरीक्षण करके निर्यात को सत्यापित करें।

कीबोर्ड और विफलता निदान

Cmd/Ctrl+K कमांड पैलेट खोलता है और Cmd/Ctrl+J सहायक पैनल को टॉगल करता है। जब फोकस किसी इनपुट, टेक्स्टएरिया, चयन या सामग्री-संपादन योग्य तत्व पर होता है तो शेल शॉर्टकट को नजरअंदाज कर दिया जाता है। संपादक कैनवस की अपनी कीबोर्ड हैंडलिंग होती है। जेनेरिक शॉर्टकट टेबल में सेव/एक्सपोर्ट सहित कई शेल कमांड कॉलबैक, प्लेसहोल्डर हैं; यह मानने के बजाय कि प्रत्येक सूचीबद्ध त्वरक एक दस्तावेज़ ऑपरेशन करता है, सुविधा के वास्तविक सेव/निर्यात नियंत्रण का उपयोग करें।

व्यवहार का अवलोकन कियाजाँच करना
स्टार्टअप प्रतीक्षा करता है, फिर पुनः प्रयास करें प्रकट होता हैसाइडकार त्रुटि/तैयार आउटपुट, लक्ष्य बाइनरी, माइग्रेशन संसाधन और एप्लिकेशन लॉग। कैश्ड पोर्ट किसी पूर्व प्रक्रिया से संबंधित हो सकता है।
एक स्क्रीन रेंडर करती है लेकिन रिटर्न का अनुरोध करती है 501ब्राउज़र फिक्स्चर मोड. वास्तविक साइडकार प्रारंभ करें और दोनों Vite एंडपॉइंट वेरिएबल पास करें।
डेस्कटॉप डेटा मैन्युअल स्क्रिप्ट से भिन्न होता हैप्रत्येक प्रक्रिया की डेटा निर्देशिका और टोकन; केवल फ़ाइल नाम ही डेटाबेस की पहचान नहीं करता है.
एक मूल आदेश अनुपलब्ध हैपंजीकरण, क्षमता अनुमतियाँ, ऑपरेटिंग-सिस्टम समर्थन, और क्या कोड टौरी के अंदर चलता है, का आह्वान करें।
पुन: लॉन्च के बाद सेटिंग्स वापस आ गईंभंडारण की उपलब्धता और सत्यापन. अमान्य संग्रहीत फ़ील्ड डिफ़ॉल्ट पर वापस आ जाती हैं।
सहेजे गए प्रोग्राम साक्ष्य एनसी से भिन्न हैंक्या एनसी को पीढ़ी दर पीढ़ी संपादित किया गया। वास्तविक पाठ/कार्यक्रम के लिए उचित सत्यापन की पुनः गणना करें।

कार्यान्वयन एंकर: shared/state/settings.ts, app/shortcuts.ts, features/settings/screens/settings.tsx, और features/cam/components/SaveCamModal.tsx.

मूल घटना पेलोड

आयोजनपेलोडटिप्पणियाँ
sidecar-status{ state: "starting" }, { state: "ready", port }, { state: "restarting" }, { state: "failed", message }बाद restarting, पुकारना get_sidecar_endpoint दोबारा; पोर्ट बदल जाता है.
update://statusstatus: checking, upToDate (version), available (version, notes, date, critical), downloading (downloaded, total), ready (version), failed (message); प्लस dismissibleएक महत्वपूर्ण अद्यतन और एक लंबित पुनरारंभ ख़ारिज करने योग्य नहीं हैं। एक विफल जाँच को कभी भी अवरोधन त्रुटि के रूप में नहीं दिखाया जाता है।
menuमेनू आइटम आईडी, जैसे file.new, file.open, file.save, view.devtools, help.documentationट्रे आइटम का उपयोग tray.quit और tray.recent.<projectId>.
open-fileके रास्ते .cadcam, .nc, या .gcode फ़ाइलेंतब भेजा जाता है जब OS ऐप के साथ एक फ़ाइल खोलता है या दूसरा इंस्टेंस लॉन्च होता है।
install_update टाइप किए गए कारण से इनकार किया जा सकता है: unsavedWork ("संपादक के पास सहेजा नहीं गया कार्य है; सहेजे जाने के बाद अद्यतन लागू करें"), noneAvailable (कुछ भी लंबित नहीं है, या पहले से ही स्थापित है), या failed (डाउनलोड या हस्ताक्षर जांच विफल)। यह केवल उस अद्यतन को स्थापित करता है जिसकी घोषणा अंतिम जाँच में की गई थी।
वेबव्यू से नेटिव कमांड को कॉल करना
import { invoke } from "@tauri-apps/api/core"
import { listen } from "@tauri-apps/api/event"

const { baseUrl, token } = await invoke<{ baseUrl: string; token: string }>("get_sidecar_endpoint")

const path = await invoke<string | null>("pick_file", {
  filters: [{ name: "G-code", extensions: ["nc", "gcode"] }],
})                                    // null when the user cancels

await invoke("save_file", { defaultName: "part.nc", contents: gcodeText })

const unlisten = await listen<{ state: string; port?: number }>("sidecar-status", (e) => {
  if (e.payload.state === "ready") reconnect()
})
// later: unlisten()

try {
  await invoke("install_update", { unsavedWork: editorIsDirty })
} catch (error) {
  // { kind, message }: the update variant carries the refusal (unsavedWork | noneAvailable | failed)
}

get_sidecar_endpoint रिटर्न { baseUrl, token } (से कैमलकेस में क्रमबद्ध SidecarEndpoint). प्रत्येक आदेश से त्रुटियाँ अस्वीकृत मान के रूप में आती हैं invoke, आकार दिया गया { kind, message }.

कुंजीपटल अल्प मार्ग

शॉर्टकटकार्रवाईसमूह
Cmd/Ctrl+Kकमांड पैलेट खोलेंमार्गदर्शन
Cmd/Ctrl+Shift+Pनया प्रोजेक्टमार्गदर्शन
Cmd/Ctrl+Z / Cmd/Ctrl+Shift+Zफिर से पूर्ववत करनासंपादन करना
Cmd/Ctrl+S, Cmd/Ctrl+Shift+Eसहेजें, निर्यात करें (शेल प्लेसहोल्डर; सुविधा के स्वयं के नियंत्रण का उपयोग करें)संपादन करना
Cmd/Ctrl+0फ़िट करने के लिए ज़ूम करेंदेखना
Cmd/Ctrl+= / Cmd/Ctrl+-ज़ूम इन/आउट करेंदेखना
Cmd/Ctrl+Jसहायक पैनल को टॉगल करेंऐ
Cmd macOS और पर लागू होता है Ctrl अन्यत्र. प्रत्येक शॉर्टकट की आईडी उसका अनुवाद कुंजी प्रत्यय भी है (उदाहरण के लिए)। settings.shortcut.palette), और सेटिंग्स स्क्रीन इसी तालिका को प्रस्तुत करती है, इसलिए दस्तावेज़ और ऐप अलग नहीं हो सकते।

हर स्क्रीन मार्ग

राउटर में apps/desktop/src/app/routes.tsx 68 मार्गों की घोषणा करता है, प्रत्येक को आलस्य से लोड किया जाता है apps/desktop/src/pages/ (गतिशील खंड हैं _id_.tsx फ़ाइलें)। प्रथम खंड द्वारा समूहीकृत:

क्षेत्रमार्गों
**
500/500
admin/admin/analytics /admin/feature-flags
ai/ai
analytics/analytics/history /analytics
auth/auth/forgot-password /auth/magic-link /auth/magic-link/verify /auth/reset-password /auth/signin /auth/signup /auth/two-factor /auth/verify-email /auth/verify
cad/cad
cam/cam
costs/costs
components/components/:id /components
drawings/drawings/:id
//
invitations/invitations/:token
legal/legal/privacy /legal/terms /legal/third-party-licenses
library/library
machine/machine/:id /machine
marketplace/marketplace /marketplace/items/:id /marketplace/purchase/success /marketplace/purchases /marketplace/seller/dashboard
materials/materials/:id /materials
mcp/mcp/directory /mcp/servers/:id
offline/offline
organizations/organizations/:id /organizations/:id/chat/:conversationId /organizations/:id/chat /organizations/:id/chat/new-group /organizations/:id/chat/new /organizations/create /organizations
plugins/plugins/:id /plugins
pricing/pricing
profile/profile /profile/settings
projects/projects/:id/history /projects/:id /projects/create /projects
settings/settings /settings/companion /settings/mcp/config-editor /settings/mcp/edit/:id /settings/mcp /settings/subscription
third-party-licenses/third-party-licenses
toolpaths/toolpaths/:id /toolpaths
tools/tools/:id /tools
waitlist/waitlist
* 404 पृष्ठ प्रस्तुत करता है और /500 त्रुटि पृष्ठ. /offline ऑफ़लाइन स्क्रीन प्रस्तुत करता है; प्रमाणीकरण, आमंत्रण, 404, 500 और खरीद-सफलता पृष्ठों की तरह यह ऐप क्रोम के बिना स्टैंडअलोन लेआउट का उपयोग करता है। चूँकि प्रत्येक पृष्ठ एक आलसी आयात है, स्क्रीन का कोड केवल पहली बार देखने पर ही लोड होता है; एक असफल चंक लोड एक रूट त्रुटि के रूप में सामने आता है, न कि एक खाली ऐप के रूप में।

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.