Bitbybit Docs
    Preparing search index...

    Class OCCTOperations

    عمليات النمذجة التي تحول أسلاك OpenCascade وأوجهها إلى أسطح ومجسمات صلبة وتقيس الأشكال: اللوفت عبر المقاطع، والبثق والتدوير حول محور، وكسح المقاطع على طول المسارات، والإزاحة، وتسميك القشور إلى مجسمات صلبة، والتشريح والتقسيم، بالإضافة إلى الصناديق المحيطة والكرات المحيطة واستعلامات أقرب نقطة. المسافات بوحدات النموذج والزوايا بالدرجات؛ وتعيد كل عملية شكلا جديدا. العمليات المنطقية في booleans، والتقويس في fillets.

    Index

    Constructors

    closest pts

    • يجد زوج النقاط، واحدة على كل شكل، الأقرب بعضهما إلى بعض.

      المسافة بينهما هي الفجوة بين الشكلين؛ وهي 0 عندما يتلامسان أو يتداخلان. يرمي خطأ عندما لا يمكن العثور على زوج.

      Parameters

      Returns Promise<Point3[]>

      النقطة على الشكل الأول والنقطة على الثاني

      const [onBox, onSphere] = await bitbybit.occt.operations.closestPointsBetweenTwoShapes({ shape1: box, shape2: sphere });
      
    • يجد، لكل نقطة في قائمة، أقرب نقطة على شكل.

      النقطة الواقعة على الشكل أصلا تُربط بنفسها. مفيد لالتقاط النقاط على سطح.

      Parameters

      Returns Promise<Point3[]>

      نقطة واحدة على الشكل لكل نقطة مدخلة، بالترتيب نفسه

      const snapped = await bitbybit.occt.operations.closestPointsOnShapeFromPoints({ shape: sphere, points: [[0, 20, 0], [20, 0, 0]] });
      
    • يجد أقرب نقطة على كل من عدة أشكال لكل نقطة في قائمة.

      النتيجة قائمة مسطحة واحدة: كل النقاط للشكل الأول، بترتيب النقاط، ثم كل النقاط للشكل الثاني، وهكذا.

      Parameters

      Returns Promise<Point3[]>

      أقرب النقاط، مجمعة شكلا شكلا

      const snapped = await bitbybit.occt.operations.closestPointsOnShapesFromPoints({ shapes: [box, sphere], points: [[0, 20, 0], [20, 0, 0]] });
      

    divisions

    • يقطع شكلا إلى قطع بأشكال أخرى، كما تقسم السكين رغيفا، دون إزالة أي مادة.

      مع nonDestructive هو true، الافتراضي، تُترك المدخلات كما هي وتحوي النتيجة قطع كل شكل مشارك، بما فيها القواطع؛ ومع false تعود قطع shape وحده. localFuzzyTolerance يسمح للهندسة التي تكاد تتلامس بأن تُعد متلامسة.

      Parameters

      • inputs: SplitDto<TopoDSShapePointer>

        الشكل المراد تقسيمه والأشكال المراد التقسيم بها والخيارات

      Returns Promise<TopoDSShapePointer[]>

      الأجزاء

      const pieces = await bitbybit.occt.operations.splitShapeWithShapes({ shape: box, shapes: [cuttingPlane], localFuzzyTolerance: 1e-4, nonDestructive: false });
      
    • يقطع مجسما صلبا إلى شرائح متوازية على طول اتجاه، مثل رغيف خبز، كل step من وحدات النموذج من أسفل الشكل إلى أعلاه.

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

      Parameters

      Returns Promise<TopoDSCompoundPointer>

      مركب من أوجه المقاطع

      const layers = await bitbybit.occt.operations.slice({ shape: sphere, step: 0.5, direction: [0, 1, 0] });
      
    • يقطع مجسما صلبا إلى شرائح متوازية مثل slice، لكن بنمط متكرر من الفجوات بينها، مثل 0.1، 0.5، 0.1، 0.5.

      يُطبق النمط من أسفل الشكل إلى أعلاه ويتكرر حتى الوصول إلى الأعلى.

      Parameters

      Returns Promise<TopoDSCompoundPointer>

      مركب من أوجه المقاطع

      const layers = await bitbybit.occt.operations.sliceInStepPattern({ shape: sphere, steps: [0.1, 0.5], direction: [0, 1, 0] });
      

    extrusions

    • يكسح شكلا في خط مستقيم على طول متجه، طوله هو المسافة: يصبح الوجه مجسما صلبا، والسلك قشرة، والحافة وجها.

      يبقى الشكل نفسه عند بداية البثق؛ المتجه بوحدات النموذج، فـ [0, 10, 0] يبثق 10 وحدات للأعلى.

      Parameters

      Returns Promise<TopoDSShapePointer>

      الشكل المبثوق

      const disc = await bitbybit.occt.shapes.face.createCircleFace({ radius: 5, center: [0, 0, 0], direction: [0, 1, 0] });
      const cylinder = await bitbybit.occt.operations.extrude({ shape: disc, direction: [0, 10, 0] });
    • يكسح عدة أشكال على طول المتجه نفسه، كما تفعل extrude لشكل واحد.

      Parameters

      Returns Promise<TopoDSShapePointer[]>

      الأشكال المبثوقة، بالترتيب نفسه

      const walls = await bitbybit.occt.operations.extrudeShapes({ shapes: [faceA, faceB], direction: [0, 10, 0] });
      
    • يبثق شكلا مسطحا إلى الأعلى على طول Y بمقدار height مع ليّه بزاوية angle درجة حول محور Y، مثل عمود ملتو.

      ينبغي أن يقع الشكل مسطحا، كما تفعل المقاطع التي تنشئها هذه الحزمة. مع makeSolid هو true، الافتراضي، يعطي مقطع الوجه مجسما صلبا مغلقا؛ والسلك يعطي قشرة ملتوية.

      Parameters

      • inputs: RotationExtrudeDto<TopoDSShapePointer>

        شكل المقطع والارتفاع وزاوية الالتواء بالدرجات وما إذا كان ينشئ مجسما صلبا

      Returns Promise<TopoDSShapePointer>

      البثق الملتوي

      const square = await bitbybit.occt.shapes.face.createSquareFace({ size: 5, center: [0, 0, 0], direction: [0, 1, 0] });
      const twisted = await bitbybit.occt.operations.rotatedExtrude({ shape: square, height: 20, angle: 90, makeSolid: true });

    lofts

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

      تُقبل الحواف كأسلاك من حافة واحدة. مع makeSolid هو true ومقاطع مغلقة تُغلق النتيجة لتصبح مجسما صلبا؛ وإلا فهي قشرة. تتطابق المقاطع على أفضل وجه بأعداد حواف متساوية.

      Parameters

      • inputs: LoftDto<TopoDSWirePointer>

        أسلاك أو حواف المقاطع، بالترتيب، وما إذا كان ينشئ مجسما صلبا

      Returns Promise<TopoDSShapePointer>

      قشرة اللوفت أو مجسمه الصلب

      const bottom = await bitbybit.occt.shapes.wire.createCircleWire({ radius: 5, center: [0, 0, 0], direction: [0, 1, 0] });
      const upper = await bitbybit.occt.shapes.wire.createSquareWire({ size: 6, center: [0, 10, 0], direction: [0, 1, 0] });
      const vase = await bitbybit.occt.operations.loft({ shapes: [bottom, upper], makeSolid: true });
    • يبني سطحا عبر سلسلة من الأسلاك مثل loft، مع التحكم في كيفية مطابقة الجلد.

      straight يصنع رقعا مسطّرة بين المقاطع بدلا من مزج ناعم؛ closed يعيد السطح في حلقة من المقطع الأخير إلى الأول، و periodic يجعل تلك الحلقة ناعمة بإعادة أخذ عينات المقاطع. startVertex و endVertex يغلقان الطرفين إلى نقطتين.

      Parameters

      • inputs: LoftAdvancedDto<TopoDSWirePointer>

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

      Returns Promise<TopoDSShapePointer>

      قشرة اللوفت أو مجسمه الصلب

      const cone = await bitbybit.occt.operations.loftAdvanced({
      shapes: [circleBottom, circleMiddle],
      makeSolid: true,
      closed: false,
      periodic: false,
      straight: false,
      nrPeriodicSections: 10,
      useSmoothing: false,
      maxUDegree: 3,
      tolerance: 1e-7,
      parType: Bit.Inputs.OCCT.approxParametrizationTypeEnum.approxCentripetal,
      endVertex: [0, 20, 0],
      });

    measure

    • يقيس بعد كل نقطة في قائمة عن شكل، كالمسافة المستقيمة إلى أقرب نقطة عليه، بوحدات النموذج.

      المسافة إلى سطح الشكل، فالنقطة الواقعة داخل مجسم صلب تبلغ مع ذلك عن مسافتها إلى الجلد.

      Parameters

      Returns Promise<number[]>

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

      const distances = await bitbybit.occt.operations.distancesToShapeFromPoints({ shape: sphere, points: [[0, 20, 0], [20, 0, 0]] });
      
    • يحسب الصندوق المحاذي للمحاور الذي يحيط بشكل: زاويتاه الدنيا والقصوى ومركزه وحجمه على طول X و Y و Z.

      على الأشكال المنحنية يمكن أن يكون الصندوق أكبر قليلا من الشكل نفسه، لأن النواة تحيط بهندسة التحكم لا بالسطح الدقيق.

      Parameters

      Returns Promise<BoundingBoxPropsDto>

      الصندوق بصيغة min و max و center و size

      const box = await bitbybit.occt.operations.boundingBoxOfShape({ shape });
      console.log(box.size, box.center);
    • يقرأ الزاوية الدنيا للصندوق المحيط المحاذي للمحاور لشكل، النقطة ذات أصغر X و Y و Z.

      Parameters

      Returns Promise<Point3>

      الزاوية الدنيا

      const min = await bitbybit.occt.operations.boundingBoxMinOfShape({ shape });
      
    • يقرأ الزاوية القصوى للصندوق المحيط المحاذي للمحاور لشكل، النقطة ذات أكبر X و Y و Z.

      Parameters

      Returns Promise<Point3>

      الزاوية العليا

      const max = await bitbybit.occt.operations.boundingBoxMaxOfShape({ shape });
      
    • يقرأ مركز الصندوق المحيط المحاذي للمحاور لشكل، في منتصف المسافة بين زاويتيه.

      هذا ليس مركز الكتلة؛ shapes.solid.getSolidCenterOfMass وأخواتها تعطي ذلك.

      Parameters

      Returns Promise<Point3>

      مركز الصندوق

      const center = await bitbybit.occt.operations.boundingBoxCenterOfShape({ shape });
      
    • يقرأ حجم الصندوق المحيط المحاذي للمحاور لشكل على طول X و Y و Z، بوحدات النموذج.

      Parameters

      Returns Promise<Vector3>

      عرض الصندوق وارتفاعه وطوله

      const size = await bitbybit.occt.operations.boundingBoxSizeOfShape({ shape });
      
    • يبني الصندوق المحيط المحاذي للمحاور لشكل كمجسم صلب صندوقي، مفيد لرسمه أو استخدامه في عملية منطقية.

      Parameters

      Returns Promise<TopoDSShapePointer>

      المجسم الصلب للصندوق

      const boxSolid = await bitbybit.occt.operations.boundingBoxShapeOfShape({ shape });
      
    • يحسب كرة تحيط بشكل: تتمركز على الصندوق المحيط وتبلغ زواياه، فهي تحوي الشكل دائما لكنها ليست أصغر كرة ممكنة.

      Parameters

      Returns Promise<BoundingSpherePropsDto>

      الكرة بصيغة center و radius

      const sphere = await bitbybit.occt.operations.boundingSphereOfShape({ shape });
      console.log(sphere.radius);
    • يقرأ مركز الكرة المحيطة لشكل، وهو مركز صندوقه المحيط.

      Parameters

      Returns Promise<Point3>

      مركز الكرة

      const center = await bitbybit.occt.operations.boundingSphereCenterOfShape({ shape });
      
    • يقرأ نصف قطر الكرة المحيطة لشكل، المسافة من مركز الصندوق المحيط إلى زاويته، بوحدات النموذج.

      Parameters

      Returns Promise<number>

      نصف القطر

      const radius = await bitbybit.occt.operations.boundingSphereRadiusOfShape({ shape });
      

    offsets

    • يحرك حدود شكل إلى الخارج، أو إلى الداخل لمسافة سالبة، بمسافة ثابتة: ينمو السلك إلى خط خارجي مواز، والوجه أو المجسم الصلب إلى أكبر منه.

      يُزاح السلك أو الحافة في مستواه نفسه، أو على face عند إعطائه؛ وتُستدار الزوايا. المسافة 0 تعيد الشكل كما هو.

      Parameters

      Returns Promise<TopoDSShapePointer>

      الشكل المزاح

      const bigger = await bitbybit.occt.operations.offset({ shape: box, distance: 1, tolerance: 0.1 });
      
    • يزيح شكلا مثل offset، مع اختيار كيفية وصل الزوايا: arc يستديرها، و intersection يمد الجوانب إلى زاوية حادة، و tangent يبقيها مماسة.

      removeIntEdges يحذف الحواف الداخلية التي يمكن أن تخلفها الإزاحة على مجسم صلب.

      Parameters

      Returns Promise<TopoDSShapePointer>

      الشكل المزاح

      const sharper = await bitbybit.occt.operations.offsetAdv({
      shape: rectangleWire,
      distance: 1,
      tolerance: 0.1,
      joinType: Bit.Inputs.OCCT.joinTypeEnum.intersection,
      removeIntEdges: false,
      });
    • يعطي وجها أو قشرة سماكة، محولا إياه إلى لوح أو جدار صلب بالإزاحة offset المعطاة.

      الإزاحة الموجبة تزيد السماكة نحو ناظم السطح، والسالبة في الاتجاه الآخر. استخدمه لتحويل جلد لوفت أو جلد مكسوح إلى شيء قابل للطباعة.

      Parameters

      Returns Promise<TopoDSShapePointer>

      المجسم الصلب السميك

      const wall = await bitbybit.occt.operations.makeThickSolidSimple({ shape: loftedShell, offset: 0.5 });
      
    • يفرّغ مجسما صلبا إلى قشرة بسماكة الجدار المعطاة بإزالة الأوجه المذكورة وإزاحة الباقي.

      إزالة الوجه العلوي لصندوق، مثلا، تعطي كوبا مفتوحا. offset هو سماكة الجدار، سالبا للنمو إلى الداخل؛ joinType يحدد كيفية التقاء جدران الإزاحة عند الزوايا، وتذهب الأعلام الأخرى إلى باني المجسمات الصلبة السميكة في النواة.

      Parameters

      Returns Promise<TopoDSShapePointer>

      المجسم الصلب المجوف

      const box = await bitbybit.occt.shapes.solid.createBox({ width: 10, length: 10, height: 10, center: [0, 0, 0] });
      const faces = await bitbybit.occt.shapes.face.getFaces({ shape: box });
      const cup = await bitbybit.occt.operations.makeThickSolidByJoin({
      shape: box,
      shapes: [faces[0]],
      offset: -1,
      tolerance: 1e-3,
      intersection: false,
      selfIntersection: false,
      joinType: Bit.Inputs.OCCT.joinTypeEnum.arc,
      removeIntEdges: false,
      });
    • يزيح سلكا لا يقع في مستوى واحد، ببثقه على طول direction، وتسميك النتيجة وقراءة الحافة المزاحة مجددا منها.

      يعمل على أفضل وجه مع الأسلاك الناعمة؛ قوّس الزوايا الحادة أولا بـ fillets.fillet3DWire. عندما لا يمكن وصل الحواف المزاحة في سلك واحد تعود كقائمة حواف.

      Parameters

      Returns Promise<TopoDSWirePointer>

      السلك المزاح، أو الحواف المنفصلة عندما يتعذر وصلها

      const outer = await bitbybit.occt.operations.offset3DWire({ shape: smoothWire, offset: 1, direction: [0, 1, 0] });
      

    pipeing

    • يكسح شكل مقطع واحدا أو أكثر على طول سلك مسار ويغلق النتيجة لتصبح مجسما صلبا.

      ينبغي وضع المقاطع على المسار؛ مع عدة مقاطع يمزج الكسح من مقطع إلى التالي على طول الطريق.

      Parameters

      Returns Promise<TopoDSShapePointer>

      المجسم الصلب المكسوح

      const tube = await bitbybit.occt.operations.pipe({ shape: pathWire, shapes: [profileAtStart] });
      
    • يكسح مضلعا منتظما على طول سلك، معطيا أنبوبا بعدد nrCorners من الجوانب المسطحة، مثل قضيب سداسي على طول مسار.

      يوضع المضلع ذو نصف القطر radius عند بداية السلك، عموديا عليه. makeSolid يعطي مجسما صلبا بدلا من قشرة، و trihedronEnum يختار كيفية دوران المقطع على طول المسار، و forceApproxC1 ينعّم النتيجة.

      Parameters

      Returns Promise<TopoDSShapePointer>

      المجسم الصلب أو القشرة المكسوحة

      const bar = await bitbybit.occt.operations.pipePolylineWireNGon({
      shape: pathWire,
      radius: 0.5,
      nrCorners: 6,
      makeSolid: true,
      trihedronEnum: Bit.Inputs.OCCT.geomFillTrihedronEnum.isConstantNormal,
      forceApproxC1: false,
      });
    • يكسح دائرة على طول كل من عدة أسلاك، كما تفعل pipeWireCylindrical لسلك واحد، كلها بنصف القطر والخيارات نفسها.

      Parameters

      Returns Promise<TopoDSShapePointer[]>

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

      const tubes = await bitbybit.occt.operations.pipeWiresCylindrical({
      shapes: [pathA, pathB],
      radius: 0.5,
      makeSolid: true,
      trihedronEnum: Bit.Inputs.OCCT.geomFillTrihedronEnum.isConstantNormal,
      forceApproxC1: false,
      });
    • يكسح دائرة على طول سلك، معطيا أنبوبا مستديرا بنصف القطر المعطى يتبع المسار.

      توضع الدائرة عند بداية السلك، عموديا عليه. makeSolid يعطي مجسما صلبا بدلا من قشرة، و trihedronEnum يختار كيفية دوران المقطع أثناء تتبعه للمسار، و forceApproxC1 ينعّم النتيجة.

      Parameters

      Returns Promise<TopoDSShapePointer>

      الأنبوب كمجسم صلب أو قشرة

      const tube = await bitbybit.occt.operations.pipeWireCylindrical({
      shape: pathWire,
      radius: 0.5,
      makeSolid: true,
      trihedronEnum: Bit.Inputs.OCCT.geomFillTrihedronEnum.isConstantNormal,
      forceApproxC1: false,
      });

    revolutions

    • يدوّر شكلا حول محور يمر بنقطة الأصل ليكسح سطحا أو مجسما صلبا: يعطي الوجه مجسما صلبا، والسلك قشرة.

      angle بالدرجات؛ 360 أو أكثر يعطي دورة كاملة. يمتد المحور على طول direction: المقطع الواقع بجانب محور Y المدوّر حوله يعطي مزهرية. يجب ألا يقطع المقطع المحور.

      Parameters

      Returns Promise<TopoDSShapePointer>

      الشكل المدوّر حول المحور

      const profile = await bitbybit.occt.shapes.wire.createPolylineWire({ points: [[2, 0, 0], [4, 0, 0], [3, 10, 0], [2, 12, 0]] });
      const vase = await bitbybit.occt.operations.revolve({ shape: profile, angle: 360, direction: [0, 1, 0], copy: false });