Bitbybit Docs
    Preparing search index...

    Class OCCTFace

    الأوجه في OpenCascade: أجزاء محدودة من سطح، مسطحة أو منحنية، بسلك حد خارجي وأسلاك داخلية اختيارية تصنع الثقوب. ابنها من أسلاك أو أسطح، أو كأشكال مسطحة جاهزة (الدوائر والمستطيلات والنجوم ومقاطع العوارض) تقع على المستوى الأرضي ما لم يقل direction غير ذلك؛ وامش على سطحها عبر معلمات UV للحصول على نقاط ونواظم وشبكات أسلاك؛ واقطع أنماط ثقوب فيها؛ وقس المساحة ومركز الكتلة. U و V هما اتجاها السطح، معطيان هنا ككسور من 0 إلى 1 من نطاق الوجه الخاص. تتصل الأوجه حافة بحافة في قشور، وهو ما يتعامل معه shapes.shell.

    Index

    Constructors

    beam profiles

    • ينشئ المقطع العرضي المسطح لعارضة على شكل I: شفتان أفقيتان متصلتان بجسر عمودي.

      width هو عرض الشفة، و height الارتفاع الإجمالي، و webThickness و flangeThickness سمكا الجدران؛ و alignment يحدد أي نقطة من صندوق المقطع تقع على center، و rotation يدوّره في مستواه، بالدرجات. يقع على الأرض، جاهزاً للبثق على طول Y.

      Parameters

      • inputs: IBeamProfileDto

        حجم المقطع والسمكان والمحاذاة والتدوير والمركز وناظم المستوى

      Returns Promise<TopoDSFacePointer>

      وجه مقطع عارضة I

      const profile = await bitbybit.occt.shapes.face.createIBeamProfileFace({
      width: 10,
      height: 20,
      webThickness: 2,
      flangeThickness: 3,
      alignment: Bit.Inputs.Base.basicAlignmentEnum.midMid,
      rotation: 0,
      center: [0, 0, 0],
      direction: [0, 1, 0],
      });
      const beam = await bitbybit.occt.operations.extrude({ shape: profile, direction: [0, 100, 0] });
    • ينشئ المقطع العرضي المسطح لعارضة على شكل H: شفتان عموديتان متصلتان بجسر أفقي، أي عارضة I على جانبها.

      width هو العرض الإجمالي، و height ارتفاع الشفة، و webThickness و flangeThickness سمكا الجدران؛ و alignment يحدد أي نقطة من صندوق المقطع تقع على center، و rotation يدوّره في مستواه، بالدرجات. يقع على الأرض.

      Parameters

      • inputs: HBeamProfileDto

        حجم المقطع والسمكان والمحاذاة والتدوير والمركز وناظم المستوى

      Returns Promise<TopoDSFacePointer>

      وجه مقطع عارضة H

      const profile = await bitbybit.occt.shapes.face.createHBeamProfileFace({
      width: 20,
      height: 10,
      webThickness: 2,
      flangeThickness: 3,
      alignment: Bit.Inputs.Base.basicAlignmentEnum.midMid,
      rotation: 0,
      center: [0, 0, 0],
      direction: [0, 1, 0],
      });
    • ينشئ المقطع العرضي المسطح لعارضة على شكل T: شفة أفقية بجسر عمودي متدلٍّ من منتصفها.

      width هو عرض الشفة، و height الارتفاع الإجمالي، و webThickness و flangeThickness سمكا الجدران؛ و alignment يحدد أي نقطة من صندوق المقطع تقع على center، و rotation يدوّره في مستواه، بالدرجات. يقع مسطحاً على الأرض.

      Parameters

      • inputs: TBeamProfileDto

        حجم المقطع والسمكان والمحاذاة والتدوير والمركز وناظم المستوى

      Returns Promise<TopoDSFacePointer>

      وجه مقطع عارضة T

      const profile = await bitbybit.occt.shapes.face.createTBeamProfileFace({
      width: 10,
      height: 12,
      webThickness: 2,
      flangeThickness: 2,
      alignment: Bit.Inputs.Base.basicAlignmentEnum.midMid,
      rotation: 0,
      center: [0, 0, 0],
      direction: [0, 1, 0],
      });
    • ينشئ المقطع العرضي المسطح لعارضة على شكل U، أي قناة: جسر بشفتين بعرض flangeWidth قائمتين من طرفيه.

      width و height هما الحجم الإجمالي، و webThickness و flangeThickness سمكا الجدران؛ و alignment يحدد أي نقطة من صندوق المقطع تقع على center، و rotation يدوّره في مستواه، بالدرجات. يقع مسطحاً على الأرض.

      Parameters

      • inputs: UBeamProfileDto

        حجم المقطع والسماكات وعرض الشفة والمحاذاة والتدوير والمركز وناظم المستوى

      Returns Promise<TopoDSFacePointer>

      وجه مقطع عارضة U

      const profile = await bitbybit.occt.shapes.face.createUBeamProfileFace({
      width: 10,
      height: 6,
      webThickness: 1,
      flangeThickness: 1,
      flangeWidth: 3,
      alignment: Bit.Inputs.Base.basicAlignmentEnum.midMid,
      rotation: 0,
      center: [0, 0, 0],
      direction: [0, 1, 0],
      });

    debug

    • يجمع حقائق تشخيصية عن وجه: نوع سطحه، ودرجتا U و V، وعدد نقاط التحكم والعقد، وما إذا كان U أو V مغلقاً أو دورياً أو كسرياً، وحدود UV، والمساحة، والاستواء، والتوجيه وعدد الأسلاك والحواف.

      الوجه الفارغ أو null يعطي تقريراً معلّماً كغير صالح.

      Parameters

      Returns Promise<FaceDebugInfo>

      التقرير

      const info = await bitbybit.occt.shapes.face.debugInfo({ shape: face });
      console.log(info.type, info.isPlanar, info.area);

    extract

    • يضع شبكة من النقاط على وجه بالتقدم بانتظام عبر مدييه U و V.

      nrDivisionsU في nrDivisionsV نقطة تغطي الوجه من حافة إلى حافة، مسرودة صفاً بصف: كل قيم V لأول U، ثم U التالية. أعلام الإزالة تحذف الصف الأول أو الأخير؛ وأعلام الإزاحة تدفع كل نقطة نصف خطوة.

      Parameters

      Returns Promise<Point3[]>

      النقاط، صفا صفا

      const points = await bitbybit.occt.shapes.face.subdivideToPoints({
      shape: face,
      nrDivisionsU: 10,
      nrDivisionsV: 5,
      shiftHalfStepU: false,
      removeStartEdgeU: false,
      removeEndEdgeU: false,
      shiftHalfStepV: false,
      removeStartEdgeV: false,
      removeEndEdgeV: false,
      });
    • يرسم أسلاكاً متباعدة بانتظام عبر وجه على طول اتجاه معلمة واحد، مثل خطوط ورقة مسطرة.

      nrDivisions خطوة تعطي سلكاً واحداً أكثر من ذلك، بما في ذلك خطوط الحدود؛ و removeStart و removeEnd يحذفانها، و shiftHalfStep ينقل كل سلك نصف خطوة. مع isU بقيمة true يقع كل سلك عند U ثابتة ويمتد عبر V؛ و false تبدّل الأدوار.

      Parameters

      Returns Promise<TopoDSWirePointer[]>

      الأسلاك، بالترتيب على طول الاتجاه المختار

      const lines = await bitbybit.occt.shapes.face.subdivideToWires({ shape: face, nrDivisions: 10, isU: true, shiftHalfStep: false, removeStart: false, removeEnd: false });
      
    • يضع شبكة من النقاط على وجه مثل subdivideToPoints، لكنه يزيح ويزيل النقاط في كل صف أو عمود رقم n، للأنماط الشبيهة بالطوب والمتعرجة.

      كل قاعدة زوج: shiftHalfStepNthU يحدد كل كم صف V ينتقل نصف خطوة في U، و shiftHalfStepUOffsetN من أين يبدأ العدّ؛ وقواعد الإزالة تحذف كل نقطة رقم n من صف حافة.

      Parameters

      Returns Promise<Point3[]>

      النقاط، صفا صفا

      const staggered = await bitbybit.occt.shapes.face.subdivideToPointsControlled({
      shape: face,
      nrDivisionsU: 10,
      nrDivisionsV: 10,
      shiftHalfStepNthU: 2,
      shiftHalfStepUOffsetN: 0,
      removeStartEdgeNthU: 0,
      removeStartEdgeUOffsetN: 0,
      removeEndEdgeNthU: 0,
      removeEndEdgeUOffsetN: 0,
      shiftHalfStepNthV: 0,
      shiftHalfStepVOffsetN: 0,
      removeStartEdgeNthV: 0,
      removeStartEdgeVOffsetN: 0,
      removeEndEdgeNthV: 0,
      removeEndEdgeVOffsetN: 0,
      });
    • يحسب ناظم السطح عند كل نقطة من الشبكة التي كان subdivideToPoints سيضعها على وجه، بالخيارات نفسها والترتيب نفسه.

      النواظم متجهات وحدة وتتبع توجيه الوجه، لذا يعطيها الوجه المعكوس مقلوبة. اقرن القائمة بـ subdivideToPoints لوضع أشياء قائمة على السطح.

      Parameters

      Returns Promise<Vector3[]>

      النواظم الوحدوية، صفا صفا

      const normals = await bitbybit.occt.shapes.face.subdivideToNormals({
      shape: face,
      nrDivisionsU: 10,
      nrDivisionsV: 5,
      shiftHalfStepU: false,
      removeStartEdgeU: false,
      removeEndEdgeU: false,
      shiftHalfStepV: false,
      removeStartEdgeV: false,
      removeEndEdgeV: false,
      });
    • يسرد أزواج معلمات UV للشبكة التي كان subdivideToPoints سيضعها على وجه، بالخيارات نفسها والترتيب نفسه.

      الأزواج بقيم UV الحقيقية للوجه، لا كسوراً.

      Parameters

      Returns Promise<Point2[]>

      أزواج UV، صفا صفا

      const uvs = await bitbybit.occt.shapes.face.subdivideToUV({
      shape: face,
      nrDivisionsU: 10,
      nrDivisionsV: 5,
      shiftHalfStepU: false,
      removeStartEdgeU: false,
      removeEndEdgeU: false,
      shiftHalfStepV: false,
      removeStartEdgeV: false,
      removeEndEdgeV: false,
      });
    • يجد النقطة على وجه عند كسور UV المعطاة.

      paramU و paramV يمتدان من 0 إلى 1 على مدى U و V للوجه، لذا فإن 0.5, 0.5 هو منتصف المدى، الذي لا يكون دائماً داخل الوجه في الوجه المقلّم.

      Parameters

      Returns Promise<Point3>

      النقطة على السطح

      const middle = await bitbybit.occt.shapes.face.pointOnUV({ shape: face, paramU: 0.5, paramV: 0.5 });
      
    • يجد ناظم السطح لوجه عند كسور UV المعطاة.

      paramU و paramV يمتدان من 0 إلى 1 على مدى U و V للوجه. الناظم متجه وحدة ويتبع توجيه الوجه، لذا يعطيه الوجه المعكوس مقلوباً.

      Parameters

      Returns Promise<Vector3>

      الناظم الوحدوي

      const normal = await bitbybit.occt.shapes.face.normalOnUV({ shape: face, paramU: 0.5, paramV: 0.5 });
      
    • يجد النقاط على وجه عند عدة أزواج من كسور UV دفعة واحدة.

      يحمل كل زوج U ثم V، كلاهما من 0 إلى 1 على مدى الوجه.

      Parameters

      Returns Promise<Point3[]>

      نقطة واحدة لكل زوج، بالترتيب نفسه

      const points = await bitbybit.occt.shapes.face.pointsOnUVs({ shape: face, paramsUV: [[0, 0], [0.5, 0.5], [1, 1]] });
      
    • يجد نواظم السطح لوجه عند عدة أزواج من كسور UV دفعة واحدة.

      يحمل كل زوج U ثم V، كلاهما من 0 إلى 1 على مدى الوجه. النواظم متجهات وحدة للسطح الأساسي؛ وبخلاف normalOnUV، لا تُقلب للوجه المعكوس.

      Parameters

      Returns Promise<Vector3[]>

      ناظم وحدوي واحد لكل زوج، بالترتيب نفسه

      const normals = await bitbybit.occt.shapes.face.normalsOnUVs({ shape: face, paramsUV: [[0, 0], [0.5, 0.5], [1, 1]] });
      
    • يضع نقاطاً متباعدة بانتظام على طول خط مستقيم واحد عبر مدى UV لوجه.

      مع isU بقيمة true يقع الخط عند param (كسر من 0 إلى 1 من مدى U) وتنتشر nrPoints نقطة على مدى V كاملاً؛ ومع false تتبدل الأدوار. removeStartPoint و removeEndPoint يحذفان الطرفين، و shiftHalfStep ينقل كل نقطة نصف خطوة.

      Parameters

      Returns Promise<Point3[]>

      النقاط على طول الخط، بالترتيب

      const midline = await bitbybit.occt.shapes.face.subdivideToPointsOnParam({ shape: face, isU: true, param: 0.5, nrPoints: 10, shiftHalfStep: false, removeStartPoint: false, removeEndPoint: false });
      
    • يرسم سلكاً واحداً عبر وجه على طول خط معلمة، متبعاً السطح.

      مع isU بقيمة true يقع السلك عند param (كسر من 0 إلى 1 من مدى U) ويمتد على مدى V كاملاً؛ ومع false تتبدل الأدوار.

      Parameters

      Returns Promise<TopoDSWirePointer>

      السلك على السطح

      const middle = await bitbybit.occt.shapes.face.wireAlongParam({ shape: face, isU: true, param: 0.5 });
      
    • يرسم عدة أسلاك عبر وجه، واحداً لكل قيمة معلمة، متبعة السطح.

      مع isU بقيمة true يقع كل سلك عند كسره من مدى U ويمتد على مدى V كاملاً؛ ومع false تتبدل الأدوار.

      Parameters

      Returns Promise<TopoDSWirePointer[]>

      سلك واحد لكل كسر، بالترتيب نفسه

      const wires = await bitbybit.occt.shapes.face.wiresAlongParams({ shape: face, isU: false, params: [0.25, 0.5, 0.75] });
      

    filter

    • يصنف النقاط على أنها داخل وجه أو على حده أو خارجه، ويحتفظ بالمجموعات المختارة.

      keepIn و keepOn و keepOut و keepUnknown تختار المجموعات؛ و tolerance يقرر مدى القرب من الحد الذي يُعد واقعاً عليه. مع useBndBox، النقطة الواقعة خارج الصندوق المحيط الموسع بـ gapTolerance تُعد خارجه.

      Parameters

      • inputs: FilterFacePointsDto<TopoDSFacePointer>

        الوجه والنقاط والتفاوت واختصار الصندوق المحيط والمجموعات المراد الاحتفاظ بها

      Returns Promise<Point3[]>

      النقاط التي اجتازت الترشيح، بترتيبها الأصلي

      const onFace = await bitbybit.occt.shapes.face.filterFacePoints({
      shape: face,
      points: grid,
      tolerance: 1e-4,
      useBndBox: false,
      gapTolerance: 0.1,
      keepIn: true,
      keepOn: true,
      keepOut: false,
      keepUnknown: false,
      });
    • يشغّل filterFacePoints ضد عدة أوجه بالنقاط والخيارات نفسها.

      افتراضياً يحمل الناتج قائمة واحدة لكل وجه؛ ومع flatPointsArray بقيمة true تُضم القوائم في واحدة، بحيث تظهر النقطة الواقعة على وجهين مرتين.

      Parameters

      • inputs: FilterFacesPointsDto<TopoDSFacePointer>

        الأوجه والنقاط والتفاوت والمجموعات المراد الاحتفاظ بها وما إذا كان يسطح النتيجة

      Returns Promise<Point3[] | Point3[][]>

      قائمة نقاط واحدة لكل وجه، أو قائمة واحدة موحدة

      const perFace = await bitbybit.occt.shapes.face.filterFacesPoints({
      shapes: faces,
      points: grid,
      tolerance: 1e-4,
      useBndBox: false,
      gapTolerance: 0.1,
      keepIn: true,
      keepOn: true,
      keepOut: false,
      keepUnknown: false,
      flatPointsArray: false,
      });

    from

    • ينشئ وجهاً واحداً لكل سلك، كل منها مقتطع من سطح وجه موجّه بحيث يأخذ انحناء ذلك السطح.

      يجب أن تقع الأسلاك على السطح. مع inside بقيمة true يُدار كل سلك بحيث يكون وجهه المنطقة التي يحيط بها؛ ومع false يقرر اتجاه السلك نفسه، والسلك الممتد في الاتجاه الآخر يعطي المنطقة الخارجية.

      Parameters

      Returns Promise<TopoDSFacePointer[]>

      وجه واحد لكل سلك، بالترتيب نفسه

      const patches = await bitbybit.occt.shapes.face.createFacesFromWiresOnFace({ wires: circlesOnSphere, face: sphereFace, inside: true });
      
    • ينشئ وجهاً من سلك يقع على سطح وجه موجّه، بحيث يأخذ الوجه الجديد انحناء ذلك السطح.

      مع inside بقيمة true يُدار السلك بحيث يكون الوجه المنطقة التي يحيط بها؛ ومع false يقرر اتجاه السلك نفسه، والسلك الممتد في الاتجاه الآخر يعطي المنطقة الواقعة خارجه.

      Parameters

      Returns Promise<TopoDSFacePointer>

      الوجه الجديد

      const patch = await bitbybit.occt.shapes.face.createFaceFromWireOnFace({ wire: circleOnCylinder, face: cylinderFace, inside: true });
      
    • ينشئ وجهاً محدوداً بسلك مغلق.

      مع planar بقيمة true يجب أن يقع السلك في مستوى واحد ويكون الوجه مسطحاً؛ ومع false يُقرَّب سطح ناعم عبر حواف السلك، وهو ما يملأ سلكاً غير مسطح. الشكل الذي ليس سلكاً يرمي خطأ.

      Parameters

      Returns Promise<TopoDSFacePointer>

      الوجه الجديد

      const wire = await bitbybit.occt.shapes.wire.createCircleWire({ radius: 5, center: [0, 0, 0], direction: [0, 1, 0] });
      const disc = await bitbybit.occt.shapes.face.createFaceFromWire({ shape: wire, planar: true });
    • ينشئ وجهاً واحداً من عدة أسلاك: السلك الأول هو الحد الخارجي وكل سلك إضافي يقطع ثقباً فيه.

      مع planar بقيمة true يجب أن تقع الأسلاك في مستوى واحد. يجب أن تقع أسلاك الثقوب داخل السلك الخارجي دون أن تتقاطع معه أو مع بعضها.

      Parameters

      Returns Promise<TopoDSFacePointer>

      الوجه ذو الثقوب

      const outer = await bitbybit.occt.shapes.wire.createRectangleWire({ width: 20, length: 10, center: [0, 0, 0], direction: [0, 1, 0] });
      const hole = await bitbybit.occt.shapes.wire.createCircleWire({ radius: 2, center: [0, 0, 0], direction: [0, 1, 0] });
      const plate = await bitbybit.occt.shapes.face.createFaceFromWires({ shapes: [outer, hole], planar: true });
    • ينشئ وجهاً واحداً من عدة أسلاك على سطح وجه موجّه: السلك الأول هو الحد الخارجي وكل سلك إضافي يقطع ثقباً.

      يأخذ الوجه انحناء السطح الموجّه. inside ينطبق على السلك الأول: القيمة true تديره بحيث يكون الوجه المنطقة التي يحيط بها؛ و false تدع اتجاهه الخاص يقرر.

      Parameters

      Returns Promise<TopoDSFacePointer>

      الوجه ذو الثقوب

      const perforated = await bitbybit.occt.shapes.face.createFaceFromWiresOnFace({ wires: [outerOnCylinder, holeOnCylinder], face: cylinderFace, inside: true });
      
    • ينشئ وجهاً واحداً لكل سلك مغلق، كل منها كما يفعل createFaceFromWire.

      مع planar بقيمة true يجب أن يقع كل سلك في مستوى؛ ومع false يُقرَّب سطح ناعم عبر كل منها.

      Parameters

      Returns Promise<TopoDSFacePointer[]>

      وجه واحد لكل سلك، بالترتيب نفسه

      const faces = await bitbybit.occt.shapes.face.createFacesFromWires({ shapes: wires, planar: true });
      
    • يصل الدوائر بأحزمة مماسة: لكل زوج يرسم خطي المماس الخارجيين والقوسين الخارجيين بينهما ويملأ ذلك المخطط بوجه مسطح.

      combination يختار الأزواج: allWithAll كل دائرة مع كل الأخرى، و inOrder الجيران في القائمة، و inOrderClosed الأخيرة مع الأولى أيضاً. unify يدمج الأوجه؛ وإلا تشكل مركباً.

      Parameters

      Returns Promise<TopoDSShapePointer>

      الشكل المدمج، أو مركب أوجه الأحزمة

      const a = await bitbybit.occt.shapes.wire.createCircleWire({ radius: 3, center: [0, 0, 0], direction: [0, 1, 0] });
      const b = await bitbybit.occt.shapes.wire.createCircleWire({ radius: 1, center: [10, 0, 0], direction: [0, 1, 0] });
      const c = await bitbybit.occt.shapes.wire.createCircleWire({ radius: 2, center: [5, 0, 8], direction: [0, 1, 0] });
      const belt = await bitbybit.occt.shapes.face.createFaceFromMultipleCircleTanWires({
      circles: [a, b, c],
      combination: Bit.Inputs.OCCT.combinationCirclesForFaceEnum.inOrderClosed,
      unify: true,
      tolerance: 1e-7,
      });
    • يصل الدوائر من قوائم متتالية بأحزمة مماسة، بالطريقة التي يصل بها createFaceFromMultipleCircleTanWires الدوائر المفردة.

      allWithAll يصل كل دائرة في قائمة بكل دائرة في التالية؛ و inOrder يصل الدوائر الواقعة في الموضع نفسه في القوائم المتجاورة، التي تحتاج أطوالاً متساوية؛ و inOrderClosed يغلق أيضاً كل قائمة في حلقة. unify يدمج الأوجه؛ وإلا تشكل مركباً.

      Parameters

      Returns Promise<TopoDSShapePointer>

      الشكل المدمج، أو مركب أوجه الأحزمة

      const mesh = await bitbybit.occt.shapes.face.createFaceFromMultipleCircleTanWireCollections({
      listsOfCircles: [bottomRow, middleRow, topRow],
      combination: Bit.Inputs.OCCT.combinationCirclesForFaceEnum.inOrderClosed,
      unify: true,
      tolerance: 1e-7,
      });
    • ينشئ وجهاً يغطي سطحاً كاملاً، حتى الحدود الطبيعية للسطح.

      tolerance يُستخدم لاكتشاف الحواف المنحلة، مثل قطب الكرة. تأتي الأسطح من geom.surfaces.

      Parameters

      Returns Promise<TopoDSFacePointer>

      الوجه

      const face = await bitbybit.occt.shapes.face.faceFromSurface({ shape: surface, tolerance: 1e-7 });
      
    • ينشئ وجهاً بقطع سطح بسلك يقع عليه.

      مع inside بقيمة true يُدار السلك بحيث يكون الوجه المنطقة التي يحيط بها؛ ومع false يقرر اتجاه السلك نفسه، والسلك الممتد في الاتجاه الآخر يعطي المنطقة الواقعة خارجه. تأتي الأسطح من geom.surfaces.

      Parameters

      Returns Promise<TopoDSFacePointer>

      الوجه

      const patch = await bitbybit.occt.shapes.face.faceFromSurfaceAndWire({ surface, wire: wireOnSurface, inside: true });
      

    from base

    • ينشئ وجهاً مثلثياً مسطحاً من ثلاث نقاط.

      Parameters

      Returns Promise<TopoDSFacePointer>

      الوجه

      const face = await bitbybit.occt.shapes.face.fromBaseTriangle({ triangle: [[0, 0, 0], [10, 0, 0], [0, 0, 10]] });
      
    • ينشئ وجهاً مثلثياً مسطحاً واحداً لكل مثلث في شبكة.

      المثلث الذي لا يمكن أن يشكل وجهاً، مثلاً ذو النقاط المكررة، يُتخطى مع تحذير في وحدة التحكم.

      Parameters

      • inputs: MeshBaseDto

        الشبكة كقائمة من المثلثات

      Returns Promise<TopoDSFacePointer[]>

      وجه واحد لكل مثلث أمكن بناؤه

      const faces = await bitbybit.occt.shapes.face.fromBaseMesh({
      mesh: [[[0, 0, 0], [10, 0, 0], [0, 0, 10]], [[10, 0, 0], [10, 0, 10], [0, 0, 10]]],
      });

    get

    • يختار وجهاً واحداً من شكل حسب موضعه، بالعدّ من 0، بالترتيب الذي تجتاز به النواة الشكل.

      يجب أن يكون الشكل وجهاً أو شيئاً مبنياً من أوجه؛ والفهرس الذي يتجاوز الوجه الأخير يرمي خطأ.

      Parameters

      Returns Promise<TopoDSFacePointer>

      الوجه عند ذلك الفهرس

      const first = await bitbybit.occt.shapes.face.getFace({ shape: box, index: 0 });
      
    • يقلب وجهاً بحيث يشير ناظمه إلى الاتجاه الآخر.

      تبقى الهندسة كما هي؛ ولا يتغير سوى التوجيه، وهو ما يقرر الجانب الخارجي للقشرة والاتجاه الذي يبلّغ عنه normalOnUV.

      Parameters

      Returns Promise<TopoDSFacePointer>

      الوجه المقلوب

      const flipped = await bitbybit.occt.shapes.face.reversedFace({ shape: face });
      
    • يقرأ أصغر قيمة لمعلمة U لوجه، بوحدات السطح الخاصة.

      مع getUMaxBound و getVMinBound و getVMaxBound يعطي المدى الذي تُسقط عليه كسور UV المستخدمة في مواضع أخرى من هذا الصنف.

      Parameters

      Returns Promise<number>

      الحد الأدنى لـ U

      const uMin = await bitbybit.occt.shapes.face.getUMinBound({ shape: face });
      
    • يقرأ أكبر قيمة لمعلمة U لوجه، بوحدات السطح الخاصة.

      Parameters

      Returns Promise<number>

      الحد الأعلى لـ U

      const uMax = await bitbybit.occt.shapes.face.getUMaxBound({ shape: face });
      
    • يقرأ أصغر قيمة لمعلمة V لوجه، بوحدات السطح الخاصة.

      Parameters

      Returns Promise<number>

      الحد الأدنى لـ V

      const vMin = await bitbybit.occt.shapes.face.getVMinBound({ shape: face });
      
    • يقرأ أكبر قيمة لمعلمة V لوجه، بوحدات السطح الخاصة.

      Parameters

      Returns Promise<number>

      الحد الأعلى لـ V

      const vMax = await bitbybit.occt.shapes.face.getVMaxBound({ shape: face });
      
    • يقيس مساحة سطح وجه، بوحدات النموذج المربعة.

      Parameters

      Returns Promise<number>

      المساحة

      const area = await bitbybit.occt.shapes.face.getFaceArea({ shape: face });
      
    • يقيس مساحة سطح كل وجه في قائمة، بوحدات النموذج المربعة.

      Parameters

      Returns Promise<number[]>

      مساحة واحدة لكل وجه، بالترتيب نفسه

      const areas = await bitbybit.occt.shapes.face.getFacesAreas({ shapes: faces });
      
    • يجد مركز كتلة وجه، وهو النقطة التي تتوازن عليها مساحته.

      في الوجه المنحني أو الحلقي الشكل قد تقع هذه النقطة خارج السطح.

      Parameters

      Returns Promise<Point3>

      مركز الكتلة

      const center = await bitbybit.occt.shapes.face.getFaceCenterOfMass({ shape: face });
      
    • يجد مركز كتلة كل وجه في قائمة.

      Parameters

      Returns Promise<Point3[]>

      نقطة واحدة لكل وجه، بالترتيب نفسه

      const centers = await bitbybit.occt.shapes.face.getFacesCentersOfMass({ shapes: faces });
      

    patterns

    • يضع أسلاكاً مستطيلة على وجه، واحداً لكل خلية من تقسيم nrRectanglesU في nrRectanglesV لمدى UV الخاص به، متبعة السطح.

      إزاحات الحدود تقلّم المدى عند كل طرف. يقع كل مستطيل متمركزاً في خليته، بحجم تحدده أنماط التحجيم ككسر منها؛ ونمط التقويس يدوّر الزوايا، ونمط التضمين يتخطى الخلايا.

      Parameters

      Returns Promise<TopoDSWirePointer[]>

      أسلاك المستطيلات، خلية خلية

      const cells = await bitbybit.occt.shapes.face.subdivideToRectangleWires({
      shape: face,
      nrRectanglesU: 6,
      nrRectanglesV: 4,
      scalePatternU: [0.8, 0.5],
      scalePatternV: [0.8],
      filletPattern: [0.3],
      inclusionPattern: [true, true, false],
      offsetFromBorderU: 0.05,
      offsetFromBorderV: 0.05,
      });
    • يقطع شبكة من الثقوب المستطيلة في وجه ويعيد الوجه المثقّب.

      تتبع الثقوب الخلايا والأنماط نفسها التي يتبعها subdivideToRectangleWires؛ وعندما لا يُعطى نمط تحجيم يغطي كل ثقب نصف خليته. مع holesToFaces بقيمة true يحمل الناتج أيضاً وجهاً واحداً لكل ثقب، بعد الوجه المثقّب، وهو مفيد للأغطية أو الحشوات.

      Parameters

      Returns Promise<TopoDSFacePointer[]>

      الوجه المثقب، متبوعا بأوجه الثقوب عند طلبها

      const [perforated] = await bitbybit.occt.shapes.face.subdivideToRectangleHoles({
      shape: face,
      nrRectanglesU: 6,
      nrRectanglesV: 4,
      scalePatternU: [0.6],
      scalePatternV: [0.6],
      filletPattern: [0.5],
      inclusionPattern: [true],
      holesToFaces: false,
      offsetFromBorderU: 0.05,
      offsetFromBorderV: 0.05,
      });
    • يضع خلية نحل من أسلاك سداسية على وجه، nrHexagonsU في nrHexagonsV منها موزعة في مدى UV الخاص به، كل منها يتبع السطح.

      إزاحات الحدود تقلّم كسراً من المدى عند كل طرف؛ و flatU يوجه جانباً مسطحاً نحو U، وأعلام التمديد تمدد الصفوف الخارجية إلى ما بعد الحواف. أنماط التحجيم والتقويس والتضمين تتكرر لكل سداسي.

      Parameters

      Returns Promise<TopoDSWirePointer[]>

      أسلاك السداسيات، صفا صفا

      const cells = await bitbybit.occt.shapes.face.subdivideToHexagonWires({
      shape: face,
      nrHexagonsU: 8,
      nrHexagonsV: 6,
      flatU: false,
      scalePatternU: [0.9],
      scalePatternV: [0.9],
      filletPattern: [0.2],
      inclusionPattern: [true],
      offsetFromBorderU: 0,
      offsetFromBorderV: 0,
      });
    • يقطع خلية نحل من الثقوب السداسية في وجه ويعيد الوجه المثقّب.

      تتبع الثقوب التخطيط والأنماط نفسها التي يتبعها subdivideToHexagonWires؛ وعندما لا يُعطى نمط تحجيم يكون كل ثقب بنصف حجم سداسيه. مع holesToFaces بقيمة true يحمل الناتج أيضاً وجهاً واحداً لكل ثقب، بعد الوجه المثقّب.

      Parameters

      • inputs: FaceSubdivideToHexagonHolesDto<TopoDSFacePointer>

        الوجه وأعداد السداسيات والتوجيه وإزاحات الحدود والأنماط الاختيارية وما إذا كان يعيد أوجه الثقوب

      Returns Promise<TopoDSFacePointer[]>

      الوجه المثقب، متبوعا بأوجه الثقوب عند طلبها

      const [perforated] = await bitbybit.occt.shapes.face.subdivideToHexagonHoles({
      shape: face,
      nrHexagonsU: 8,
      nrHexagonsV: 6,
      flatU: false,
      holesToFaces: false,
      scalePatternU: [0.7],
      scalePatternV: [0.7],
      filletPattern: [0],
      inclusionPattern: [true],
      offsetFromBorderU: 0.05,
      offsetFromBorderV: 0.05,
      });

    primitives

    • ينشئ وجهاً مسطحاً من قائمة من نقاط الزوايا، مغلقاً المخطط من النقطة الأخيرة عائداً إلى الأولى.

      يجب أن تقع النقاط في مستوى واحد.

      Parameters

      • inputs: PolygonDto

        نقاط الزوايا بالترتيب

      Returns Promise<TopoDSFacePointer>

      الوجه

      const face = await bitbybit.occt.shapes.face.createPolygonFace({ points: [[0, 0, 0], [10, 0, 0], [10, 0, 10], [0, 0, 10]] });
      
    • ينشئ وجهاً دائرياً مسطحاً، أي قرصاً.

      direction هو ناظم مستواه: القيمة الافتراضية [0, 1, 0] تضعه مسطحاً على الأرض.

      Parameters

      Returns Promise<TopoDSFacePointer>

      وجه القرص

      const disc = await bitbybit.occt.shapes.face.createCircleFace({ radius: 5, center: [0, 0, 0], direction: [0, 1, 0] });
      
    • يملأ مستطيلاً على المستوى الأرضي بشبكة من أوجه سداسية مسطحة، متمركزة على نقطة الأصل.

      تُحجّم السداسيات بحيث يتسع nrHexagonsInWidth منها عبر width و nrHexagonsInHeight عبر height. تُقرأ أنماط التحجيم والتقويس والتضمين سداسياً بسداسي وتتكرر؛ وأعلام التمديد تمدد الصفوف الخارجية إلى ما بعد الحواف لتغطية المستطيل.

      Parameters

      • inputs: HexagonsInGridDto

        حجم المستطيل وأعداد السداسيات وأعلام التمديد والأنماط الاختيارية

      Returns Promise<TopoDSFacePointer[]>

      وجه واحد لكل سداسي، صفا صفا

      const cells = await bitbybit.occt.shapes.face.hexagonsInGrid({
      width: 20,
      height: 10,
      nrHexagonsInWidth: 8,
      nrHexagonsInHeight: 4,
      flatTop: false,
      scalePatternWidth: [0.9],
      scalePatternHeight: [0.9],
      });
    • ينشئ وجهاً مسطحاً على شكل قطع ناقص.

      direction هو ناظم مستواه: القيمة الافتراضية [0, 1, 0] تضعه مسطحاً على الأرض. يجب أن يكون radiusMajor على الأقل بقدر radiusMinor.

      Parameters

      Returns Promise<TopoDSFacePointer>

      وجه القطع الناقص

      const face = await bitbybit.occt.shapes.face.createEllipseFace({ radiusMinor: 3, radiusMajor: 6, center: [0, 0, 0], direction: [0, 1, 0] });
      
    • ينشئ وجهاً مربعاً مسطحاً متمركزاً على center.

      direction هو ناظم مستواه: القيمة الافتراضية [0, 1, 0] تضعه مسطحاً على الأرض.

      Parameters

      Returns Promise<TopoDSFacePointer>

      وجه المربع

      const face = await bitbybit.occt.shapes.face.createSquareFace({ size: 10, center: [0, 0, 0], direction: [0, 1, 0] });
      
    • ينشئ وجهاً مستطيلاً مسطحاً متمركزاً على center.

      على المستوى الأرضي يمتد width على طول X و length على طول Z؛ و direction هو ناظم المستوى، والقيمة الافتراضية [0, 1, 0] تبقي الوجه مسطحاً على الأرض.

      Parameters

      Returns Promise<TopoDSFacePointer>

      وجه المستطيل

      const face = await bitbybit.occt.shapes.face.createRectangleFace({ width: 20, length: 10, center: [0, 0, 0], direction: [0, 1, 0] });
      
    • ينشئ وجهاً مسطحاً على شكل حرف L: ساقان مستطيلتان متصلتان عند زاوية.

      للساق الأولى widthFirst و lengthFirst، وللثانية widthSecond و lengthSecond؛ و align يضع الزاوية على الجانب الخارجي أو الداخلي أو منتصف الساقين، و rotation يدوّر الشكل في مستواه، بالدرجات. يقع مسطحاً على الأرض ما لم يحدد direction خلاف ذلك.

      Parameters

      • inputs: LPolygonDto

        حجما الساقين والمحاذاة والتدوير والمركز وناظم المستوى

      Returns Promise<TopoDSFacePointer>

      الوجه على شكل حرف L

      const face = await bitbybit.occt.shapes.face.createLPolygonFace({
      widthFirst: 2,
      lengthFirst: 10,
      widthSecond: 2,
      lengthSecond: 6,
      align: Bit.Inputs.OCCT.directionEnum.outside,
      rotation: 0,
      center: [0, 0, 0],
      direction: [0, 1, 0],
      });
    • ينشئ وجهاً مسطحاً على شكل نجمة بعدد numRays من الرؤوس.

      تصل الرؤوس إلى outerRadius والفجوات بينها إلى innerRadius؛ و half يبقي فقط النصف الأول من الأشعة. offsetOuterEdges يرفع أطراف الأشعة خارج المستوى وهو مخصص للسلك؛ والوجه المسطح يحتاجه بقيمة 0. يقع مسطحاً على الأرض ما لم يحدد direction خلاف ذلك.

      Parameters

      • inputs: Bit.Inputs.OCCT.StarDto

        نصفا القطر وعدد الأشعة والمركز وناظم المستوى والخيارات

      Returns Promise<TopoDSFacePointer>

      وجه النجمة

      const star = await bitbybit.occt.shapes.face.createStarFace({ outerRadius: 5, innerRadius: 2, numRays: 5, center: [0, 0, 0], direction: [0, 1, 0], offsetOuterEdges: 0, half: false });
      
    • ينشئ وجهاً مسطحاً على شكل شجرة عيد ميلاد منمّقة: nrSkirts طبقة من الأغصان، تضيق من outerDist إلى innerDist عن خط الجذع، على جذع بارتفاع trunkHeight وعرض trunkWidth.

      بخلاف الأشكال المسطحة الأخرى هنا يقف منتصباً في المستوى XY، بقمته على طول Y؛ و direction هو الاتجاه من الجذع إلى القمة، و rotation يدوّره حول ذلك المحور، بالدرجات.

      Parameters

      • inputs: ChristmasTreeDto

        نسب الشجرة وحجم الجذع والخيارات ونقطة الأصل والاتجاه من الجذع إلى القمة

      Returns Promise<TopoDSFacePointer>

      وجه الشجرة

      const tree = await bitbybit.occt.shapes.face.createChristmasTreeFace({
      height: 10,
      innerDist: 1.5,
      outerDist: 4,
      nrSkirts: 4,
      trunkHeight: 1.5,
      trunkWidth: 1,
      half: false,
      rotation: 0,
      origin: [0, 0, 0],
      direction: [0, 1, 0],
      });
    • ينشئ وجه متوازي أضلاع مسطحاً: مستطيل بعرض width وارتفاع height تميل أضلاعه بمقدار angle درجة.

      مع aroundCenter بقيمة true يتمركز الشكل على center؛ وإلا يبدأ هناك ويمتد في الاتجاهات الموجبة. direction هو ناظم المستوى؛ والقيمة الافتراضية [0, 1, 0] تضعه مسطحاً على الأرض.

      Parameters

      • inputs: ParallelogramDto

        العرض والارتفاع وزاوية الميل وما إذا كان يتوسطه والمركز وناظم المستوى

      Returns Promise<TopoDSFacePointer>

      وجه متوازي الأضلاع

      const face = await bitbybit.occt.shapes.face.createParallelogramFace({ width: 10, height: 5, angle: 30, aroundCenter: true, center: [0, 0, 0], direction: [0, 1, 0] });
      
    • ينشئ وجهاً مسطحاً على شكل قلب يتسع تقريباً في مربع بحجم sizeApprox.

      rotation يدوّره في مستواه، بالدرجات. direction هو ناظم المستوى؛ والقيمة الافتراضية [0, 1, 0] تضعه مسطحاً على الأرض.

      Parameters

      • inputs: Heart2DDto

        الحجم التقريبي والتدوير والمركز وناظم المستوى

      Returns Promise<TopoDSFacePointer>

      وجه القلب

      const heart = await bitbybit.occt.shapes.face.createHeartFace({ sizeApprox: 10, rotation: 0, center: [0, 0, 0], direction: [0, 1, 0] });
      
    • ينشئ وجه مضلع منتظم مسطحاً بعدد nrCorners من الزوايا، كلها على دائرة نصف قطرها radius.

      direction هو ناظم المستوى؛ والقيمة الافتراضية [0, 1, 0] تضعه مسطحاً على الأرض.

      Parameters

      • inputs: NGonWireDto

        عدد الزوايا ونصف القطر والمركز وناظم المستوى

      Returns Promise<TopoDSFacePointer>

      وجه المضلع

      const hexagon = await bitbybit.occt.shapes.face.createNGonFace({ nrCorners: 6, radius: 5, center: [0, 0, 0], direction: [0, 1, 0] });
      

    rebuild

    • يعيد بناء سطح وجه كسطح B-spline بدرجتي U و V المعطاتين.

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

      Parameters

      Returns Promise<TopoDSFacePointer>

      الوجه المعاد بناؤه

      const smoother = await bitbybit.occt.shapes.face.rebuildFaceDegree({ shape: face, uDegree: 2, vDegree: 2, tolerance: 0.01, keepTrim: true });
      
    • يغيّر كيفية امتداد معلمات UV على وجه: تبديل U و V، أو عكس U، أو عكس V، أو أي تركيبة منها.

      تبقى الهندسة كما هي؛ ولا تتغير سوى اتجاهات المعلمات، وهو ما يهم كل دالة هنا تعمل في UV، مثل subdivideToPoints أو wireAlongParam. يُعاد بناء الوجه على الحدود الطبيعية للسطح.

      Parameters

      Returns Promise<TopoDSFacePointer>

      الوجه بالمعلمة المتغيرة

      const flipped = await bitbybit.occt.shapes.face.flipFaceUV({ shape: face, swapUV: true, reverseU: false, reverseV: false });
      
    • يعيد تعليم وجه بحيث تعطي الخطوات المتساوية في U أو V مسافات متساوية تقريباً على السطح.

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

      Parameters

      Returns Promise<TopoDSFacePointer>

      الوجه المعاد ضبط معلماته

      const even = await bitbybit.occt.shapes.face.normalizeFaceParametrization({ shape: face, normalizeU: true, normalizeV: true, samples: 50, tolerance: 0.001 });