لرسم مخطط توضيحي لنظام معقد بصيغة SVG، ابدأ بالأرقام الحقيقية والعلاقات بين الأجزاء قبل رسم أي شكل. ثم حدّد الأجزاء المرئية، وارسمها بإسقاط isometric ثابت، واربط العناصر بالتفاعل عند الحاجة، واختبر الملف في المتصفح وبأدوات إمكانية الوصول. استخدم WebGL فقط لما تعجز الخطوط عن تمثيله، مثل النار والماء. ومستودع anatomy أداة مفتوحة المصدر تبني رسوماً من وصف مكتوب، ويوصي المستودع بذكر الأرقام الحقيقية، لكن مراجعة الناتج قبل اعتماده تبقى ضرورية.
عندما ينضم موظف جديد إلى فريق تشغيل محطة ضخ، يحتاج إلى فهم ما يحدث داخل النظام قبل أن يلمس أي صمام. الصورة الفوتوغرافية تُظهر الجهاز كما هو، لكنها لا تشرح العلاقة بين مكوّناته. لذلك يحتاج الفريق إلى مخطط يوضح الأجزاء وترتيبها بطريقة واضحة.
يشرح هذا المقال كيف أرسم مخطط توضيحي لنظام معقد بصيغة SVG خطوة بخطوة، ويعرض متى تكفي الخطوط وحدها ومتى تحتاج إلى WebGL، ويتناول فحص الملف وإمكانية الوصول. كما يعرض مستودع anatomy المفتوح المصدر كمثال على أداة تبني الرسوم من وصف مكتوب، مع توضيح ما تفعله وما لا تفعله. وسنمر على مثال محطة ضخ بسيطة لنرى كيف تتحول الأرقام إلى رسم.
ما الفرق بين الرسم isometric والرسم ثلاثي الأبعاد الحقيقي؟
الرسم isometric إسقاط يعرض الأشكال من زاوية مائلة ثابتة. تبقى المحاور الثلاثة مرسومة بالنسبة نفسها، فلا يبدو جزء أقرب إلى القارئ أكبر من جزء أبعد بفعل المنظور. لهذا يبدو الجهاز مرتباً وسهل القراءة، ويصلح لشرح مكوّنات آلة أو مسار تدفق داخل نظام.
أما الرسم ثلاثي الأبعاد الحقيقي فيبني الشكل نموذجاً في فضاء ثلاثي الأبعاد، ثم تُحسب الكاميرا والإضاءة والظلال لكل إطار يُعرض. هذا يحتاج معالجة أكبر، ويفيد عندما يجب أن يدور الجزء أو يتحرك أمام المستخدم بحرية.
في أغلب حالات الشرح التقني، يكفي رسم isometric بصيغة SVG بزاوية مائلة ثابتة لتوضيح ترتيب القطع ومسار الكابل. ولأن SVG لغة نصية مفتوحة تعمل مع CSS وJavaScript، يبقى الرسم قابلاً للتنسيق والتفاعل والفحص كأي صفحة ويب.
اقرأ أيضاً: ما هو الوكيل الذكي المستقل؟.
متى يكفي الرسم isometric لشرح آلة أو نظام؟
يكفي عندما يكون الهدف شرح العلاقات بين المكوّنات: أين يقع الصمام، وأي خط يغذي أي وحدة، وماذا يتغير عند إغلاق جزء. ويمكن ربط عناصر الرسم بالنقر أو بتحريك المؤشر لعرض تفاصيل إضافية، دون الحاجة إلى نموذج ثلاثي الأبعاد كامل.
من الحالات المناسبة:
- تتبع مسار سائل أو إشارة عبر مكوّنات مرتبة.
- توضيح ترتيب التركيب أو الصيانة على جهاز واحد.
- شرح لوحة تحكم بعدّادات وأزرار يمكن قراءتها من الرسم نفسه.
متى تحتاج فعلاً إلى نموذج ثلاثي الأبعاد؟
تظهر الحاجة الحقيقية عندما تحتاج القطعة إلى الدوران أو الانحناء بطريقة تتبع منظور الكاميرا. يصف ملف README في مستودع anatomy وضع الرسم ثلاثي الأبعاد بأنه تجريبي (beta). فيه تُعاد إسقاط الأجزاء المتحركة فقط وتظليلها في كل إطار، بينما يبقى باقي الشكل رسماً ثابتاً.
أما الظواهر مثل اللهب والماء والبخار، فتحتاج عادة إلى طبقة WebGL. وفق ملف README، تعمل هذه الطبقة داخل عنصر canvas يقع بين طبقتي SVG، واحدة خلفه وأخرى أمامه، وبالكاميرا المائلة نفسها. ويبقى الشكل مقروءاً من دون WebGL، لأن طبقات SVG تحمل الأجزاء الأساسية.
القاعدة العملية: ابدأ بالإسقاط المائل، وأضف طبقة أعقد فقط عندما يفشل الشرح بدونها.
كيف أرسم مخططًا توضيحيًا لآلة أو نظام معقد بصيغة SVG خطوة بخطوة؟
المخطط التوضيحي لنظام معقد يشرح كيف تعمل أجزاؤه معًا، لذلك يبدأ العمل بالسؤال والأرقام قبل أي شكل. وSVG صيغة نصية مفتوحة لوصف الأشكال ثنائية الأبعاد، تعمل مع CSS وDOM وJavaScript كما توضح MDN، وتكفي محرر نصي لكتابتها.
وفيما يلي مثال صغير لعنصر واحد من الرسم، وهو خزان مياه مرسوم بمستطيل مع عنوان نصي، لتوضيح شكل الملف قبل الدخول في التفاصيل:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 120"><title>خزان مياه</title><rect x="20" y="20" width="160" height="80" fill="#cfe8f5" stroke="#1f4e6b" stroke-width="2"/></svg>
اقرأ أيضاً: الدعم التقني الجيد يبدأ قبل أن يتعطل العمل.
حدّد النظام والسؤال الذي يجيب عنه الرسم
اكتب جملة واحدة تحدد النظام والسؤال، مثل: كيف ينتقل الضغط في محطة ضخ عند فتح صمام العزل؟ إذا غاب السؤال، تكاثرت الأجزاء دون أن تخدم الشرح.
وحدّد حدود النظام أيضًا. قد يرسم فريق الصيانة في منشأة افتراضية الخط من الخزان حتى المضخة فقط، ويترك الشبكة الخارجية لرسم آخر. الحدود الواضحة تمنع الرسم من التضخم.
اكتب قائمة الأجزاء والوصلات قبل الرسم
سجّل كل جزء بالاسم والعدد والمقاس من الوثيقة الفنية للنظام، لا من الذاكرة. ثم سجّل كل وصلة: أين يدخل السائل، وإلى أين يخرج، والجهاز الذي يتحكم فيها.
راجع القائمة مع مدير العمليات قبل الرسم، فتقل التعديلات بعد اكتمال الأجزاء. القائمة هي مصدر الرسم، ولا تُستنتج من الصورة نفسها.
- الاسم والعدد والمقاس الحقيقي لكل جزء
- نقطة الدخول ونقطة الخروج لكل وصلة
- الصمام أو الجهاز الذي يتحكم في الوصلة
ضع شبكة isometric والمقاسات الحقيقية
كيف أرسم رسمًا isometric لآلة؟ يبدأ الجواب من الشبكة. الإسقاط isometric يعرض المحاور الثلاثة بزوايا ثابتة، فتبقى المسافات على كل محور متناسبة، وهذا ما يجعل مقارنة الأجزاء ممكنة.
حدّد وحدة قياس واحدة، مثل وحدة تمثل قيمة محددة من القائمة، واكتبها تعليقًا في الملف ليعرف من يعدّل الرسم لاحقًا معناها. وإذا لم تطابق النسب القيم المكتوبة، فالخلل في الشبكة لا في الأجزاء.
ابنِ الملف وراجعه في المتصفح
ابنِ الملف على طبقات: الهيكل أولًا، ثم الأنابيب والوصلات، ثم النصوص والتسميات فوقها. استخدم مجموعات <g> بمعرّفات واضحة لكل طبقة، حتى يسهل تعديل طبقة دون أخرى، ثم افتح الملف في المتصفح وفحصه كأي صفحة ويب.
في مستودع anatomy تحصل على مصدر تملكه: سكربت بناء في Node وصفحة يكتبها، وبحسب ملف README تفحص الأداة الرسم بتشغيل متصفح بلا واجهة على جهازك. وقد تمنع بيئة معزولة هذا المتصفح، فتفشل الفحوص وحدها دون أن يتأثر الرسم. تبقى المراجعة النهائية على الفريق، إذ يقارن أحد أعضائه الرسم بالنظام الفعلي.
من الوصف المكتوب إلى ملف SVG نهائي
حدّد السؤال
اكتب النظام والسؤال الذي يجيب عنه الرسم، وما الذي يبقى خارجه.
اكتب القائمة
سجّل الأجزاء ومقاساتها وعددها، ثم الوصلات واتجاه التدفق.
ابنِ وراجع
ابنِ الطبقات من الهيكل إلى التسميات، ثم افتح الملف في المتصفح وراجعه مع أحد أعضاء الفريق.
كيف أجعل عناصر الرسم تفاعلية: التمرير والنقر ولوحة المفاتيح؟
في صيغة SVG يمكن ربط كل شكل بحدث مثل التمرير أو النقر أو ضغطة مفتاح، لأن SVG يعمل مع CSS وDOM وJavaScript كما يصفه MDN. وتذكر مواصفة SVG 2 أن السكربت يمكن أن يُستخدم لإنشاء مستندات تفاعلية. لكن قبل كتابة أي معالج حدث، حدّد ما يتغير فعلاً في النظام: ضغط، أو تدفق، أو تحذير.
وفي أمثلة anatomy، بحسب README، يتحرك الشكل تحت المؤشر ويستجيب للوحة المفاتيح، وتأتي كل قيمة معروضة من النموذج نفسه الذي يحرّك أجزاءه. هذه القاعدة تصلح لأي مخطط توضيحي تفاعلي لآلة بصيغة SVG، أو لرسوم isometric SVG تفاعلية، وتعني أن القراءات ليست نصوصاً مكتوبة يدوياً. وتعرض أمثلة anatomy الأرقام بوصفها قراءة مباشرة يحركها نموذج، لا بوصفها بيانات حية من نظامك.
اقرأ أيضاً: حين لا تتحدث الأنظمة مع بعضها: من أين تبدأ الربط؟.
التمرير فوق جزء لإظهار معلومته
مثال توضيحي افتراضي: في محطة ضخ صغيرة، يمرّ المؤشر فوق صمام فتظهر نسبة فتحه، ويتغير لون المسار المرتبط به. الرقم هنا للشرح فقط. المهم أن الجزء والقراءة يرتبطان بمصدر واحد، فإذا تغيّر النموذج تغيّر الجزء والقراءة معاً.
- اربط كل معلومة بجزء واحد واضح، وامنح المعرّف (id) اسماً يصف وظيفة الجزء.
- احسب القراءة من النموذج الذي يحرّك الجزء، ولا تكتبها يدوياً داخل النص.
النقر أو تبديل الطبقات لعرض التفاصيل
التمرير يعرض المعلومة ما دام المؤشر فوق الجزء، أما النقر فيُبقيها ظاهرة بعد رفع المؤشر. قسّم المخطط إلى طبقات، مثل الهيكل الخارجي والأنابيب والمكونات الداخلية، ليختار القارئ ما يراه أولاً.
مثال افتراضي: يفتح فريق الصيانة طبقة الأنابيب ليتتبع مسار الماء، ثم يغلقها ليرى المضخة دون ازدحام.
التنقل بلوحة المفاتيح ومؤشر التركيز
من يعتمد على لوحة المفاتيح أو على تقنيات مساعدة لا يستطيع استخدام رسم يعمل بالفأرة وحدها. لذلك يتحقق الفريق بنفسه من أن كل جزء تفاعلي يصل إليه التنقل بالمفتاح، وأن مؤشر التركيز يظهر بوضوح حول الجزء المحدد. هذه مراجعة يتولاها الفريق بعد التوليد.
يوضح ملخص WCAG 2.2 تحت المعيار 1.1.1 أن المحتوى الزخرفي الذي لا يحمل معلومة ينبغي أن يُنفَّذ بطريقة تستطيع التقنيات المساعدة تجاهلها. وتذكر الصفحة نفسها تقنيات لتوفير نص بديل، منها aria-label وaria-labelledby وalt.
- رتّب عناصر التنقل بترتيب الشرح، لا بترتيب الطبقات في الملف.
- أعطِ الأجزاء التي تحمل معنى نصاً بديلاً عبر aria-label أو aria-labelledby، واجعل الزخرفة بحيث تتجاهلها التقنيات المساعدة.
- عند تفعيل تفضيل تقليل الحركة في المتصفح، أوقف الحركة وتأكد أن المعلومة ما زالت مقروءة. بحسب README، تتوقف أمثلة anatomy عن الحركة في هذه الحالة.
من الوصف إلى تفاعل مفهوم
- حدد الحالاتما الذي يتغير فعلاً: ضغط، تدفق، تحذير؟
- اربط الحالات بعناصر SVGمعرّف واضح لكل جزء يحمل معنى
- اكتب معالجات الحدثتمرير ونقر ولوحة مفاتيح بالمنطق نفسه
- اعرض القراءة من نموذج واحدالأرقام تأتي من مصدر واحد لا من نص يدوي
- تحقق من تقليل الحركةعند تفعيله تتوقف الحركة وتبقى المعلومة
متى أحتاج إلى WebGL أو تأثيرات الشيدر، ومتى يكفي SVG العادي؟
السؤال العملي هنا: هل يحتاج الشكل إلى شيء لا تستطيع الخطوط وحدها تمثيله؟ SVG صيغة نصية مفتوحة تعمل مع CSS وDOM وJavaScript، كما تصفها MDN، لذلك تبقى الأجزاء الصلبة والأنابيب والصمامات والتسميات واضحة وقابلة للتعديل كنص. أما النار والبخار والماء والإضاءة فيصعب تمثيلها بالخطوط وحدها، لأنها تعتمد على تدرّج الألوان والشفافية والحركة.
يصف ملف README في مستودع anatomy أن طبقة WebGL تعمل داخل عنصر canvas يقع بين طبقتي SVG، وبالكاميرا المائلة نفسها، وأن الرسم يبقى مقروءاً دون WebGL. وفي مثال raptor-engine يُرسم المحرك وحامله بصيغة SVG، بينما يُرسم اللهب كتأثير شيدر في الطبقة الوسطى.
ما الذي تضيفه طبقة WebGL فعلاً؟
تضيف الطبقة التأثيرات التي تحتاج إلى حساب الضوء والحركة داخل الصورة نفسها. لنفترض، كمثال توضيحي افتراضي لا يمثل عميلاً حقيقياً، أن فريقاً يشرح دورة تشغيل محطة ضخ لموظفين جدد. الخزان والمضخة والصمامات تبقى SVG، بينما يمكن إضافة تدفق الماء داخل الأنبوب كتأثير WebGL.
يذكر README أمثلة مثل النار والعادم والماء والإضاءة والتوهج والبخار. لذلك يبدأ القرار بسؤال واحد: هل التأثير جزء من الفكرة التي يشرحها الرسم؟
- SVG: الأجزاء الصلبة والأنابيب والمؤشرات والتسميات.
- WebGL: اللهب والعادم والماء والإضاءة والبخار، عندما يكون التأثير جزءاً من الشرح.
تكلفة الصيانة والأداء والتوافق
كل طبقة إضافية تعني ملفات أكثر يجب فهمها وتحديثها. إذا غيّر أحد أعضاء الفريق زاوية الكاميرا، فيجب أن تتطابق طبقة SVG وطبقة WebGL معها.
من ناحية التوافق، تحتاج الشيدرات إلى WebGL. ويذكر README أن الرسم يبقى مقروءاً دونها، وأن الحركة تتوقف عند تفعيل تقليل الحركة. لذلك لا تضع المعلومة الأساسية داخل الشيدر وحده.
ومن ناحية الأداء، يذكر README أن بناء مثال raptor-engine يستغرق عدة دقائق. هذا وقت بناء لا وقت عرض، وأداء العرض على أجهزة المستخدمين يقيسه فريقكم بنفسه. ويصف README وضع 3D بأنه بيتا، فلا يخلط هذا القسم بينه وبين طبقة WebGL.
القاعدة العملية: ابدأ بـ SVG، ولا تضف طبقة WebGL أو تأثيرات شيدر في الرسوم التوضيحية إلا عندما يكون التأثير نفسه جزءاً من الفكرة. وإذا كانت الطبقة تحمل معلومة أساسية، فانقلها إلى الأجزاء الصلبة أو إلى النص.
هل يمكن لأداة ذكاء اصطناعي أن ترسم آلة بدقة؟ وما حدودها؟
تبني أداة ذكاء اصطناعي لإنشاء رسوم توضيحية للآلات الشكل من الوصف الذي تكتبه: الأجزاء والمقاسات وعدد الوصلات وترتيب الحركة. لذلك تتوقف دقة الناتج على دقة هذا الوصف أولًا.
تُعد أداة anatomy مثالًا على إنشاء رسومات SVG بالذكاء الاصطناعي من وصف مكتوب. يصف مستودعها الأداة بأنها تخترع جسمًا ماديًا يكون عمله هو الفكرة المطلوب شرحها. الهدف إذن شرح كيف يعمل النظام، لا نسخ مخطط جهاز بعينه. وإذا أراد الفريق تمثيل جهازه، فعليه أن يكتب أجزاءه ومقاساته الحقيقية بنفسه.
ما الذي تفعله الأداة بالوصف الذي تكتبه؟
بحسب README، تبني الأداة الهندسة مرة واحدة من قائمة الأجزاء، ثم تشغّل فحصًا هندسيًا عليها. يتحقق الفحص في kit/audit.mjs من أن الأجزاء لا تمر عبر بعضها، وأن كل طرف يقع على تثبيت، وأن التداخلات مرسومة بترتيب العمق الصحيح. هذا فحص لاتساق الرسم مع نفسه.
المستودع يصف نطاق الفحص بهذه العبارات فقط. مقارنة الرسم بمخطط المصنع أو بمواصفة الجهاز تبقى خطوة يقوم بها الفريق بنفسه.
- الفحص يتحقق من الاتساق الهندسي داخل الرسم، ولا يُستخدم بديلًا عن مطابقة المقاسات مع الجهاز.
- الأداة ترسم الآلات والأدوات والأثاث، ولا ترسم الأشخاص ولا الخرائط الدقيقة، بحسب README.
- الفكرة التي لا تملك آلية ميكانيكية واضحة تخرج أضعف، بحسب README.
كيف تراجع التسميات والنسب والوصلات؟
عامل الناتج كمسودة فنية. قارن كل تسمية بلوحة الجهاز أو بدليل تشغيله المعتمد، وقارن النسب بالقياس الفعلي أو بالمخطط الذي تعتمده الشركة، واطلب من شخص يعرف الجهاز أن يراجع اتجاه الوصلات.
مثال توضيحي، لا يمثل شركة بعينها: يطلب فريق صيانة في محطة ضخ رسمًا لمسار المياه بين المضخة وصمام العزل. إذا لم يحدد الوصف الجانب الذي تدخل منه الوصلة، فقد يرسم الشكل الأنبوب من الجهة المعاكسة لما هو مركّب فعلًا. لذلك اكتب في الوصف جانب كل وصلة بالنسبة لواجهة محددة، ثم راجع الرسم مع من يعرف المحطة. فحص الاتساق لن يلتقط هذا النوع من الخطأ، لأن الرسم سيكون متسقًا مع وصفه.
كيف أتأكد من أن ملف SVG صالح للويب وسهل الوصول لذوي الإعاقة؟
ملف SVG نص يفهمه المتصفح، لذلك يمكن فحصه كأي صفحة ويب قبل النشر. وبما أنه يعمل مع CSS وDOM وJavaScript كما تصفه MDN، فالفحص يشمل النص والألوان والتنقل، وليس شكل الرسم وحده. ابدأ بالتأكد من أن الصياغة سليمة عبر أداة التحقق من الصياغة (Markup validator) المدرجة ضمن موارد MDN، ثم انتقل إلى فحص إمكانية الوصول.
عند اختبار مخطط توضيحي تفاعلي لآلة بصيغة SVG، اطرح سؤالين: هل يفهم شخص لا يرى الشاشة ما يوضحه الرسم؟ وهل يصل شخص لا يستخدم الفأرة إلى كل عنصر تفاعلي؟ إذا كانت الإجابة لا في أي منهما، فالرسم غير جاهز للنشر مهما بدا متقنًا.
عنوان ووصف لكل رسم
كل رسم يحمل معلومة يحتاج إلى بديل نصي يشرح غرضه. تتناول إرشادات WCAG هذا في معيار 1.1.1 الخاص بالمحتوى غير النصي، وتذكر تقنيات مثل ARIA6 وARIA10 لتوفير بديل نصي عبر aria-label وaria-labelledby. أما الزخرفة التي لا تحمل معلومة فتُخفى عن التقنيات المساعدة حتى لا يقرأها قارئ الشاشة دون فائدة.
الوصف الجيد يذكر ما يوضحه الرسم. عبارة «مخطط يوضح مسار الماء من الخزان إلى المضخة» أفضل بكثير من «رسم لمضخة». وإذا كان الرسم يعرض قيمة متغيرة مثل قراءة عداد، فاكتب القيمة الحالية في نص قريب منه داخل الصفحة.
- العنوان: اسم الآلة أو النظام في جملة واحدة.
- الوصف: ما الذي يتحرك، وما الذي يجب أن يلاحظه القارئ.
- القيم المرئية: نص موازٍ يحمل الرقم نفسه المعروض على الرسم.
التباين والتشغيل بلوحة المفاتيح
افحص تباين النص والألوان التي تدل على الحالة، مثل الأخضر للتشغيل والأحمر للإنذار، بأداة فحص تباين تطبق متطلبات WCAG المناسبة لحجم النص. لا تعتمد على اللون وحده، بل اكتب الحالة نصيًا بجانبه.
ثم شغّل الرسم بلوحة المفاتيح وحدها. تأكد من أن كل عنصر تفاعلي يصل إليه التنقل، وأن مؤشر التركيز يظهر بوضوح. اختبر أيضًا وضع تقليل الحركة في نظام التشغيل، لأن الرسم قد يتوقف عن الحركة فيه.
الشيدر يحتاج WebGL. لذلك اختبر الصفحة مع إيقاف WebGL، وتأكد من أن الرسم ما زال مقروءًا بمعلوماته الأساسية.
حجم الملف والأداء
راقب حجم ملف SVG وعدد عناصره. الرسم الكثيف بعدد كبير من الأجزاء الصغيرة يحتاج وقتًا أطول للعرض، وهذا يظهر أوضح على الهواتف والأجهزة القديمة. لا تذكر هذه المقالة رقمًا محددًا للحجم المقبول، لذلك حدّد ميزانية خاصة بفريقك واختبرها على الأجهزة التي يستخدمها موظفوك فعلًا.
الرسوم التي تحتوي على WebGL أو حركة مستمرة تزيد الحمل على المعالج والبطارية. لا تكتفِ بجهاز المطور، بل شغّل الصفحة على جهاز متوسط المواصفات وعلى هاتف يستخدمه الفريق الميداني.
- افتح الملف في المتصفحات الأساسية التي يستخدمها فريقك.
- راقب سلاسة الحركة، وأوقفها إذا أثّرت على قراءة المعلومات.
- احفظ نسخة خفيفة للعرض على الشاشات الصغيرة إذا كان الرسم كثيفًا.
خطوات التحقق قبل النشر
أضف العنوان والوصف
اربطهما بالرسم قبل أي اختبار آخر.
افحص التباين
على النصوص والألوان الدالة على الحالة، ثم أعد الفحص بعد أي تعديل على الألوان.
ما المخاطر قبل تشغيل مهارة من مستودع مفتوح المصدر؟
أداة ذكاء اصطناعي من مستودع مفتوح المصدر تعمل على جهازك، لذلك تبدأ مخاطر تشغيل مهارة قبل المراجعة من سؤالين: ماذا ينفّذ الكود، وما الذي يخرج من الجهاز؟ تُظهر بيانات GitHub أن المستودع مدرج بترخيص MIT، وأن لغته الأساسية JavaScript. هذه البيانات لا تصف سلوك الكود، لذلك يبقى الفحص التقني ضرورياً قبل التشغيل.
يذكر README أن البناء يحتاج إلى Node.js بإصدار 20.10 أو أحدث، وأن فحوص المتصفح تحتاج إلى Chrome أو Chromium. هذه المتطلبات تحدد البيئة التي تجرّب فيها، ولا تعني أن المهارة آمنة.
ما الذي يعمل على جهازك؟
يذكر README أن المكتبة تستخدم وحدات Node المدمجة فقط، ولا تحتاج إلى مفاتيح API ولا إلى حزم npm إضافية. لكن التثبيت يجلب المستودع من GitHub، ويصف README أن ذلك ينسخه كاملاً بما فيه الأمثلة.
في المقطع الذي راجعناه لا يصف README اتصالاً بالشبكة غير التثبيت ومشاركة الأشكال. هذا لا يعني أنه لا يوجد اتصال آخر، فإذا كانت سياسة شركتكم تتطلب ذلك، راقب حركة الشبكة أثناء التثبيت والبناء بنفسك.
- يعمل محلياً: بناء الملفات عبر سكربت Node، وكتابة الصفحات بجوار السكربت، وفحوص Chrome. يصف README أن الفحوص تشغّل Chrome بملف تعريف مؤقت ومنفذ محلي.
- قد يخرج من الجهاز: التثبيت يجلب الملفات من GitHub. ويصف README مشاركة الشكل إلى معرض المجتمع، وفيها تعرض الأداة ما سيُرسل قبل موافقتك.
- يحتاج صلاحيات: تشغيل Chrome والوصول إلى منفذ محلي. ويذكر README أن صندوق Codex الرملي قد يوقف هذه الفحوص.
ماذا تراجع قبل التشغيل وبعده؟
اقرأ سكربت البناء وسكربت الفحص قبل أول تشغيل، فكل شكل يصل إليك كمصدر تملكه: سكربت Node وصفحة يكتبها. ويذكر README أن الفحوص تعتمد على Chrome، لذلك حدّد المتصفح الذي سيعمل، وهل تحتاج إلى ضبط متغير CHROME_PATH.
مثال توضيحي: يشغّل مهندس الأداة على جهاز اختبار معزول، ثم يقارن النتيجة بالنسخة السابقة قبل أي تحديث. يذكر README أن التحديث يتم عبر git pull داخل مجلد المهارة، وهذا يغيّر الكود الذي يعمل على جهازك، فأعد الاختبار بعده.
أما فحص الملفات الناتجة وصلاحيتها وإمكانية وصولها فيُشرح في القسم السادس. وتصف MDN صيغة SVG بأنها نصية تعمل مع CSS وJavaScript، لذلك لا يُعد الملف الناتج ملفاً ثابتاً بالضرورة.
قرار التبني
مثال عملي: كيف تبدو الخطوات على محطة ضخ بسيطة؟
لنفترض فريق صيانة في منشأة صناعية يريد شرح محطة ضخ بسيطة لفريق تشغيل جديد. تتكون المحطة الافتراضية من خزان مياه، ومضخة، وصمامات عزل، ومقياس ضغط. هذا المثال وصف إدخال فقط، ولا يعرض ناتجاً أو نتيجة.
يبدأ الرسم من الوصف لا من الشكل. فالمخطط التوضيحي لنظام معقد يحتاج إلى أرقام من الوثائق الفعلية وعلاقات واضحة بين الأجزاء. يصف ملف README هذا الترتيب: جمع الأرقام الحقيقية أولاً، ثم ابتكار الكائن، ثم كتابة قائمة الأجزاء، ثم بناء الهندسة بمكتبة الرسم.
الوصف الذي تكتبه كمدخل
الوصف الجيد يذكر كل جزء باسمه، ويحدد اتجاه التدفق، ويحدد ما الذي يجب أن يتحرك. استخدم القيم من وثيقة المشروع، واترك الخانات الناقصة فارغة بدلاً من تقدير غير موثوق. كلما كان الوصف محدداً، قلّت الافتراضات التي يضطر الرسم إلى اتخاذها.
- الخزان: السعة بالمتر المكعب [من وثيقة المشروع]، ومتصل بخط السحب من الأسفل.
- المضخة: تسحب من الخزان وتدفع إلى خط التوزيع، ويظهر التدفق بحركة في السائل.
- صمامات العزل: واحد قبل المضخة وواحد بعدها، ويُغلق كل منهما عند النقر.
- مقياس الضغط: بعد المضخة، ويعرض قيمة الضغط من النموذج نفسه.
- الوصلات: قطر الأنابيب [من المواصفة]، ومسار كل وصلة من نقطة إلى نقطة.
ما الذي تتحقق منه بعد الإخراج؟
الرسم المولد ليس دليلاً على صحة المحطة. ابدأ بالأرقام: هل تطابق كل قيمة تظهر في الرسم الوثيقة الأصلية؟ ثم تحقق من الوصلات: هل تنتهي كل وصلة عند تركيب واضح؟ يذكر README أن فحص الهندسة يتأكد من أن الأجزاء لا تخترق بعضها وأن كل طرف يقع على حامل. هذا فحص هندسي، وليس فحصاً لصحة المحطة نفسها.
ثم راجع إمكانية الوصول. يصف MDN صيغة SVG بأنها لغة نصية مفتوحة تعمل مع CSS وJavaScript، لذلك يمكن فحص الملف كنص قبل النشر. وتطلب إرشادات WCAG نصاً بديلاً للمحتوى غير النصي الذي يحمل معلومة، وإخفاء الزخارف عن التقنيات المساعدة.
وتذكّر حدود الأداة: هي ليست مكتبة مخططات بيانية، ولا ترسم أشخاصاً أو خرائط دقيقة. فإن احتجت إلى منحنى زمني للضغط، فهو خارج ما تقدمه الأداة.
- هل تطابق كل قيمة في الرسم الوثيقة الأصلية؟
- هل تتبع الأسهم اتجاه السائل فعلاً؟
- هل يوجد نص بديل يصف الرسم؟
- هل راجعت الملف في المتصفح قبل اعتماده؟
خطوات بناء الرسم لمحطة ضخ
- جمع الأرقامقيم السعة والقطر والضغط من الوثيقة، لا من التقدير.
- قائمة الأجزاء والوصلاتكل جزء باسمه، وكل وصلة بطرفيها.
- بناء الهندسةتُبنى الأجزاء بمكتبة الرسم وفق قواعد الأداة.
- فحص الهندسةفحص الاختراق والتراكب، وتحقق من وقوع الأطراف على حوامل.
- مراجعة الأرقام والصورمقارنة كل رقم ظاهر بالوثيقة قبل النشر.
- التحقق من إمكانية الوصولنص بديل، وفحص الملف كصفحة ويب قبل الاعتماد.
أسئلة شائعة
ما الفرق بين SVG وWebGL في الرسوم التوضيحية؟
SVG صيغة نصية تصف الأشكال بخطوط وأشكال واضحة تبقى حادة في أي حجم، ويمكن تعديلها كنص. أما WebGL فيرسم عبر عنصر canvas، ويناسب تأثيرات مثل النار والبخار والماء والإضاءة التي يصعب تمثيلها بالخطوط وحدها. في أداة anatomy تقع طبقة WebGL بين طبقتي SVG، ويبقى الرسم مقروءاً من دون WebGL.
هل يمكن لأداة ذكاء اصطناعي أن تنتج ملف SVG يطابق الآلة الحقيقية؟
لا تضمن الأداة ذلك. بحسب مستودع anatomy، تخترع الأداة جسماً مادياً يوضح عمل الفكرة، ولا تنسخ جهازاً بعينه. ويوصي المستودع بذكر الأجزاء والمقاسات والأرقام الحقيقية في الوصف. أما مطابقة الرسم للجهاز الفعلي فتحتاج إلى مراجعة من يعرف الجهاز قبل اعتماده في التدريب أو التوثيق.
كيف أضيف وصفاً نصياً لملف SVG لقارئات الشاشة؟
أضف داخل ملف SVG عنصر title باسم قصير للرسم، وعنصر desc يشرح ما يوضحه والعلاقة بين أجزائه. ثم تأكد من أن الصفحة التي تعرض الرسم تحمل نصاً بديلاً مناسباً للسياق. اختبر الناتج مع قارئ شاشة، وراجع إرشادات إمكانية الوصول المعتمدة. يجب أن يشرح الوصف فهم المخطط، لا أن يعدّد كل مربع فيه.
ما المتطلبات لتشغيل أداة anatomy على جهازي؟
يحتاج المستودع إلى Node.js بإصدار 20.10 أو أحدث، ومتصفح Chrome أو Chromium لفحوص المتصفح. لا يحتاج إلى مفاتيح API ولا إلى تثبيت حزم npm، لأنه يستخدم وحدات Node المدمجة فقط. وتعمل الأداة مع Claude Code أو Antigravity أو OpenCode أو Codex أو MiniMax Code. مكتبة React 18 أو أحدث مطلوبة فقط لمخرجات React.
هل ترخيص MIT يسمح باستخدام الرسوم في منتجات تجارية؟
المستودع مرخّص بموجب MIT بحسب بيانات GitHub. لم نراجع نص ملف LICENSE المرفق بالمستودع في هذا المحتوى، لذلك لا نذكر هنا شروطه التفصيلية. قبل أي استخدام في منتج تجاري، اقرأ ملف الترخيص نفسه، واستشر مختصاً قانونياً مؤهلاً إذا احتجت إلى تفسير. هذا ليس استشارة قانونية.
خطوة عملية
خطوة عملية للبدء
قبل تجربة أي أداة، راجع الكود أولاً، ثم شغّل مثالاً واحداً على جهاز اختبار معزول، وراجع الملف الناتج مع من يعرف الجهاز الفعلي. ابدأ بنظام صغير له أرقام موثقة، ثم وسّع الرسم تدريجياً. تواصل معنا إذا أردت مساعدة في تبنّي هذه الأداة.
إذا كان هذا التحدي قريباً من واقع عملك، اكتب لنا ما تحتاجه.
تحدث مع الريتاج





