Bitbybit Docs
    Preparing search index...

    Class OCCTWire

    الأسلاك في OpenCascade: سلاسل من الحواف الموصولة طرفا بطرف، مفتوحة كمسار أو مغلقة كمخطط خارجي. ابنها من نقاط ومنحنيات (الخطوط متعددة الأضلاع و B-spline و Bezier والاستيفاءات والحلزونات واللوالب)، أو كمخططات خارجية مسطحة جاهزة (الدوائر والمستطيلات والنجوم ومقاطع العوارض والنص) تقع على المستوى الأرضي ما لم يقل direction غير ذلك، أو بوصل وتقسيم حواف وأسلاك موجودة؛ واقرأها كنقاط ومماسات وأطوال ومراكز؛ وأسقطها على أوجه أو على أشكال. تمتد المعلمات على طول السلك من 0 عند بدايته إلى 1 عند نهايته وتتبع معلمة كل حافة الخاصة، لا المسافة. السلك المغلق هو ما يملؤه shapes.face ليصنع وجها.

    Index

    Constructors

    beam profiles

    build

    debug

    edit

    extract

    extract from wires

    from base

    get

    multiple

    place

    primitives

    rebuild

    seam

    via points

    via wires

    Constructors

    beam profiles

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

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

      Parameters

      • inputs: IBeamProfileDto

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

      Returns Promise<TopoDSWirePointer>

      سلك المخطط الخارجي لعارضة I

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

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

      Parameters

      • inputs: HBeamProfileDto

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

      Returns Promise<TopoDSWirePointer>

      سلك المخطط الخارجي لعارضة H

      const profile = await bitbybit.occt.shapes.wire.createHBeamProfileWire({
      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<TopoDSWirePointer>

      سلك المخطط الخارجي لعارضة T

      const profile = await bitbybit.occt.shapes.wire.createTBeamProfileWire({
      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<TopoDSWirePointer>

      سلك المخطط الخارجي لعارضة U

      const profile = await bitbybit.occt.shapes.wire.createUBeamProfileWire({
      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],
      });

    build

    • يصل الحواف والأسلاك المتلامسة طرفاً بطرف في سلك واحد.

      يجب أن تتصل الأجزاء؛ والمجموعة التي فيها فجوة أو جزء شارد ترمي خطأ. الأشكال من الأنواع الأخرى في القائمة تُتجاهل.

      Parameters

      Returns Promise<TopoDSWirePointer>

      السلك الموصول

      const outline = await bitbybit.occt.shapes.wire.combineEdgesAndWiresIntoAWire({ shapes: [arc, line1, line2] });
      
    • يلف حافة واحدة في سلك، بحيث يمكن أن تذهب حيث يُتوقع سلك.

      Parameters

      Returns Promise<TopoDSWirePointer>

      السلك الذي يحوي تلك الحافة

      const wire = await bitbybit.occt.shapes.wire.createWireFromEdge({ shape: edge });
      
    • يمدد سلكاً بمزيد من الحواف والأسلاك التي تلامسه طرفاً بطرف.

      يجب أن تتصل الأجزاء بالسلك أو ببعضها؛ والفجوة ترمي خطأ. الأشكال من الأنواع الأخرى في القائمة تُتجاهل.

      Parameters

      Returns Promise<TopoDSWirePointer>

      السلك الممدد

      const longer = await bitbybit.occt.shapes.wire.addEdgesAndWiresToWire({ shape: wire, shapes: [nextEdge, nextWire] });
      

    debug

    • يجمع حقائق تشخيصية عن سلك: عدد حوافه، وما إذا كان مغلقاً، وطوله الإجمالي، ولكل حافة، تقرير المنحنى الذي يعطيه shapes.edge.debugInfo.

      السلك الفارغ أو null يعطي تقريراً معلّماً كغير صالح بأعداد صفرية.

      Parameters

      Returns Promise<WireDebugInfo>

      التقرير بعدد الحواف وعلم الإغلاق والطول ومدخل واحد لكل حافة

      const info = await bitbybit.occt.shapes.wire.debugInfo({ shape: wire });
      console.log(info.nbEdges, info.closed, info.totalLength);

    edit

    • يغلق سلكاً مفتوحاً بحافة مستقيمة من نقطة نهايته عائدة إلى نقطة بدايته.

      السلك الذي يلتقي طرفاه بالفعل يُعاد كما هو.

      Parameters

      Returns Promise<TopoDSWirePointer>

      السلك المغلق

      const closedWire = await bitbybit.occt.shapes.wire.closeOpenWire({ shape: openWire });
      

    extract

    • يقطع سلكاً إلى أجزاء عند النقاط المعطاة.

      تُنقل كل نقطة إلى أقرب موضع على السلك قبل القطع، لذا لا يلزم أن تقع عليه تماماً؛ وتُتجاهل النقاط المكررة. تعود الأجزاء بالترتيب على طول السلك، من بدايته إلى نهايته.

      Parameters

      Returns Promise<TopoDSWirePointer[]>

      أجزاء السلك، بالترتيب

      const pieces = await bitbybit.occt.shapes.wire.splitOnPoints({ shape: wire, points: [[3, 0, 0], [7, 0, 0]] });
      
    • يحوّل كل سلك في شكل إلى سلسلة من النقاط تتبع منحنياته عن كثب بما يكفي لرسمه، قائمة واحدة لكل سلك.

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

      Parameters

      Returns Promise<Point3[][]>

      قائمة نقاط واحدة لكل سلك

      const polylines = await bitbybit.occt.shapes.wire.wiresToPoints({
      shape: wire,
      angularDeflection: 0.1,
      curvatureDeflection: 0.1,
      minimumOfPoints: 2,
      uTolerance: 1e-9,
      minimumLength: 1e-7,
      });
    • يضع نقاطاً على طول سلك بخطوات متساوية من معلمته، من البداية إلى النهاية.

      nrOfDivisions خطوة تعطي نقطة واحدة أكثر من ذلك؛ و removeStartPoint و removeEndPoint يحذفان الطرفين. تتبع المعلمة معلمة منحنى كل حافة نفسها، لذا لا تكون الخطوات المتساوية مسافات متساوية؛ استخدم divideWireByEqualDistanceToPoints لتلك.

      Parameters

      • inputs: DivideDto<TopoDSWirePointer>

        السلك وعدد التقسيمات وما إذا كان يستبعد نقطتي النهاية

      Returns Promise<Point3[]>

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

      const points = await bitbybit.occt.shapes.wire.divideWireByParamsToPoints({ shape: wire, nrOfDivisions: 10, removeStartPoint: false, removeEndPoint: false });
      
    • يضع نقاطاً على طول سلك بمسافات متساوية مقاسة على طول منحنياته، من البداية إلى النهاية.

      nrOfDivisions خطوة تعطي نقطة واحدة أكثر من ذلك؛ و removeStartPoint و removeEndPoint يحذفان الطرفين.

      Parameters

      • inputs: DivideDto<TopoDSWirePointer>

        السلك وعدد التقسيمات وما إذا كان يستبعد نقطتي النهاية

      Returns Promise<Point3[]>

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

      const points = await bitbybit.occt.shapes.wire.divideWireByEqualDistanceToPoints({ shape: wire, nrOfDivisions: 10, removeStartPoint: false, removeEndPoint: false });
      
    • يجد النقطة الواقعة عند كسر من الطريق على طول سلك: 0 هو البداية، و 1 النهاية.

      يتبع الكسر معلمات الحواف، لا المسافة، لذا فإن 0.5 ليس دائماً المنتصف حسب الطول؛ استخدم pointOnWireAtLength للمسافة.

      Parameters

      Returns Promise<Point3>

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

      const point = await bitbybit.occt.shapes.wire.pointOnWireAtParam({ shape: wire, param: 0.25 });
      
    • يجد النقطة الواقعة على مسافة معطاة على طول سلك من بدايته، مقاسة على طول منحنياته بوحدات النموذج.

      Parameters

      Returns Promise<Point3>

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

      const point = await bitbybit.occt.shapes.wire.pointOnWireAtLength({ shape: wire, length: 2.5 });
      
    • يجد النقاط الواقعة على عدة مسافات على طول سلك من بدايته، مقاسة على طول منحنياته بوحدات النموذج.

      Parameters

      Returns Promise<Point3[]>

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

      const points = await bitbybit.occt.shapes.wire.pointsOnWireAtLengths({ shape: wire, lengths: [1, 2.5, 4] });
      
    • يضع نقاطاً على طول سلك كل length من وحدات النموذج من بدايته، بقدر ما يتسع.

      includeFirst يبقي النقطة عند البداية، و includeLast يلحق نقطة النهاية مهما كان التباعد، و tryNext يطلب نقطة إضافية واحدة بخطوة بعد آخر نقطة اتسعت.

      Parameters

      Returns Promise<Point3[]>

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

      const points = await bitbybit.occt.shapes.wire.pointsOnWireAtEqualLength({ shape: wire, length: 2, tryNext: false, includeFirst: true, includeLast: false });
      
    • يضع نقاطاً على طول سلك بنمط متكرر من الفجوات، مثل 1, 3, 1, 3، حتى ينفد السلك.

      lengths هو نمط الفجوات بوحدات النموذج، مكرراً من البداية؛ و includeFirst يبقي نقطة البداية، و includeLast يلحق نقطة النهاية، و tryNext يطلب نقطة إضافية واحدة عند الفجوة التالية بعد الأخيرة.

      Parameters

      Returns Promise<Point3[]>

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

      const points = await bitbybit.occt.shapes.wire.pointsOnWireAtPatternOfLengths({ shape: wire, lengths: [1, 3], tryNext: false, includeFirst: true, includeLast: false });
      
    • يجد الاتجاه الذي يتجه إليه السلك عند كسر من الطريق على طوله، من 0 عند البداية إلى 1 عند النهاية.

      يتبع الكسر معلمات الحواف، لا المسافة.

      Parameters

      Returns Promise<Vector3>

      اتجاه المماس

      const tangent = await bitbybit.occt.shapes.wire.tangentOnWireAtParam({ shape: wire, param: 0.5 });
      
    • يجد الاتجاه الذي يتجه إليه السلك عند مسافة معطاة من بدايته، مقاسة على طول منحنياته بوحدات النموذج.

      Parameters

      Returns Promise<Vector3>

      اتجاه المماس

      const tangent = await bitbybit.occt.shapes.wire.tangentOnWireAtLength({ shape: wire, length: 2.5 });
      
    • يحسب المشتقات الأولى والثانية والثالثة لمنحنى سلك عند مسافة معطاة من بدايته.

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

      Parameters

      Returns Promise<[Vector3, Vector3, Vector3]>

      متجهات المشتقات الثلاثة، من الأولى إلى الثالثة

      const [first, second, third] = await bitbybit.occt.shapes.wire.derivativesOnWireAtLength({ shape: wire, length: 2.5 });
      
    • يحسب المشتقات الأولى والثانية والثالثة لمنحنى سلك عند كسر من الطريق على طوله، من 0 عند البداية إلى 1 عند النهاية.

      المشتقة الأولى هي المماس مع سرعته، والثانية تخبر كيف ينحني المنحنى، والثالثة كيف يتغير ذلك الانحناء؛ وكلها بالنسبة إلى معلمة المنحنى.

      Parameters

      Returns Promise<[Vector3, Vector3, Vector3]>

      متجهات المشتقات الثلاثة، من الأولى إلى الثالثة

      const [first, second, third] = await bitbybit.occt.shapes.wire.derivativesOnWireAtParam({ shape: wire, param: 0.5 });
      
    • يقرأ النقطة التي يبدأ عندها سلك، في اتجاه السلك نفسه.

      Parameters

      Returns Promise<Point3>

      نقطة البداية

      const start = await bitbybit.occt.shapes.wire.startPointOnWire({ shape: wire });
      
    • يجد النقطة الواقعة في منتصف مدى معلمات سلك.

      تتبع المعلمة منحنيات الحواف نفسها، لا المسافة، لذا في سلك ذي حواف غير متساوية لا يكون هذا دائماً المنتصف حسب الطول؛ و pointOnWireAtLength مع نصف getWireLength يعطي ذلك.

      Parameters

      Returns Promise<Point3>

      النقطة عند المعلمة 0.5

      const middle = await bitbybit.occt.shapes.wire.midPointOnWire({ shape: wire });
      
    • يقرأ النقطة التي ينتهي عندها سلك، في اتجاه السلك نفسه.

      Parameters

      Returns Promise<Point3>

      نقطة النهاية

      const end = await bitbybit.occt.shapes.wire.endPointOnWire({ shape: wire });
      

    extract from wires

    • يشغّل divideWireByParamsToPoints على عدة أسلاك بالإعدادات نفسها.

      Parameters

      Returns Promise<Point3[][]>

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

      const lists = await bitbybit.occt.shapes.wire.divideWiresByParamsToPoints({ shapes: wires, nrOfDivisions: 10, removeStartPoint: false, removeEndPoint: false });
      
    • يشغّل divideWireByEqualDistanceToPoints على عدة أسلاك بالإعدادات نفسها.

      Parameters

      Returns Promise<Point3[][]>

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

      const lists = await bitbybit.occt.shapes.wire.divideWiresByEqualDistanceToPoints({ shapes: wires, nrOfDivisions: 10, removeStartPoint: false, removeEndPoint: false });
      

    from base

    • يصنع سلكاً مستقيماً ذا حافة واحدة من كائن خط بالصيغة { start, end }.

      Parameters

      Returns Promise<TopoDSWirePointer>

      السلك المستقيم

      const wire = await bitbybit.occt.shapes.wire.fromBaseLine({ line: { start: [0, 0, 0], end: [10, 0, 0] } });
      
    • يصنع سلكاً مستقيماً واحداً ذا حافة واحدة لكل كائن خط بالصيغة { start, end }.

      Parameters

      Returns Promise<TopoDSWirePointer[]>

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

      const wires = await bitbybit.occt.shapes.wire.fromBaseLines({ lines: [{ start: [0, 0, 0], end: [10, 0, 0] }, { start: [10, 0, 0], end: [10, 10, 0] }] });
      
    • يصنع سلكاً مستقيماً ذا حافة واحدة من قطعة، وهي زوج من النقاط [start, end].

      Parameters

      Returns Promise<TopoDSWirePointer>

      السلك المستقيم

      const wire = await bitbybit.occt.shapes.wire.fromBaseSegment({ segment: [[0, 0, 0], [10, 0, 0]] });
      
    • يصنع سلكاً مستقيماً واحداً ذا حافة واحدة لكل قطعة، كل منها زوج من النقاط [start, end].

      Parameters

      Returns Promise<TopoDSWirePointer[]>

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

      const wires = await bitbybit.occt.shapes.wire.fromBaseSegments({ segments: [[[0, 0, 0], [10, 0, 0]], [[10, 0, 0], [10, 10, 0]]] });
      
    • يصل قائمة من النقاط بالترتيب بحواف مستقيمة في سلك واحد.

      أقل من نقطتين يرمي خطأ. عندما تكرر النقطة الأخيرة الأولى، يُسقط التكرار ويُغلق السلك عائداً إلى النقطة الأولى؛ وإلا يبقى السلك مفتوحاً. لمخطط مغلق دون تكرار نقطة استخدم createPolygonWire.

      Parameters

      Returns Promise<TopoDSWirePointer>

      السلك المار بالنقاط

      const path = await bitbybit.occt.shapes.wire.fromPoints({ points: [[0, 0, 0], [10, 0, 0], [10, 10, 0]] });
      const outline = await bitbybit.occt.shapes.wire.fromPoints({ points: [[0, 0, 0], [10, 0, 0], [10, 10, 0], [0, 0, 0]] });
    • يصنع سلكاً من كائن خط متعدد الأضلاع، حافة مستقيمة واحدة لكل قطعة؛ والخط متعدد الأضلاع المعلّم كمغلق يحصل أيضاً على الحافة من نقطته الأخيرة عائدة إلى الأولى.

      Parameters

      Returns Promise<TopoDSWirePointer>

      السلك

      const outline = await bitbybit.occt.shapes.wire.fromBasePolyline({ polyline: { points: [[0, 0, 0], [10, 0, 0], [10, 0, 10]], isClosed: true } });
      
    • يصنع سلكاً مغلقاً من ثلاث حواف من مثلث معطى كثلاث نقاط.

      Parameters

      Returns Promise<TopoDSWirePointer>

      السلك المغلق

      const outline = await bitbybit.occt.shapes.wire.fromBaseTriangle({ triangle: [[0, 0, 0], [10, 0, 0], [0, 0, 10]] });
      
    • يصنع سلكاً مغلقاً واحداً من ثلاث حواف لكل مثلث في شبكة.

      المثلث الذي لا يمكن بناء سلكه يُتخطى مع تحذير بدلاً من إيقاف الباقي.

      Parameters

      • inputs: MeshBaseDto

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

      Returns Promise<TopoDSWirePointer[]>

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

      const outlines = await bitbybit.occt.shapes.wire.fromBaseMesh({ mesh: triangles });
      

    get

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

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

      Parameters

      Returns Promise<TopoDSWirePointer>

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

      const outer = await bitbybit.occt.shapes.wire.getWire({ shape: face, index: 0 });
      
    • يجد مركز كتلة سلك، وهو نقطة توازن منحنياته؛ وهو للدائرة مركزها، خارج السلك نفسه.

      Parameters

      Returns Promise<Point3>

      نقطة مركز الكتلة

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

      Parameters

      Returns Promise<Point3[]>

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

      const centers = await bitbybit.occt.shapes.wire.getWiresCentersOfMass({ shapes: wires });
      
    • يقلب اتجاه سلك، بحيث تصبح بدايته نهايته.

      تحتفظ الحواف بترتيبها وأعلام اتجاهها الخاصة؛ ويُعلّم السلك ككل على أنه معكوس، وهو ما تقرأه معظم العمليات. reversedWireFromReversedEdges يعيد بناء السلك حافة بحافة بدلاً من ذلك.

      Parameters

      Returns Promise<TopoDSWirePointer>

      سلك جديد يسير في الاتجاه المعاكس

      const back = await bitbybit.occt.shapes.wire.reversedWire({ shape: wire });
      
    • يقلب اتجاه سلك بعكس كل حافة ووصلها مجدداً بالترتيب المعاكس.

      الناتج سلك يمتد في الاتجاه الآخر من أوله إلى آخره، وهو ما تحتاجه بعض العمليات حيث لا يكفي علم reversedWire البسيط.

      Parameters

      Returns Promise<TopoDSWirePointer>

      سلك جديد يسير في الاتجاه المعاكس

      const back = await bitbybit.occt.shapes.wire.reversedWireFromReversedEdges({ shape: wire });
      
    • يخبر ما إذا كان السلك مغلقاً، وذلك عندما تتطابق نقطتا بدايته ونهايته ضمن تفاوت صغير.

      Parameters

      Returns Promise<boolean>

      true عندما يلتقي الطرفان

      const wireIsClosed = await bitbybit.occt.shapes.wire.isWireClosed({ shape: wire });
      
    • يقيس طول سلك على طول منحنياته، بوحدات النموذج.

      Parameters

      Returns Promise<number>

      الطول

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

      Parameters

      Returns Promise<number[]>

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

      const lengths = await bitbybit.occt.shapes.wire.getWiresLengths({ shapes: wires });
      

    multiple

    • يصنع سلك مضلع مغلقاً واحداً لكل قائمة نقاط، كما يفعل createPolygonWire.

      مع returnCompound بقيمة true تُحزم الأسلاك في شكل مركب واحد بدلاً من قائمة.

      Parameters

      • inputs: PolygonsDto

        المضلعات وما إذا كان يجمعها في مركب

      Returns Promise<TopoDSCompoundPointer | TopoDSWirePointer[]>

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

      const outlines = await bitbybit.occt.shapes.wire.createPolygons({
      polygons: [{ points: [[0, 0, 0], [5, 0, 0], [5, 0, 5]] }, { points: [[10, 0, 0], [15, 0, 0], [15, 0, 5]] }],
      returnCompound: false,
      });
    • يصنع سلكاً مستقيماً واحداً ذا حافة واحدة لكل تعريف خط.

      مع returnCompound بقيمة true تُحزم الأسلاك في شكل مركب واحد بدلاً من قائمة.

      Parameters

      Returns Promise<TopoDSCompoundPointer | TopoDSWirePointer[]>

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

      const lines = await bitbybit.occt.shapes.wire.createLines({
      lines: [{ start: [0, 0, 0], end: [10, 0, 0] }, { start: [0, 0, 5], end: [10, 0, 5] }],
      returnCompound: false,
      });
    • يصنع سلك خط متعدد الأضلاع مفتوحاً واحداً لكل قائمة نقاط، كما يفعل createPolylineWire.

      مع returnCompound بقيمة true تُحزم الأسلاك في شكل مركب واحد بدلاً من قائمة.

      Parameters

      • inputs: Bit.Inputs.OCCT.PolylinesDto

        الخطوط متعددة الأضلاع وما إذا كان يجمعها في مركب

      Returns Promise<TopoDSCompoundPointer | TopoDSWirePointer[]>

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

      const paths = await bitbybit.occt.shapes.wire.createPolylines({
      polylines: [{ points: [[0, 0, 0], [5, 0, 0], [5, 0, 5]] }, { points: [[10, 0, 0], [15, 0, 0]] }],
      returnCompound: false,
      });
    • يصنع سلك Bezier واحداً لكل تعريف، كما يفعل createBezier.

      مع returnCompound بقيمة true تُحزم الأسلاك في شكل مركب واحد بدلاً من قائمة.

      Parameters

      • inputs: BezierWiresDto

        تعريفات Bezier وما إذا كان يجمعها في مركب

      Returns Promise<TopoDSCompoundPointer | TopoDSWirePointer[]>

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

      const curves = await bitbybit.occt.shapes.wire.createBezierWires({
      bezierWires: [{ points: [[0, 0, 0], [5, 0, 10], [10, 0, 0]], closed: false }, { points: [[0, 0, 5], [5, 0, 15], [10, 0, 5]], closed: false }],
      returnCompound: false,
      });
    • يصنع سلك B-spline مستكملاً واحداً لكل تعريف، كما يفعل interpolatePoints.

      مع returnCompound بقيمة true تُحزم الأسلاك في شكل مركب واحد بدلاً من قائمة.

      Parameters

      • inputs: InterpolateWiresDto

        تعريفات الاستيفاء وما إذا كان يجمعها في مركب

      Returns Promise<TopoDSCompoundPointer | TopoDSWirePointer[]>

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

      const curves = await bitbybit.occt.shapes.wire.interpolateWires({
      interpolations: [{ points: [[0, 0, 0], [5, 0, 5], [10, 0, 0]], periodic: false, tolerance: 1e-7 }, { points: [[0, 0, 5], [5, 0, 10], [10, 0, 5]], periodic: false, tolerance: 1e-7 }],
      returnCompound: false,
      });
    • يصنع سلك B-spline تقريبياً واحداً لكل تعريف، كما يفعل createBSpline.

      مع returnCompound بقيمة true تُحزم الأسلاك في شكل مركب واحد بدلاً من قائمة.

      Parameters

      • inputs: BSplinesDto

        تعريفات B-spline وما إذا كان يجمعها في مركب

      Returns Promise<TopoDSCompoundPointer | TopoDSWirePointer[]>

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

      const curves = await bitbybit.occt.shapes.wire.createBSplines({
      bSplines: [{ points: [[0, 0, 0], [5, 0, 5], [10, 0, 0]], closed: false }, { points: [[0, 0, 5], [5, 0, 10], [10, 0, 5]], closed: false }],
      returnCompound: false,
      });

    place

    • يرسم سلكاً مسطحاً مرسوماً على المستوى الأرضي على سطح وجه، كما لو كان الرسم ملفوفاً حوله.

      تُقرأ إحداثية Z للسلك على أنها U وإحداثية X على أنها V، بقيم UV الحقيقية للوجه، التي يبلّغ عنها shapes.face.getUMinBound وأشقاؤه؛ والرسم الذي يتسع داخل تلك الحدود يهبط على الوجه.

      Parameters

      Returns Promise<TopoDSWirePointer>

      السلك الواقع على سطح الوجه

      const onSurface = await bitbybit.occt.shapes.wire.placeWireOnFace({ wire: flatWire, face: cylinderFace });
      
    • يرسم عدة أسلاك مسطحة مرسومة على المستوى الأرضي على سطح وجه، كما يفعل placeWireOnFace لسلك واحد.

      Parameters

      Returns Promise<TopoDSWirePointer[]>

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

      const onSurface = await bitbybit.occt.shapes.wire.placeWiresOnFace({ wires: flatWires, face: cylinderFace });
      
    • يسقط سلكاً على شكل على طول اتجاه، مثل إلقاء ظله على السطح.

      الناتج مركب من المنحنيات حيث يلتقي الإسقاط بأوجه الشكل، وقد يكون على جانبيه القريب والبعيد معاً. اقطع به وجهاً عبر shapes.face.createFaceFromWireOnFace أو استخدمه كمسار.

      Parameters

      Returns Promise<TopoDSCompoundPointer>

      مركب من المنحنيات المسقطة

      const shadow = await bitbybit.occt.shapes.wire.project({ wire: circle, shape: sphere, direction: [0, -1, 0] });
      

    primitives

    • يصنع دائرة كاملة كسلك مغلق ذي حافة واحدة، يقع في المستوى الذي ناظمه هو direction؛ والقيمة الافتراضية [0, 1, 0] تضعه مسطحاً على الأرض.

      Parameters

      Returns Promise<TopoDSWirePointer>

      سلك الدائرة

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

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

      Parameters

      • inputs: HexagonsInGridDto

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

      Returns Promise<TopoDSWirePointer[]>

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

      const cells = await bitbybit.occt.shapes.wire.hexagonsInGrid({
      width: 20,
      height: 10,
      nrHexagonsInWidth: 8,
      nrHexagonsInHeight: 4,
      flatTop: false,
      scalePatternWidth: [0.9],
      scalePatternHeight: [0.9],
      });
    • يصنع سلك مربع مغلقاً متمركزاً على center.

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

      Parameters

      Returns Promise<TopoDSWirePointer>

      سلك المربع

      const square = await bitbybit.occt.shapes.wire.createSquareWire({ size: 10, center: [0, 0, 0], direction: [0, 1, 0] });
      
    • يصنع سلكاً مغلقاً على شكل نجمة بعدد numRays من الرؤوس.

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

      Parameters

      • inputs: Bit.Inputs.OCCT.StarDto

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

      Returns Promise<TopoDSWirePointer>

      سلك النجمة

      const star = await bitbybit.occt.shapes.wire.createStarWire({ 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<TopoDSWirePointer>

      سلك الشجرة

      const tree = await bitbybit.occt.shapes.wire.createChristmasTreeWire({
      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],
      });
    • يصنع سلك مضلع منتظم مغلقاً بعدد nrCorners من الزوايا، كلها على دائرة نصف قطرها radius.

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

      Parameters

      • inputs: NGonWireDto

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

      Returns Promise<TopoDSWirePointer>

      سلك المضلع

      const hexagon = await bitbybit.occt.shapes.wire.createNGonWire({ nrCorners: 6, radius: 5, center: [0, 0, 0], direction: [0, 1, 0] });
      
    • يصنع سلك متوازي أضلاع مغلقاً: مستطيل بعرض width وارتفاع height تميل أضلاعه بمقدار angle درجة.

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

      Parameters

      • inputs: ParallelogramDto

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

      Returns Promise<TopoDSWirePointer>

      سلك متوازي الأضلاع

      const shape = await bitbybit.occt.shapes.wire.createParallelogramWire({ 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<TopoDSWirePointer>

      سلك القلب

      const heart = await bitbybit.occt.shapes.wire.createHeartWire({ sizeApprox: 10, rotation: 0, center: [0, 0, 0], direction: [0, 1, 0] });
      
    • يصنع سلك مستطيل مغلقاً متمركزاً على center.

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

      Parameters

      Returns Promise<TopoDSWirePointer>

      سلك المستطيل

      const rectangle = await bitbybit.occt.shapes.wire.createRectangleWire({ 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<TopoDSWirePointer>

      السلك على شكل حرف L

      const outline = await bitbybit.occt.shapes.wire.createLPolygonWire({
      widthFirst: 2,
      lengthFirst: 10,
      widthSecond: 2,
      lengthSecond: 6,
      align: Bit.Inputs.OCCT.directionEnum.outside,
      rotation: 0,
      center: [0, 0, 0],
      direction: [0, 1, 0],
      });
    • يصنع قطعاً ناقصاً كاملاً كسلك مغلق ذي حافة واحدة، يقع في المستوى الذي ناظمه هو direction.

      يجب ألا يكون radiusMajor أصغر من radiusMinor، وإلا ترفض النواة القطع الناقص؛ والاتجاه الافتراضي [0, 1, 0] يضعه مسطحاً على الأرض.

      Parameters

      Returns Promise<TopoDSWirePointer>

      سلك القطع الناقص

      const ellipse = await bitbybit.occt.shapes.wire.createEllipseWire({ center: [0, 0, 0], direction: [0, 1, 0], radiusMinor: 3, radiusMajor: 6 });
      
    • يصنع سلكاً حلزونياً، وهو لفافة بنصف قطر ثابت radius تصعد pitch من وحدات النموذج لكل لفة حتى تصل إلى height.

      يبدأ بجانب center ويصعد على طول direction؛ و clockwise يعكس اتجاه اللف. يُقرَّب الحلزون بمنحنى ناعم ضمن tolerance. نصف القطر أو الخطوة أو الارتفاع بقيمة 0 أو أقل يعطي سلكاً null.

      Parameters

      • inputs: HelixWireDto

        نصف القطر والخطوة والارتفاع ومركز القاعدة واتجاه المحور واتجاه اللف والتفاوت

      Returns Promise<TopoDSWirePointer>

      سلك الحلزون

      const spring = await bitbybit.occt.shapes.wire.createHelixWire({ radius: 2, pitch: 1, height: 10, center: [0, 0, 0], direction: [0, 1, 0], clockwise: false, tolerance: 1e-4 });
      
    • يصنع سلكاً حلزونياً مثل createHelixWire، لكن حجمه محدد بـ numTurns بدلاً من الارتفاع: تصعد اللفافة pitch من وحدات النموذج لكل لفة، numTurns مرة.

      Parameters

      • inputs: HelixWireByTurnsDto

        نصف القطر والخطوة وعدد اللفات ومركز القاعدة واتجاه المحور واتجاه اللف والتفاوت

      Returns Promise<TopoDSWirePointer>

      سلك الحلزون

      const spring = await bitbybit.occt.shapes.wire.createHelixWireByTurns({ radius: 2, pitch: 1, numTurns: 5, center: [0, 0, 0], direction: [0, 1, 0], clockwise: false, tolerance: 1e-4 });
      
    • يصنع سلكاً حلزونياً مخروطياً يتغير نصف قطره بانتظام من startRadius عند القاعدة إلى endRadius عند القمة، صاعداً pitch من وحدات النموذج لكل لفة حتى يصل إلى height.

      يبدأ بجانب center ويصعد على طول direction؛ و clockwise يعكس اتجاه اللف. يُقرَّب المنحنى ضمن tolerance.

      Parameters

      • inputs: TaperedHelixWireDto

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

      Returns Promise<TopoDSWirePointer>

      سلك الحلزون المستدق

      const cone = await bitbybit.occt.shapes.wire.createTaperedHelixWire({ startRadius: 3, endRadius: 0.5, pitch: 1, height: 8, center: [0, 0, 0], direction: [0, 1, 0], clockwise: false, tolerance: 1e-4 });
      
    • يصنع سلكاً حلزونياً مسطحاً في المستوى الذي ناظمه هو direction: numTurns لفة ينمو نصف قطرها بانتظام من startRadius إلى endRadius.

      الاتجاه الافتراضي [0, 1, 0] يضعه مسطحاً على الأرض؛ و clockwise يعكس اتجاه اللف، ويُقرَّب المنحنى ضمن tolerance.

      Parameters

      • inputs: FlatSpiralWireDto

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

      Returns Promise<TopoDSWirePointer>

      سلك الحلزون المسطح

      const spiral = await bitbybit.occt.shapes.wire.createFlatSpiralWire({ startRadius: 0.5, endRadius: 5, numTurns: 4, center: [0, 0, 0], direction: [0, 1, 0], clockwise: false, tolerance: 1e-4 });
      
    • يكتب نصاً كأسلاك ضربات على المستوى الأرضي بخط Hershey simplex أحادي الخط، سلك خط متعدد الأضلاع مفتوح واحد لكل ضربة قلم.

      height هو ارتفاع الحرف الكبير بوحدات النموذج، و lineSpacing و letterSpacing مضاعفات له، و align يحاذي الأسطر المختلفة الطول، و centerOnOrigin ينقل الكتلة إلى نقطة الأصل.

      Parameters

      • inputs: TextWiresDto

        النص وحجمه وتباعده والمحاذاة وخيارات الوضع

      Returns Promise<TopoDSWirePointer[]>

      سلك واحد لكل ضربة قلم، بترتيب الكتابة

      const strokes = await bitbybit.occt.shapes.wire.textWires({
      text: "Hello",
      height: 5,
      lineSpacing: 1.5,
      letterSpacing: 0,
      align: Bit.Inputs.Base.horizontalAlignEnum.left,
      centerOnOrigin: true,
      });
    • يكتب نصاً كأسلاك ضربات مثل textWires ويحزمها في مركبات، مع حجم الكتلة إلى جانبها.

      يحمل الناتج compound بالنص كله، و characters بمركب واحد لكل حرف بترتيب الكتابة، و width و height كامتداد الكتلة على طول X وعلى طول Z، و center كمنتصف الكتلة.

      Parameters

      • inputs: TextWiresDto

        النص وحجمه وتباعده والمحاذاة وخيارات الوضع

      Returns Promise<TextWiresDataDto<TopoDSCompoundPointer>>

      مركب النص ومركبات الأحرف والحجم المقاس

      const text = await bitbybit.occt.shapes.wire.textWiresWithData({
      text: "Hi",
      height: 5,
      lineSpacing: 1.5,
      letterSpacing: 0,
      align: Bit.Inputs.Base.horizontalAlignEnum.left,
      centerOnOrigin: false,
      });
      console.log(text.width, text.height, text.characters.length);

    rebuild

    • يعيد بناء كل حافة في سلك كمنحنى B-spline بدرجة معطاة، ضمن تفاوت، ويصل النتائج مجدداً في سلك.

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

      Parameters

      Returns Promise<TopoDSWirePointer>

      سلك جديد بالحواف المعاد بناؤها

      const simpler = await bitbybit.occt.shapes.wire.rebuildWireDegree({ shape: wire, degree: 3, tolerance: 1e-3 });
      

    seam

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

      لا تتغير الهندسة؛ بل فقط المكان الذي يُعدّ السلك بادئاً منه. مخصص للأسلاك ذات الحافة الواحدة مثل الدوائر: تُنقل كل حافة دورية، والحواف غير الدورية تبقى كما هي.

      Parameters

      Returns Promise<TopoDSWirePointer>

      سلك جديد يبدأ عند خط الالتحام

      const rotated = await bitbybit.occt.shapes.wire.moveWireSeamByParameter({ shape: circle, parameter: 1.57 });
      
    • ينقل درز سلك دوري مغلق، وهو النقطة التي يبدأ وينتهي عندها، بمسافة على طول المنحنى من بدايته الحالية.

      لا تتغير الهندسة؛ بل فقط المكان الذي يُعدّ السلك بادئاً منه. مخصص للأسلاك ذات الحافة الواحدة مثل الدوائر: تُنقل كل حافة دورية، والحواف غير الدورية تبقى كما هي.

      Parameters

      Returns Promise<TopoDSWirePointer>

      سلك جديد يبدأ عند خط الالتحام

      const rotated = await bitbybit.occt.shapes.wire.moveWireSeamByLength({ shape: circle, length: 2.5 });
      

    via points

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

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

      Parameters

      • inputs: PolygonDto

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

      Returns Promise<TopoDSWirePointer>

      السلك المغلق

      const square = await bitbybit.occt.shapes.wire.createPolygonWire({ points: [[0, 0, 0], [10, 0, 0], [10, 0, 10], [0, 0, 10]] });
      
    • يصنع سلكاً مستقيماً ذا حافة واحدة بين نقطتين.

      Parameters

      Returns Promise<TopoDSWirePointer>

      السلك المستقيم

      const line = await bitbybit.occt.shapes.wire.createLineWire({ start: [0, 0, 0], end: [10, 0, 0] });
      
    • يصنع سلكاً مستقيماً ذا حافة واحدة بين نقطتين ويطيله إلى ما بعد كل منهما.

      extensionStart و extensionEnd مسافتان بوحدات النموذج تُضافان بعد البداية والنهاية على طول الخط؛ ويجب أن تختلف النقطتان وإلا يُرمى خطأ.

      Parameters

      Returns Promise<TopoDSWirePointer>

      السلك المستقيم الممدد

      const longer = await bitbybit.occt.shapes.wire.createLineWireWithExtensions({ start: [0, 0, 0], end: [10, 0, 0], extensionStart: 2, extensionEnd: 5 });
      
    • يصنع سلكاً مفتوحاً من حواف مستقيمة عبر قائمة من النقاط، بالترتيب.

      السلك غير مغلق؛ و createPolygonWire يضيف الحافة العائدة إلى النقطة الأولى.

      Parameters

      Returns Promise<TopoDSWirePointer>

      السلك المفتوح

      const path = await bitbybit.occt.shapes.wire.createPolylineWire({ points: [[0, 0, 0], [10, 0, 0], [10, 0, 10]] });
      
    • يصنع سلك Bezier ناعماً توجهه نقاط التحكم: يبدأ عند النقطة الأولى، وينتهي عند الأخيرة ويُجذب نحو النقاط الواقعة بينهما دون المرور عبرها.

      closed يلحق النقطة الأولى مرة أخرى بحيث يلتقي الطرفان؛ أما periodic فيبني منحنى مغلقاً ناعماً عبر الدرز. degree يحد عدد الجيران الذين يشكلون كل جزء.

      Parameters

      • inputs: BezierDto

        نقاط التحكم وخيارات الإغلاق والدرجة

      Returns Promise<TopoDSWirePointer>

      سلك Bezier

      const curve = await bitbybit.occt.shapes.wire.createBezier({ points: [[0, 0, 0], [5, 0, 10], [10, 0, -10], [15, 0, 0]], closed: false, periodic: false });
      
    • يصنع سلك Bezier مثل createBezier، مع وزن لكل نقطة تحكم يحدد مدى قوة جذبها للمنحنى.

      الوزن الأكبر من 1 يجذب المنحنى نحو نقطته، والأصغر من 1 يتركه يبتعد. يجب أن تطابق الأوزان النقاط: العدد نفسه، أو واحد أكثر عندما تكون closed بقيمة true و periodic بقيمة false، لأن النقطة الأولى تتكرر.

      Parameters

      • inputs: BezierWeightsDto

        نقاط التحكم وأوزانها وخيارات الإغلاق والدرجة

      Returns Promise<TopoDSWirePointer>

      سلك Bezier الموزون

      const curve = await bitbybit.occt.shapes.wire.createBezierWeights({
      points: [[0, 0, 0], [5, 0, 10], [10, 0, 0]],
      weights: [1, 3, 1],
      closed: false,
      periodic: false,
      });
    • يصنع سلك B-spline ناعماً يمر عبر كل نقطة بالترتيب.

      periodic يغلق المنحنى بحيث يكون ناعماً عبر الدرز، وهو ما يعطي حلقات جميلة الشكل. parametrization يتحكم في التباعد بين النقاط: centripetal يقاوم الرؤوس الحادة والتجاوز عندما تكون النقاط غير منتظمة. startTangent و endTangent، أو مدخل واحد في tangents لكل نقطة، يفرضان اتجاه المنحنى هناك.

      Parameters

      • inputs: InterpolationDto

        النقاط وما إذا كان يغلق المنحنى والتفاوت والمعلمة والمماسات الاختيارية

      Returns Promise<TopoDSWirePointer>

      سلك B-spline المار بالنقاط

      const loop = await bitbybit.occt.shapes.wire.interpolatePoints({
      points: [[0, 0, 0], [10, 0, 5], [10, 0, 15], [0, 0, 10]],
      periodic: true,
      tolerance: 1e-7,
      parametrization: Bit.Inputs.OCCT.bSplineParametrizationEnum.centripetal,
      });
    • يصنع سلك B-spline مغلقاً وناعماً عبر النقاط يكون شكله متناظراً مرآتياً كلما كانت النقاط كذلك، دون نقطة بداية أو نهاية غريبة المظهر.

      قد يبدو interpolatePoints الدوري العادي منحرفاً عند درزه للمدخلات المتناظرة مثل المربع أو المثلث؛ وهذا البديل لا يفعل ذلك. يفشل مع خطأ إذا تعذر استكمال النقاط.

      Parameters

      Returns Promise<TopoDSWirePointer>

      سلك B-spline المتماثل المغلق

      const rounded = await bitbybit.occt.shapes.wire.interpolatePointsSymmetric({ points: [[0, 0, 0], [10, 0, 0], [10, 0, 10], [0, 0, 10]], tolerance: 1e-7 });
      
    • يصنع سلك B-spline ناعماً يقرّب قائمة من النقاط: يتبعها عن كثب لكن لا يلزم أن يمر عبر كل منها تماماً.

      closed يلحق النقطة الأولى مرة أخرى بحيث يلتقي الطرفان. يستخدم التقريب درجة بين 3 و 8 وتفاوتاً قدره 0.001 من وحدات النموذج؛ استخدم interpolatePoints عندما يجب أن يمر المنحنى عبر النقاط.

      Parameters

      • inputs: BSplineDto

        النقاط وما إذا كان يغلق المنحنى

      Returns Promise<TopoDSWirePointer>

      سلك B-spline

      const curve = await bitbybit.occt.shapes.wire.createBSpline({ points: [[0, 0, 0], [5, 0, 5], [10, 0, 0], [15, 0, 5]], closed: false });
      

    via wires

    • يرسم خطاً متعرجاً يرتد بين سلكين: يُقسم كلاهما إلى العدد نفسه من النقاط ويزورها خط متعدد الأضلاع بالتناوب.

      nrZigZags يحدد عدد الارتدادات؛ و inverse يبدأ على السلك الثاني؛ و divideByEqualDistance يباعد النقاط حسب الطول بدلاً من المعلمة؛ ومع zigZagsPerEdge بقيمة true تحصل كل حافة على تعرجها الخاص، لذا يجب أن تتطابق أعداد الحواف.

      Parameters

      Returns Promise<TopoDSWirePointer>

      السلك المتعرج

      const zigzag = await bitbybit.occt.shapes.wire.createZigZagBetweenTwoWires({ wire1: lower, wire2: upper, nrZigZags: 20, inverse: false, divideByEqualDistance: true, zigZagsPerEdge: false });
      
    • يصل نقاط بداية عدة أسلاك أو حواف في سلك جديد واحد ونقاط نهايتها في سلك آخر.

      wireType يجعلها خطوطاً متعددة الأضلاع أو منحنيات ناعمة مستكملة، و closed يصل النقطة الأخيرة عائدة إلى الأولى، و tolerance يُستخدم للاستكمال. أقل من شكلين يرمي خطأ.

      Parameters

      Returns Promise<TopoDSWirePointer[]>

      سلكان: واحد يمر بنقاط البداية، وآخر يمر بنقاط النهاية

      const [starts, ends] = await bitbybit.occt.shapes.wire.createWiresBetweenStartEndPointsOfWiresAndEdges({
      shapes: [wireA, wireB, wireC],
      wireType: Bit.Inputs.OCCT.wireFromPointsTypeEnum.interpolated,
      closed: false,
      tolerance: 1e-7,
      });
    • يقسم عدة أسلاك أو حواف إلى العدد نفسه من النقاط ويصل النقاط عند كل موضع في سلك جديد، مثل درجات السلم.

      nrOfDivisions خطوة تعطي درجة واحدة أكثر من ذلك؛ و divideByEqualDistance يباعد النقاط حسب الطول بدلاً من المعلمة؛ و wireType يجعل الدرجات خطوطاً متعددة الأضلاع أو منحنيات ناعمة، و closed يصل كلاً منها في حلقة.

      Parameters

      Returns Promise<TopoDSWirePointer[]>

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

      const rungs = await bitbybit.occt.shapes.wire.createWiresBetweenSubdividedPointsOfWiresAndEdges({
      shapes: [rail1, rail2],
      nrOfDivisions: 10,
      divideByEqualDistance: true,
      wireType: Bit.Inputs.OCCT.wireFromPointsTypeEnum.polyline,
      closed: false,
      tolerance: 1e-7,
      });
    • يرسم مخططاً مغلقاً حول دائرتين تقعان في مستوى واحد، واصلاً إياهما بخطوط مماسة: شكل حزام أو كبسولة.

      keepLines يختار خطوط المماس الخارجية (الحزام) أو الداخلية المتقاطعة؛ و circleRemainders يختار أي قوس من كل دائرة يبقى في المخطط. يجب أن يتكون كل سلك دائرة من حافة واحدة.

      Parameters

      Returns Promise<TopoDSWirePointer>

      سلك المخطط الخارجي المغلق

      const belt = await bitbybit.occt.shapes.wire.createWireFromTwoCirclesTan({
      circle1,
      circle2,
      keepLines: Bit.Inputs.OCCT.twoSidesStrictEnum.outside,
      circleRemainders: Bit.Inputs.OCCT.fourSidesStrictEnum.outside,
      tolerance: 1e-7,
      });