الوثائق
هندسة CAD
كيانات الرسم، والرسومات المقيدة، والتواريخ البارامترية، والشبكات، والمواد الصلبة الدقيقة في قلب هندسي مشترك.
مترجم تلقائيًا من الإنجليزية. عرض الأصل بالإنجليزية
كيانات الرسم
@cadcamfun/core يقوم بتصدير وظائف CAD بشكل مباشر وتحت cad مساحة الاسم. تستخدم كيانات المخطط الأول 2D ملفًا _tag المميز: الخط، الدائرة، القوس، الخطوط المتعددة، المستطيل، القطع الناقص، الخط، النص، البعد، الفتحة، والكتلة. كل كيان لديه معرف ثابت، وطبقة، ورؤية، وحالة قفل؛ التحديد ينتمي إلى حالة المحرر.
تستخدم هندسة الكيان المليمترات والراديان. يتم تطبيع زوايا القوس إلى دورة كاملة، وتمثل زوايا البداية/النهاية المتساوية دائرة كاملة. يطبق تحويل الكيان المحلي المقياس والتدوير ثم الترجمة؛ Affine2D يدعم التحويلات المركبة التي يمكن أن تتضمن القص. تحتوي محولات عنصر المشهد والتاريخ البارامتري على حقول زاوية موثقة خاصة بها، بما في ذلك عناصر التحكم في الموضع والميزات ذات القيمة الدرجة.
entitySchemaOf(tag) إرجاع المخطط لنوع كيان واحد. قم بفك تشفير البيانات المستوردة قبل استدعاء الوظائف الهندسية. تعد الحدود والفسيفساء والتقاطعات والإزاحات والالتقاط عمليات منفصلة؛ إن تقديم منحنى مرصوف بالفسيفساء لا يحل محل كيانه التحليلي.
اسكتشات مقيدة
يحتوي نموذج الرسم على نقاط مسماة، وخطوط بين النقاط، ودوائر ذات مركز ونصف قطر، وأقواس عكس اتجاه عقارب الساعة. معرفات النقاط المشتركة تعبر عن نقاط النهاية المشتركة. تشمل القيود المصادفة، والمحاذاة الأفقية والرأسية، والمسافات، والأطوال، والخطوط المتوازية والمتعامدة، والأطوال المتساوية وأنصاف الأقطار، والظل، والتماثل، والوقوع الهندسي.
يعمل الحل الرقمي على تقليل بقايا القيد باستخدام تكرار ليفينبرج-ماركوارت والفرق المركزي جاكوبي. فهو يُبلغ عن درجات الحرية، والنقاط الحرة، والمعادلات الزائدة عن الحاجة، والقيود المتضاربة. يمكن أن تكون النتيجة مقيدة بالكامل، أو غير مقيدة، أو مقيدة بشكل مفرط، أو متضاربة، أو فاشلة. يمكن للحل غير المقيد أن يلبي كل الأبعاد مع السماح بالحركة؛ يجب على المتصلين الحفاظ على هذا التمييز.
تتلقى قيود الرسم أرقامًا. تعمل السجلات البارامترية على حل تعبيرات المعلمات قبل استدعاء الحل. قيود زاوية الرسم هي راديان؛ استخدم اصطلاح الإدخال الخاص بالميزة عند تحويل البعد الذي أدخله المستخدم.
التاريخ البارامترى
يقوم الجزء البارامترى بتخزين المعلمات الخاصة به وسجل الميزات المطلوبة. تعمل عملية إعادة الإنشاء على تقييم التعبيرات والمعالم بالتسلسل بحيث يمكن للميزة الإشارة إلى الرسومات التخطيطية أو المستويات أو الأجسام أو الأدوات التي تم إنشاؤها مسبقًا. يتضمن القلب عمليات السحب، والثورات، والغرف العلوية، والمسحات، والمنطقيات، والثقوب، والأنماط، وتعديلات الوجه، والنص، والخيوط، وميزات الصفائح المعدنية، وعناصر التحكم في التزاوج. يعتمد توفر التمثيل الدقيق على تسلسل الميزات المعين.
rebuild تنتج أجسامًا شبكية ومشكلات مميزة. rebuildExact يعيد عرض التاريخ من خلال نواة تمثيل الحدود ويسجل سبب افتقار الجسم إلى تمثيل دقيق. احتفظ بالتاريخ كمصدر قابل للتحرير؛ الهيئات المولدة هي مخرجات مشتقة. يجب أن تظل الميزة الفاشلة أو غير المدعومة مرئية من خلال سجل المشكلات الخاص بها.
قراءة نتيجة الإعادة
يمكن أن يوجد مخرج شبكي عندما لا يمكن أن تمثل إعادة التشغيل الدقيقة إحدى الميزات. تحقق من الجسم وأصدر السجلات قبل تقديم ادعاءات حول الشكل الهندسي الدقيق أو الحجم أو دقة التصدير.
هندسة الشبكة والتنسيب
تستخدم الشبكات هندسة المثلث المفهرسة. توفر طبقة CAD بنية بدائية، ومنطقيات شبكية، ومساعدات المسح والعلوية، والطوبولوجيا والمرافق العادية، والتنظيف الهندسي. يقوم محول نموذج CAM بتحويل عناصر المشهد المدعومة إلى شبكات، بما في ذلك المكونات المتداخلة، بحيث يمكن للتحليل وإنشاء مسار الأدوات استخدام نفس الشكل الهندسي الموضوع.
يؤثر موضع العنصر والتدوير والحجم والترجمة على الجزء الناتج. يعكس موضع المشهد الدقيق تحول إطار العرض حول مركز المربع المحيط. يمكن أن يؤدي القياس غير الموحد إلى إزالة مسار النموذج الدقيق للعنصر؛ يُبلغ تحويل المشهد عن سبب وقد يستخدم تمثيلًا متعدد الأوجه أثناء التصدير.
تمثيل الحدود الدقيق
cad.brep يعرض الهندسة التحليلية وهندسة NURBS مع طوبولوجيا الوجه والحلقة واستخدام الحافة والحافة والقمة. تغطي وحداتها البدائية، وعمليات المسح، والغرف العلوية، والمنطقية، وتحرير الوجه، والمزج، والخياطة، والفسيفساء، والتصنيف، والتحقق من الصحة، والخصائص الجماعية، وقراءة وكتابة STEP. history-brep.ts و scene-step.ts قم بتوصيل هذه النواة بالأجزاء البارامترية وعناصر المشهد الموضوعة.
POST /api/cad/exact/analyze إرجاع مشكلات صلاحية كل جزء، والحجم، والمساحة، والنقطه الوسطى، والحدود، وأعداد الطوبولوجيا، وأعداد الأسطح، والثقوب المعترف بها، وتصنيف الآلات. كما تقوم أيضًا بإرجاع العناصر التي تم تخطيها مع الأسباب والإجماليات الإجمالية. تشير نتائج المعالجة المنشورية إلى الخطوط العريضة والثقوب والجيوب والمستويات العلوية/السفلية؛ الأجزاء غير المدعومة لها سبب.
POST /api/cad/exact/assembly تقارير التداخل، والتداخلات المتوقعة، والأزواج الملامسة وغير المحددة، وعناصر قائمة المواد، والمفاصل، وخطط التثبيت. الهندسة غير المحددة هي نتيجة تم الإبلاغ عنها وليست دليلاً على التخليص. تقوم طرق التحليل هذه بحساب النتائج دون تغيير الرسم.
الاستيراد والتصدير
يحتوي المركز على مساعدين DXF واستيراد الرسم، ومسار تفسير STEP المنشوري، وقارئ STEP B-rep الدقيق. يقرأ المسار المنشوري البصمة وارتفاع البثق للألواح والأقواس والفلنجات المناسبة؛ فهو يُبلغ عن ميزات لا يستطيع المنشور وصفها. اختر القارئ الدقيق عند الحاجة إلى طوبولوجيا STEP المدعومة تمامًا، وافحص التشخيصات من أي من المسارين.
sceneToStep يكتب مشهدًا كـ STEP AP214. تحتفظ المواد الصلبة المدعومة تمامًا بالهندسة الدقيقة؛ يمكن أن تنبعث المواد الصلبة الشبكية فقط كمواد صلبة ذات أوجه. يتم تخطي العناصر غير الصلبة مع الأسباب. ال faceted يتحكم الخيار في هذا التراجع. رد بدون step لا يحتوي على مواد صلبة قابلة للتصدير.
تقبل مسارات HTTP الدقيقة أيًا منهما elements أو drawingId; العناصر الصريحة لها الأسبقية. تسمح مصفوفات اللقطات بعناصر 1–2،000 واختيار اختياري يصل إلى معرفات 200. باستخدام الرسم المخزن، يقرأ السايدكار المشهد ضمن قواعد الوصول إلى الرسم. ينتج عن المصدر المفقود أو الرسم الفارغ أو الرسم غير المعروف أو الرسم المرفوض الطلب المقابل أو خطأ في الوصول.
الرسومات الفنية
ال drawing توفر مساحة الاسم الإسقاطات والأقسام والأبعاد وتكوين الورقة ومخرجات SVG من 3نماذج D. هذا تمثيل منفصل عن رسم الكيان 2D القابل للتحرير وعن برنامج التشغيل الآلي. يجب إعادة إنشاء هندسة الإسقاط والقسم بعد تغييرات النموذج؛ تلتقط عملية تصدير الورقة حالة النموذج المستخدم في إنشائها.
حيث لتوسيع الهندسة
ابدأ بـ packages/core/src/cad/index.ts لسطح CAD العام. عمليات الكيان تعيش بجانبها entities.ts; حل القيد موجود sketch.ts; تاريخ الشبكة موجود history.ts; الإعادة الدقيقة موجودة history-brep.ts; الطوبولوجيا الدقيقة والتبادل تحت brep/. packages/core/src/drawing/ يمتلك ورقة الإخراج. تشمل الوحدات الداعمة في نفس المجلد expr.ts (تعبيرات المعلمات مثل width / 2 + 3، تم حلها بترتيب التبعية مع الإبلاغ عن الدورات كأخطاء)، tolerance.ts (يُحسب مقطع الوتر السهمي للمنحنيات)، gear.ts (ISO 53 مخططات تروس ملتوية)، thread.ts, sheet-metal.ts, fasteners.ts, recipes.ts (المولدات التي تصدر سجلات ميزات كاملة ومقيدة بالكامل)، dfm.ts (نتائج التصميم للتصنيع مع القيم المقاسة والمطلوبة)، و dxf.ts.
تعمل الوظائف الهندسية على القيم دون فتح مساحة تخزين التطبيق. تتعامل خدمات Sidecar مع الوصول والاستمرارية، وتتعامل محولات سطح المكتب مع التفاعل والعرض. اجعل التحويلات واضحة عند الحدود بحيث تحتفظ شبكة العرض والصلب الدقيق والسجل المحفوظ بمعناها المميز.
إنشاء مادة صلبة والتحقق من صحتها وتصديرها
يقوم هذا المثال الأساسي الكامل بإنشاء مربع 40 × 25 × 8 مم بزاوية واحدة عند أصل العالم، والتحقق من طوبولوجيته، وقياسه، وتصدير نص STEP. فهو يتطلب فقط الحزمة الأساسية لمساحة العمل ولا يقوم بأي عمليات كتابة للتطبيق.
import { cad } from "@cadcamfun/core"
const solid = cad.brep.makeBox(40, 25, 8)
const report = cad.brep.validateBrep(solid)
if (!report.valid) throw new Error(JSON.stringify(report.issues))
const mass = cad.brep.massProperties(solid)
console.log(mass.volume.toFixed(3)) // "8000.000" cubic millimetres
console.log(mass.centroid) // approximately { x: 20, y: 12.5, z: 4 }
const step = cad.brep.writeStepBreps([{ name: "Bracket blank", brep: solid }], {
author: "Workshop",
timestamp: "2026-01-01T00:00:00.000Z"
})
console.log(step.startsWith("ISO-10303-21;")) // true الطابع الزمني الصريح يجعل مخرجات التبادل المتكررة قابلة للتكرار. وبدون ذلك، تستخدم كتابة STEP الوقت الحالي. massProperties يُرجع أيضًا المساحة والمساحات لكل وجه وموتر القصور الذاتي حول النقطه الوسطى بكثافة الوحدة؛ الحجم مم³ والمساحة مم². تحويل الكثافة بشكل صريح عند حساب الكتلة الفيزيائية.
مصدر: packages/core/src/cad/brep/primitives.ts, mass.ts, validate.ts، و step.ts.
خيارات التحقق والتحويل
validateBrep يعود valid، إصدار السجلات، manifoldSolidوالجنس/الحجم الاختياري. manifoldSolid يعني قذائف مغلقة مع كل حافة تستخدم مرتين في الحواس المعاكسة. يتم قياس تفاوت المسافة الهندسية الافتراضية كـ 10⁻⁵ من حجم النموذج بأرضية 10⁻⁶ مم. يمكن للمتصل العرض tol، تخطي التحقق من مستوى الصوت/الاتجاه باستخدام skipVolume، أو استخدم التغطية بالفسيفساء الخشنة للتوجيه coarseVolume.
واجهات برمجة التطبيقات للتحليل الدقيق machining علامة افتراضية إلى صحيح. تصدير مشهد STEP faceted الإعدادات الافتراضية هي صحيح، وتخطيط قفل التجميع washers الخيار الافتراضي هو صحيح. تشير معرفات التحديد إلى عناصر المشهد، بما في ذلك المكونات الفرعية التي يتم حلها بواسطة اجتياز المشهد. تؤثر خيارات HTTP هذه على التحليل/التصدير، وليس على الرسم المخزن.
عائدات تصدير المشهد لكل جزء exact, faces, validوملاحظة اختيارية. تحقق من تلك الحقول جنبا إلى جنب skipped: يمكن تصدير المادة الصلبة ذات الأوجه الصالحة دون الاحتفاظ بالأسطح التحليلية.
مصدر: packages/core/src/cad/brep/validate.ts, scene-analysis.ts, scene-step.ts, assembly-analysis.ts، و packages/api/src/cad-exact.ts.
إصلاح عملية إعادة البناء أو التصدير الفاشلة
| العثور على | التفتيش القادم |
|---|---|
| يظل الرسم غير مقيد | قراءة درجات الحرية ومعرفات النقاط الحرة. أضف قيود الموضع/الاتجاه المفقودة؛ لا يزال من الممكن تدوير الخط ذو الأبعاد بنقطة نهاية ثابتة واحدة فقط. |
| تعارض قيود الرسم | استخدم معرفات التعارض المسماة والمتبقية لتحديد الأبعاد غير المتوافقة. تكرار معادلة متوافقة هو تكرار. طولان مختلفان مطلوبان يمثلان تعارضًا. |
| تشير ميزة التاريخ إلى جسم أو طائرة غير معروفة | تحقق من ترتيب الميزات والمعرفات. يجب أن تكون التبعيات موجودة في وقت مبكر من الإعادة، ويمكن أن يؤدي الحذف/الحذف إلى إبطال المراجع اللاحقة. |
| النموذج الدقيق غير متوفر بعد القياس | فحص المقياس غير الموحد والسبب المبلغ عنه للعنصر. استخدم الموضع الموحد المدعوم أو اقبل التصدير ذو الأوجه وقم بتسميته. |
| قامت نتيجة STEP بتخطي العناصر أو عدم وجود نص | تحقق مما إذا كان التحديد يحتوي على مواد صلبة وما إذا كان الرجوع ذو الأوجه ممكنًا. لا يمكن أن تنتج التحديدات الفارغة أو 2D فقط ملف STEP ثابتًا. |
يجب أن تكون الأبعاد البدائية إيجابية ومحدودة. يمكن أن تؤدي وظائف الهندسة المباشرة إلى حدوث أخطاء في النطاق للأبعاد غير الصالحة؛ يجب على طبقات النقل والخدمة تحويل هذه الإخفاقات إلى نتائج مكتوبة خاصة بها. يتم تحديد مشكلات إعادة البناء بمعرفات الميزات بحيث يمكن إصلاح الفشل من مصدره بدلاً من إخفائه عن طريق الاحتفاظ بشبكة سابقة.
مصدر: packages/core/src/cad/sketch.test.ts, history.ts, scene-step.ts، و apps/sidecar/test/cad-exact.test.ts.
حل رسم خطوة بخطوة
الرسم عبارة عن بيانات بسيطة: مجموعة من entities (النقاط والخطوط والدوائر والأقواس) ومجموعة من constraints. تشير الخطوط والدوائر والأقواس إلى النقاط حسب المعرف، لذا يشترك الخطان اللذان يشتركان في نقطة النهاية في نفس معرف النقطة. يقوم الحل بتحريك إحداثيات النقطة وأنصاف أقطار الدائرة فقط؛ لا يضيف أو يزيل الكيانات أبدًا.
fully-constrained مع dof = 0.import { cad } from "@cadcamfun/core"
const sketch = {
entities: [
{ id: "p1", kind: "point", x: 0, y: 0 },
{ id: "p2", kind: "point", x: 38, y: 1 }, // rough positions are fine:
{ id: "p3", kind: "point", x: 39, y: 26 }, // the solver moves them
{ id: "p4", kind: "point", x: 1, y: 24 },
{ id: "l1", kind: "line", p1: "p1", p2: "p2" },
{ id: "l2", kind: "line", p1: "p2", p2: "p3" },
{ id: "l3", kind: "line", p1: "p3", p2: "p4" },
{ id: "l4", kind: "line", p1: "p4", p2: "p1" },
],
constraints: [
{ type: "fixed", point: "p1", x: 0, y: 0 },
{ type: "horizontal", line: "l1" },
{ type: "horizontal", line: "l3" },
{ type: "vertical", line: "l2" },
{ type: "vertical", line: "l4" },
{ id: "width", type: "length", line: "l1", value: 40 },
{ id: "depth", type: "length", line: "l2", value: 25 },
],
}
const result = cad.solveSketch(sketch)
result.status // "fully-constrained"
result.dof // 0
result.iterations // 3
result.residual // < 1e-9
// points now at (0,0) (40,0) (40,25) (0,25) قم بتشغيل نفس الرسم بدون fixed القيد وتتغير النتيجة إلى under-constrained مع dof = 2 و free = ["p1", "p2", "p3", "p4"]. لا يزال المستطيل بالحجم الصحيح، لكنه يمكن أن ينزلق إلى X وY. أضف طولًا ثالثًا، { id: "w2", type: "length", line: "l3", value: 50 }، ويصبح الوضع conflicting. conflicts ثم يسرد القيود المسماة التي لا يمكن تلبيتها معًا، الأسوأ أولاً (على سبيل المثال w2 و width). قم بتسمية القيود التي تهتم بها id; يتم الإبلاغ عن القيود غير المسماة بتسمية تم إنشاؤها مثل vertical#4.
| خيار | تقصير | معنى |
|---|---|---|
maxIterations | 200 | الحد الأعلى لتكرارات Levenberg-Marquardt قبل أن يتم الإبلاغ عن الحل على أنه failed. |
tolerance | 1e-9 | أكبر ما تبقى مطلقًا تم قبوله على أنه تم حله. |
| حقل النتيجة | محتوى |
|---|---|
sketch | رسم الإدخال مع الإحداثيات ونصف القطر التي تم حلها. |
status | fully-constrained, under-constrained, over-constrained, conflicting، أو failed. |
dof | درجات الحرية المتبقية. |
free | معرفات النقاط التي لا يزال بإمكانها التحرك، ومعرفات الدوائر التي لا يزال من الممكن تغيير نصف قطرها. |
conflicts | معرفات القيد التي لا يمكن تلبيتها، الأسوأ أولاً. |
redundant | عدد المعادلات الزائدة عن الحاجة (نقص الرتبة). |
iterations, residual, message | تشخيص الحلال. |
رميات المدخلات المشوهة
الرسم الذي يشير إلى نقطة أو كيان غير معروف يكون مشوهًا وليس غير قابل للحل، و solveSketch يلقي أ SketchError. التحقق من صحة الرسومات المستوردة قبل حلها في حلقة.
مرجع القيد
كل قيد هو كائن ذو type واختياري id. الأطوال هي ملليمترات والزوايا هي راديان. في التاريخ البارامترى، أي value قد تكون أيضًا سلسلة تعبير معلمة.
| يكتب | الحقول | Effect |
|---|---|---|
fixed | point، خياري x, y | يقوم بتثبيت نقطة، بشكل اختياري، على الإحداثيات الصريحة. |
coincident | a, b | نقطتان تحتل نفس الموقف. |
horizontal / vertical | line | الخط الموازي لـ X/Y. |
horizontalPoints / verticalPoints | a, b | نقطتان تشتركان في إحداثيات Y / X. |
distance | a, b, value | المسافة الإقليدية بين نقطتين. |
distanceX / distanceY | a, b, value | وقعت الإزاحة الأفقية / الرأسية. |
length | line, value | طول الخط. |
parallel / perpendicular | a, b | العلاقة بين خطين. |
equalLength / equalRadius | a, b | أطوال الخطوط المتساوية / دائرة أو نصف قطر قوس. |
radius / diameter | circle, value | حجم الدائرة أو القوس. |
angle | a, b, value | زاوية عكس اتجاه عقارب الساعة من الخط a إلى الخط b، بالراديان. |
pointOnLine / pointOnCircle | point و line / circle | التقاطع. |
midpoint | point, line | توجد نقطة في منتصف السطر. |
symmetric | a, b, line | نقطتان تعكسان بعضهما البعض حول خط مستقيم. |
tangentLineCircle | line, circle | خط يمس دائرة أو قوس. |
tangentCircles | a, b، خياري internal | Circles touch externally (distance = r1 + r2) or internally (distance = |r1 − r2|). |
concentric | a, b | مركز مشترك للدوائر أو الأقواس. |
الأقواس هي عكس اتجاه عقارب الساعة من start إلى end عن center. نصف قطر الدائرة هو متغير حل، لذا فإن الدائرة التي لا تحتوي على radius, diameter, equalRadius، أو يظهر قيد التماس في free.
بناء جزء حدودي
A History عبارة عن جدول معلمات بالإضافة إلى قائمة ميزات مرتبة. المعلمات هي أرقام أو تعبيرات لمعلمات أخرى. يتم حلها بترتيب التبعية، والدورة هي خطأ يقوم بتسمية الحلقة. تشير الميزات إلى المعلمات بالاسم في أي حقل بُعد.
import { cad } from "@cadcamfun/core"
const history = {
parameters: { width: 40, depth: 25, thick: 8, hole: "width / 8" },
features: [
// the rectangle sketch from the previous section, with dimension
// values replaced by parameter names: value: "width", value: "depth"
{ id: "s1", type: "sketch", plane: "XY", sketch: rectangleSketch },
{ id: "e1", type: "extrude", sketch: "s1", depth: "thick", operation: "new" },
{ id: "h1", type: "hole", plane: "XY", offset: "thick",
at: [20, 12.5], diameter: "hole", depth: "thick" },
],
}
const mesh = cad.rebuild(history)
mesh.parameters // { width: 40, depth: 25, thick: 8, hole: 5 }
mesh.bodies // one mesh body, id "e1"
mesh.issues // []
const exact = cad.rebuildExact(history, mesh)
exact.bodies[0].brep // present: the history has an exact representation
exact.warnings // []
cad.brep.massProperties(exact.bodies[0].brep).volume // 7842.92… mm³
cad.brep.validateBrep(exact.bodies[0].brep).valid // true rebuild يعود bodies (الشبكات المثلثية التي تم مفتاحها بواسطة الميزة التي أنشأتها)، تم حلها parameters، مستوى كل رسم، وإطاره، ونتيجة الحل، والأنماط المسطحة لميزات الصفائح المعدنية، و issues. يتم الإبلاغ عن الميزة التي لا يمكن إنشاؤها issues بمعرف الميزة وشدتها، ويتم تخطيها. الميزات التي لا تعتمد عليها لا تزال تُبنى. rebuildExact(history, given?, options?) يمكنه إعادة استخدام إعادة بناء الشبكة الموجودة لديك بالفعل، ويقبل budgetMs ميزانية الوقت.
الطائرات الأساسية هي اليد اليمنى: XY لديه u = X، v = Y، عادي +Z؛ YZ لديه u = Y، v = Z، عادي +X؛ ZX لديه u = Z، v = X، عادي +Y. يمكن أيضًا وضع رسم أو ثقب أو نص على معرف سابق plane ميزة، مع offset على طول العادي.
| ميزة | الحقول الرئيسية والافتراضيات |
|---|---|
sketch | plane، خياري offset, sketch (الكيانات، القيود، المعلمة الاختيارية shapes: مستطيل، دائرة، مضلع، قطع ناقص، فتحة، خط متعدد). |
extrude | sketch, depth, direction up/down/symmetric, operation new/union/subtract/intersect، خياري targets (الافتراضي: كل الهيئات حتى الآن)، edge الشطب/شرائح الوجوه النهائية (ends تقصير both), corner العلاج، و taper مشروع بالدرجات. الحلقات الموجودة داخل الحلقات عبارة عن ثقوب (زوجية وفردية). |
revolve | sketch, axis (x, yأو خط رسم) angle بالدرجات (الافتراضي 360)، operation. |
hole | plane, offset, at [u, v], diameter, depth; kind simple (تقصير)، counterbore، أو countersink مع headDiameter, headDepth، و angle (الافتراضي 90°). مستحضرات التجميل الاختيارية thread ملاحظة (على سبيل المثال M4), toleranceو ISO 286 fit مثل H7. الخيط التجميلي لا يغير الهندسة. |
pattern, mirror | نسخ من أداة ميزة سابقة، يتم تطبيقها بنفس الطريقة. |
sweep, loft, coil | ملفات التعريف على طول المسار، أو بين الأقسام، أو على طول الحلزون. |
shell, fillet, draft, pushpull | تعديلات الوجه والحافة. |
move, scale, split, combine | عمليات الجسم. |
rib, sheet, thread, text | أضلاع، وأجسام من الصفائح المعدنية ذات أنماط مسطحة، وخيوط نموذجية، ونص بخط السكتة الدماغية. |
plane, primitive, mate | طائرات البناء، والمواد الصلبة البدائية، وتزاوج التجميع. |
تحرير التاريخ، وليس الجسم
تغيير المعلمة وإعادة البناء: يتم إعادة حل كل رسم تخطيطي يستخدمه وكل مادة صلبة ومنطقية بعد إعادة بنائه. يتم فقدان تحرير الشبكة التي تم إنشاؤها مباشرة في عملية إعادة البناء التالية.
البدائيات الدقيقة والتنسيب
تقوم نواة B-rep ببناء المواد الصلبة التحليلية مباشرة. يأخذ كل منشئ موضعًا اختياريًا Frame; بدون واحد، يتم وضع المادة الصلبة في الإطار العالمي.
| منشئ | الحجج | وضع العالم |
|---|---|---|
makeBox(dx, dy, dz, placement?) | أطوال الحافة مم | الحد الأدنى من الزاوية في الأصل. |
makeCylinder(radius, height, placement?) | نصف القطر والارتفاع | مخروط ذو أنصاف أقطار متساوية؛ المحور على طول Z. |
makeCone(r1, r2, height, placement?) | نصف القطر الأساسي والعلوي | المحور على طول Z. |
makeSphere(radius, placement?) | نصف القطر | تتمحور حول الأصل. |
makeTorus(major, minor, placement?) | نصف قطر الحلقة والأنبوب | المحور على طول Z. |
يجب أن تكون الأبعاد إيجابية ومحدودة؛ وإلا فإن المنشئين يرتكبون خطأ في النطاق. يجري validateBrep على أي شيء تقوم بإنشائه من القيم المنطقية أو عمليات المسح أو الواردات قبل الوثوق في الحجم أو نتائج التصدير. البدائية مباشرة من المنشئ صالحة بالبناء.
ممارسات النمذجة التي تعيد البناء بشكل موثوق
- قم بإصلاح نقطة واحدة وتقييد الاتجاه قبل إضافة الأبعاد. يمكن للرسم غير المقيد أن يلبي كل الأبعاد ويستمر في التحرك في عملية إعادة البناء التالية.
- أعط كل البعد الذي يواجه المستخدم
idلذا فإن تقرير التعارض يذكر شيئًا يتعرف عليه الشخص. - تفضل المعلمات والتعبيرات (
"width / 2 + 3","max(a, b) * 2") على الحروف المتكررة؛ تحرير واحد ثم يقود الجزء بأكمله. - قم بالإشارة إلى الميزات السابقة حسب المعرف فقط بعد وجودها في القائمة. يمكن أن تؤدي إعادة ترتيب السجل إلى تحويل مرجع صالح إلى مشكلة.
- يستخدم
targetsعلى القيم المنطقية عندما يكون للجزء عدة أجسام. يطبق الوضع الافتراضي العملية على كل جسم تم بناؤه حتى الآن. - يفحص
issuesبعد كلrebuildوالجسم الواحدbrepحضور بعدrebuildExactقبل الاعتماد على خصائص الكتلة الدقيقة أو تصدير STEP. - احتفظ بالوحدات بالملليمتر والراديان داخل الرسومات. يتم توثيق الحقول ذات القيمة الدرجة على هذا النحو (زاوية الدوران، المستدقة، الزاوية الغاطسة).
وصفات التصميم
cad.buildRecipe(name, input) يحول بعض المدخلات الهندسية إلى تاريخ بارامتري كامل، بالإضافة إلى ملخص من سطر واحد، والأرقام المشتقة وقواعد التصميم التي أنتجتها. توجد سبع وصفات. يتم اشتقاق المعلمات بدون افتراضي من المعلمات الأخرى عند حذفها.
| اسم | عنوان | المعلمات (الافتراضية) |
|---|---|---|
mounting_plate | لوحة التركيب | width=100, depth=60, thickness=10, fastener=M8, fit=medium, counterbore=false, cornerRadius=0, edgeChamfer=0, edgeDistance |
flange | شفة انسحب | outerDiameter=120, boreDiameter=40, thickness=14, boltCount=6, fastener=M10, fit=medium, boltCircleDiameter, hubDiameter=0, hubHeight=0, edgeChamfer=0 |
l_bracket | قوس L | baseLength=60, legHeight=50, thickness=5, width=40, fastener=M6, fit=medium, holesPerLeg=1, cornerRadius=0 |
stepped_shaft | رمح متدرج | الأقسام، الشطب=1، keywaySection=-1، طول المفتاح |
pipe_bend | كوع الأنابيب | outerDiameter=30, wall=3, legA=100, legB=100, bendAngle=90, bendRadius |
duct_transition | انتقال القناة | shape=rect, width1=80, height1=50, width2=40, height2=40, length=120, wall=2 |
enclosure | الضميمة | length=120, width=80, height=40, wall=3, floor, cornerRadius=6, fastener=M3, bosses=true |
import { cad } from "@cadcamfun/core"
const recipe = cad.buildRecipe("mounting_plate", { width: 100, depth: 60, thickness: 10, fastener: "M8" })
recipe.summary // "100 x 60 x 10 mm plate with four holes for M8 screws (Ø9 mm, medium fit)"
recipe.derived // { holeDiameter: 9, edgeDistance: 18, holeSpacingX: 64, holeSpacingY: 24 }
recipe.rules // ["hole diameter from ISO 273",
// "centre to edge >= 1.5 x hole diameter",
// "centre to centre >= 2.5 x hole diameter"]
recipe.history.parameters // { width: 100, depth: 60, thick: 10, hole: 9, inset: 18 }
// features: sketch "outline", extrude "plate", holes hole_sw, hole_se, hole_ne, hole_nw
// placed at ["inset","inset"], ["width - inset","inset"], …
const mesh = cad.rebuild(recipe.history) // issues: []
const exact = cad.rebuildExact(recipe.history, mesh)
cad.brep.massProperties(exact.bodies[0].brep).volume // 57455.31 mm³ = 60000 − 4·π·4.5²·10 السجل عادي: يمكنك فتحه في المحرر وتغيير المعلمة وإعادة البناء. الوصفة اختارت أرقاما معقولة فقط.
التروس الملتفة
const spec = { moduleValue: 2, teeth: 18 } // pressureAngle defaults to 20°
cad.gearDimensions(spec)
// { pitchRadius: 18, baseRadius: 16.914, tipRadius: 20, rootRadius: 15.5 }
const outline = cad.gearOutline(spec, 6) // 324 points, 6 per flank
cad.gearOutline({ moduleValue: 2, teeth: 5 })
// throws: 'A gear needs a module > 0 and at least 6 whole teeth' | البعد | صيغة | m = 2, z = 18 |
|---|---|---|
| نصف قطر الملعب | m·z / 2 | 18 |
| نصف قطر الحافة | الملعب + م | 20 |
| نصف قطر الجذر | الملعب − 1.25·م | 15.5 |
| نصف القطر الأساسي | الملعب · كوس α | 16.914 |
MIN_GEAR_TEETH هو 6: أسفل ذلك، تقطع الجوانب دائرة القاعدة وتتداخل الأسنان المجاورة.
السحابة وتناسب البيانات
| مقاس | يقذف | اضغط على الحفر | الخلوص ناعم / متوسط / خشن | الرأس Ø × ح | كونتربور Ø × العمق | غاطسة Ø |
|---|---|---|---|---|---|---|
| M3 | 0.5 | 2.5 | 3.2 / 3.4 / 3.6 | 5.5 × 3 | 6.5 × 3.4 | 6 |
| M5 | 0.8 | 4.2 | 5.3 / 5.5 / 5.8 | 8.5 × 5 | 10 × 5.7 | 10 |
| M6 | — | 5 | 6.4 / 6.6 / 7 | — | — | — |
| M8 | 1.25 | 6.8 | 8.4 / 9 / 10 | 13 × 8 | 15 × 9 | 16 |
| M12 | 1.75 | 10.2 | 13 / 13.5 / 14.5 | 18 × 12 | 20 × 13 | 24 |
القيم تأتي من cad.metricThread(size), clearanceHole(size, fit) و tapDrill(size); تم الاستعلام عن الصف M6 من خلال المساعدين اثنين فقط. القواعد ذات الصلة، مع نتائج حقيقية للمسمار M6 وفتحة الخلوص Ø6.6:
| المساعد | نتيجة |
|---|---|
threadEngagement("M6", material) | فولاذ 6، ألومنيوم 9، مصبوب 12، بلاستيك 12 ملم |
tappedHoleDepth("M6", 12) | 15.8 مم |
minEdgeDistance(6.6) / (6.6, "plastic") | 9.9 / 13.2 مم |
minHoleSpacing(6.6) | 16.5 مم (2.5 × القطر) |
keywayFor(25) | أكثر من 22 حتى 30: ب 8، ح 7، ر1 4، ر2 3.3 |
toleranceGrade(7, 25) / (6, 25) | 21 / 13 µm |
| ملائم | عطوف | حالة الاستخدام |
|---|---|---|
| H7/h6 | الموقع (انزلاق) | يتم تجميع الأجزاء يدويًا وتحديد موقعها بدقة، والصنابير المنزلقة، والبطانات التوجيهية |
| H7/g6 | تشغيل قريب | التوجيه الدقيق للأجزاء المتحركة والمغازل والصمامات المنزلقة |
| H7/f7 | جري | محامل عادية، مهاوي في بناء الآلات العامة |
| H7/k6 | انتقال | يتم تشغيل التروس والبكرات وحلقات المحامل الداخلية بضغطة خفيفة |
| H7/n6 | التدخل (الضغط الخفيف) | البطانات والمحاور مضغوطة ؛ لا حاجة لمفتاح لعزم الدوران الصغير |
| H7/p6 | تدخل (صحافة) | الضغط الدائم على البطانات في العلب |