Bitbybit Docs
    Preparing search index...

    Class OCCTFace

    Muka di OpenCascade: potongan terbatas dari sebuah permukaan, datar atau melengkung, dengan kawat batas luar dan kawat dalam opsional yang membuat lubang. Bangun dari kawat atau permukaan, atau sebagai bentuk datar siap pakai (lingkaran, persegi panjang, bintang, profil balok) yang terletak pada bidang dasar kecuali direction menentukan lain; telusuri permukaannya melalui parameter UV untuk mendapatkan titik, normal dan grid kawat; potong pola lubang ke dalamnya; dan ukur luas serta pusat massa. U dan V adalah dua arah dari sebuah permukaan, diberikan di sini sebagai fraksi dari 0 sampai 1 dari rentang muka itu sendiri. Muka-muka tersambung tepi ke tepi menjadi cangkang, yang ditangani shapes.shell.

    Index

    Constructors

    beam profiles

    • Membuat penampang datar balok I: dua flens horizontal yang disambungkan oleh badan vertikal.

      width adalah lebar flens, height tinggi total, webThickness dan flangeThickness ketebalan dindingnya; alignment menyatakan titik mana dari kotak profil yang berada di center, rotation memutarnya dalam bidangnya, dalam derajat. Terbaring di tanah, siap diekstrusi sepanjang Y.

      Parameters

      • inputs: IBeamProfileDto

        Ukuran profil, kedua ketebalan, perataan, rotasi, pusat dan normal bidang

      Returns Promise<TopoDSFacePointer>

      Muka profil balok 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] });
    • Membuat penampang datar balok H: dua flens vertikal yang disambungkan oleh badan horizontal, balok I yang direbahkan.

      width adalah lebar total, height tinggi flens, webThickness dan flangeThickness ketebalan dindingnya; alignment menyatakan titik mana dari kotak profil yang berada di center, rotation memutarnya dalam bidangnya, dalam derajat. Terbaring di tanah.

      Parameters

      • inputs: HBeamProfileDto

        Ukuran profil, kedua ketebalan, perataan, rotasi, pusat dan normal bidang

      Returns Promise<TopoDSFacePointer>

      Muka profil balok 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],
      });
    • Membuat penampang datar balok T: flens horizontal dengan badan vertikal yang menggantung dari tengahnya.

      width adalah lebar flens, height tinggi total, webThickness dan flangeThickness ketebalan dindingnya; alignment menyatakan titik mana dari kotak profil yang berada di center, dan rotation memutarnya dalam bidangnya, dalam derajat. Terbaring rata di tanah.

      Parameters

      • inputs: TBeamProfileDto

        Ukuran profil, kedua ketebalan, perataan, rotasi, pusat dan normal bidang

      Returns Promise<TopoDSFacePointer>

      Muka profil balok 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],
      });
    • Membuat penampang datar balok U, sebuah kanal: badan dengan dua flens selebar flangeWidth yang berdiri dari ujung-ujungnya.

      width dan height adalah ukuran total, webThickness dan flangeThickness ketebalan dindingnya; alignment menyatakan titik mana dari kotak profil yang berada di center, rotation memutarnya dalam bidangnya, dalam derajat. Terbaring rata di tanah.

      Parameters

      • inputs: UBeamProfileDto

        Ukuran profil, ketebalan, lebar flens, perataan, rotasi, pusat dan normal bidang

      Returns Promise<TopoDSFacePointer>

      Muka profil balok 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

    • Mengumpulkan fakta diagnostik tentang sebuah muka: jenis permukaannya, derajat U dan V, jumlah titik kontrol dan knot, apakah U atau V tertutup, periodik atau rasional, batas UV, luas, keplanaran, orientasi dan jumlah kawat dan tepi.

      Muka kosong atau null menghasilkan laporan bertanda tidak valid.

      Parameters

      Returns Promise<FaceDebugInfo>

      Laporan

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

    extract

    • Meletakkan grid titik di atas sebuah muka dengan melangkah merata melalui rentang U dan V-nya.

      nrDivisionsU kali nrDivisionsV titik menutupi muka dari tepi ke tepi, dicantumkan baris demi baris: semua nilai V untuk U pertama, lalu U berikutnya. Flag penghapusan membuang baris pertama atau terakhir; flag geser mendorong setiap titik setengah langkah.

      Parameters

      Returns Promise<Point3[]>

      Titik-titik, baris demi baris

      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,
      });
    • Menggambar kawat-kawat berjarak sama melintasi sebuah muka sepanjang satu arah parameter, seperti garis-garis pada kertas bergaris.

      nrDivisions langkah menghasilkan satu kawat lebih banyak dari itu, termasuk garis-garis batas; removeStart dan removeEnd membuangnya, shiftHalfStep memindahkan setiap kawat setengah langkah. Dengan isU bernilai true setiap kawat berada pada U tetap dan berjalan melintasi V; false menukar perannya.

      Parameters

      Returns Promise<TopoDSWirePointer[]>

      Kawat-kawat, secara berurutan di sepanjang arah yang dipilih

      const lines = await bitbybit.occt.shapes.face.subdivideToWires({ shape: face, nrDivisions: 10, isU: true, shiftHalfStep: false, removeStart: false, removeEnd: false });
      
    • Meletakkan grid titik di atas sebuah muka seperti subdivideToPoints, tetapi menggeser dan menghapus titik pada setiap baris atau kolom ke-n, untuk pola seperti bata dan berselang-seling.

      Setiap aturan adalah pasangan: shiftHalfStepNthU menyatakan setiap baris V ke berapa yang bergeser setengah langkah dalam U, shiftHalfStepUOffsetN dari mana penghitungan dimulai; aturan penghapusan membuang setiap titik ke-n dari baris tepi.

      Parameters

      Returns Promise<Point3[]>

      Titik-titik, baris demi baris

      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,
      });
    • Menghitung normal permukaan pada setiap titik grid yang akan diletakkan subdivideToPoints di atas sebuah muka, dengan opsi yang sama dan urutan yang sama.

      Normal-normalnya adalah vektor satuan dan mengikuti orientasi muka, sehingga muka yang dibalik memberikannya terbalik. Pasangkan daftar ini dengan subdivideToPoints untuk menempatkan benda-benda berdiri di atas permukaan.

      Parameters

      Returns Promise<Vector3[]>

      Normal-normal satuan, baris demi baris

      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,
      });
    • Mencantumkan pasangan parameter UV dari grid yang akan diletakkan subdivideToPoints di atas sebuah muka, dengan opsi yang sama dan urutan yang sama.

      Pasangan-pasangannya dalam nilai UV nyata muka, bukan pecahan.

      Parameters

      Returns Promise<Point2[]>

      Pasangan-pasangan UV, baris demi baris

      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,
      });
    • Menemukan titik pada sebuah muka pada pecahan UV yang diberikan.

      paramU dan paramV berjalan dari 0 sampai 1 melintasi rentang U dan V muka, sehingga 0.5, 0.5 adalah tengah rentang, yang pada muka yang dipangkas tidak selalu berada di dalam muka.

      Parameters

      Returns Promise<Point3>

      Titik pada permukaan

      const middle = await bitbybit.occt.shapes.face.pointOnUV({ shape: face, paramU: 0.5, paramV: 0.5 });
      
    • Menemukan normal permukaan sebuah muka pada pecahan UV yang diberikan.

      paramU dan paramV berjalan dari 0 sampai 1 melintasi rentang U dan V muka. Normalnya adalah vektor satuan dan mengikuti orientasi muka, sehingga muka yang dibalik memberikannya terbalik.

      Parameters

      Returns Promise<Vector3>

      Normal satuan

      const normal = await bitbybit.occt.shapes.face.normalOnUV({ shape: face, paramU: 0.5, paramV: 0.5 });
      
    • Menemukan titik-titik pada sebuah muka pada beberapa pasangan pecahan UV sekaligus.

      Setiap pasangan memuat U lalu V, keduanya dari 0 sampai 1 melintasi rentang muka.

      Parameters

      Returns Promise<Point3[]>

      Satu titik per pasangan, dalam urutan yang sama

      const points = await bitbybit.occt.shapes.face.pointsOnUVs({ shape: face, paramsUV: [[0, 0], [0.5, 0.5], [1, 1]] });
      
    • Menemukan normal permukaan sebuah muka pada beberapa pasangan pecahan UV sekaligus.

      Setiap pasangan memuat U lalu V, keduanya dari 0 sampai 1 melintasi rentang muka. Normal-normalnya adalah vektor satuan dari permukaan dasarnya; berbeda dengan normalOnUV, normal-normal ini tidak dibalik untuk muka yang dibalik.

      Parameters

      Returns Promise<Vector3[]>

      Satu normal satuan per pasangan, dalam urutan yang sama

      const normals = await bitbybit.occt.shapes.face.normalsOnUVs({ shape: face, paramsUV: [[0, 0], [0.5, 0.5], [1, 1]] });
      
    • Menempatkan titik-titik berjarak sama sepanjang satu garis lurus melintasi rentang UV sebuah muka.

      Dengan isU bernilai true garis berada di param (pecahan dari 0 sampai 1 dari rentang U) dan nrPoints titik tersebar di seluruh rentang V; dengan false perannya ditukar. removeStartPoint dan removeEndPoint membuang ujung-ujungnya, dan shiftHalfStep memindahkan setiap titik setengah langkah.

      Parameters

      Returns Promise<Point3[]>

      Titik-titik di sepanjang garis, secara berurutan

      const midline = await bitbybit.occt.shapes.face.subdivideToPointsOnParam({ shape: face, isU: true, param: 0.5, nrPoints: 10, shiftHalfStep: false, removeStartPoint: false, removeEndPoint: false });
      
    • Menggambar satu kawat melintasi sebuah muka sepanjang garis parameter, mengikuti permukaan.

      Dengan isU bernilai true kawat berada di param (pecahan dari 0 sampai 1 dari rentang U) dan berjalan di seluruh rentang V; dengan false perannya ditukar.

      Parameters

      Returns Promise<TopoDSWirePointer>

      Kawat pada permukaan

      const middle = await bitbybit.occt.shapes.face.wireAlongParam({ shape: face, isU: true, param: 0.5 });
      
    • Menggambar beberapa kawat melintasi sebuah muka, satu per nilai parameter, mengikuti permukaan.

      Dengan isU bernilai true setiap kawat berada pada pecahannya dari rentang U dan berjalan di seluruh rentang V; dengan false perannya ditukar.

      Parameters

      Returns Promise<TopoDSWirePointer[]>

      Satu kawat per fraksi, dalam urutan yang sama

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

    filter

    • Memilah titik-titik sebagai di dalam muka, pada batasnya atau di luarnya, dan menyimpan grup yang dipilih.

      keepIn, keepOn, keepOut dan keepUnknown memilih grupnya; tolerance menentukan seberapa dekat ke batas yang dianggap berada di atasnya. Dengan useBndBox, titik di luar kotak pembatas yang diperbesar sebesar gapTolerance dianggap di luar.

      Parameters

      Returns Promise<Point3[]>

      Titik-titik yang lolos, dalam urutan aslinya

      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,
      });
    • Menjalankan filterFacePoints terhadap beberapa muka dengan titik-titik dan opsi yang sama.

      Secara default hasilnya berisi satu daftar per muka; dengan flatPointsArray bernilai true daftar-daftar disatukan menjadi satu, sehingga titik pada dua muka muncul dua kali.

      Parameters

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

      Satu daftar titik per muka, atau satu daftar tergabung

      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

    • Membuat satu muka per kawat, masing-masing dipotong dari permukaan muka pemandu sehingga mengambil kelengkungan permukaan itu.

      Kawat-kawat harus berada pada permukaan. Dengan inside bernilai true setiap kawat diputar sehingga mukanya adalah daerah yang dilingkupinya; dengan false arah kawat itu sendiri yang menentukan, dan kawat yang berjalan ke arah sebaliknya menghasilkan daerah luar.

      Parameters

      Returns Promise<TopoDSFacePointer[]>

      Satu muka per kawat, dalam urutan yang sama

      const patches = await bitbybit.occt.shapes.face.createFacesFromWiresOnFace({ wires: circlesOnSphere, face: sphereFace, inside: true });
      
    • Membuat muka dari kawat yang berada pada permukaan muka pemandu, sehingga muka baru mengambil kelengkungan permukaan itu.

      Dengan inside bernilai true kawat diputar sehingga mukanya adalah daerah yang dilingkupinya; dengan false arah kawat itu sendiri yang menentukan, dan kawat yang berjalan ke arah sebaliknya menghasilkan daerah di luarnya.

      Parameters

      Returns Promise<TopoDSFacePointer>

      Muka baru

      const patch = await bitbybit.occt.shapes.face.createFaceFromWireOnFace({ wire: circleOnCylinder, face: cylinderFace, inside: true });
      
    • Membuat muka yang dibatasi kawat tertutup.

      Dengan planar bernilai true kawat harus berada pada satu bidang dan mukanya datar; dengan false permukaan halus dicocokkan melalui tepi-tepi kawat, yang mengisi kawat yang tidak datar. Bentuk yang bukan kawat memicu error.

      Parameters

      Returns Promise<TopoDSFacePointer>

      Muka baru

      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 });
    • Membuat satu muka dari beberapa kawat: kawat pertama adalah batas luar dan setiap kawat berikutnya memotong lubang di dalamnya.

      Dengan planar bernilai true kawat-kawat harus berada pada satu bidang. Kawat-kawat lubang harus berada di dalam kawat luar tanpa memotongnya atau satu sama lain.

      Parameters

      Returns Promise<TopoDSFacePointer>

      Muka dengan lubang

      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 });
    • Membuat satu muka dari beberapa kawat pada permukaan muka pemandu: kawat pertama adalah batas luar dan setiap kawat berikutnya memotong lubang.

      Muka mengambil kelengkungan permukaan pemandu. inside berlaku untuk kawat pertama: true memutarnya sehingga muka adalah daerah yang dilingkupinya; false membiarkan arahnya sendiri yang menentukan.

      Parameters

      Returns Promise<TopoDSFacePointer>

      Muka dengan lubang

      const perforated = await bitbybit.occt.shapes.face.createFaceFromWiresOnFace({ wires: [outerOnCylinder, holeOnCylinder], face: cylinderFace, inside: true });
      
    • Membuat satu muka per kawat tertutup, masing-masing seperti yang dilakukan createFaceFromWire.

      Dengan planar bernilai true setiap kawat harus berada pada satu bidang; dengan false permukaan halus dicocokkan melalui masing-masing.

      Parameters

      Returns Promise<TopoDSFacePointer[]>

      Satu muka per kawat, dalam urutan yang sama

      const faces = await bitbybit.occt.shapes.face.createFacesFromWires({ shapes: wires, planar: true });
      
    • Menyambungkan lingkaran-lingkaran dengan sabuk singgung: untuk setiap pasangan digambar dua garis singgung luar dan busur-busur luar di antaranya, dan garis luar itu diisi dengan muka datar.

      combination memilih pasangan-pasangannya: allWithAll setiap lingkaran dengan setiap lingkaran lain, inOrder tetangga dalam daftar, inOrderClosed juga yang terakhir dengan yang pertama. unify melebur muka-muka; jika tidak, muka-muka membentuk gabungan.

      Parameters

      Returns Promise<TopoDSShapePointer>

      Bentuk yang dilebur, atau gabungan dari muka-muka sabuk

      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,
      });
    • Menyambungkan lingkaran-lingkaran dari daftar-daftar berurutan dengan sabuk singgung, seperti createFaceFromMultipleCircleTanWires menyambungkan lingkaran tunggal.

      allWithAll menyambungkan setiap lingkaran sebuah daftar dengan setiap lingkaran daftar berikutnya; inOrder menyambungkan lingkaran pada posisi yang sama di daftar-daftar bertetangga, yang memerlukan panjang yang sama; inOrderClosed juga menutup setiap daftar menjadi cincin. unify melebur muka-muka; jika tidak, muka-muka membentuk gabungan.

      Parameters

      Returns Promise<TopoDSShapePointer>

      Bentuk yang dilebur, atau gabungan dari muka-muka sabuk

      const mesh = await bitbybit.occt.shapes.face.createFaceFromMultipleCircleTanWireCollections({
      listsOfCircles: [bottomRow, middleRow, topRow],
      combination: Bit.Inputs.OCCT.combinationCirclesForFaceEnum.inOrderClosed,
      unify: true,
      tolerance: 1e-7,
      });
    • Membuat muka yang menutupi seluruh permukaan, sampai batas alami permukaan.

      tolerance dipakai untuk mendeteksi tepi degenerat, seperti kutub bola. Permukaan berasal dari geom.surfaces.

      Parameters

      Returns Promise<TopoDSFacePointer>

      Muka

      const face = await bitbybit.occt.shapes.face.faceFromSurface({ shape: surface, tolerance: 1e-7 });
      
    • Membuat muka dengan memotong permukaan menggunakan kawat yang berada padanya.

      Dengan inside bernilai true kawat diputar sehingga mukanya adalah daerah yang dilingkupinya; dengan false arah kawat itu sendiri yang menentukan, dan kawat yang berjalan ke arah sebaliknya menghasilkan daerah di luarnya. Permukaan berasal dari geom.surfaces.

      Parameters

      Returns Promise<TopoDSFacePointer>

      Muka

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

    from base

    • Membuat muka segitiga datar dari tiga titik.

      Parameters

      Returns Promise<TopoDSFacePointer>

      Muka

      const face = await bitbybit.occt.shapes.face.fromBaseTriangle({ triangle: [[0, 0, 0], [10, 0, 0], [0, 0, 10]] });
      
    • Membuat satu muka segitiga datar per segitiga sebuah mesh.

      Segitiga yang tidak dapat membentuk muka, misalnya yang titik-titiknya berulang, dilewati dengan peringatan di konsol.

      Parameters

      Returns Promise<TopoDSFacePointer[]>

      Satu muka per segitiga yang berhasil dibangun

      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

    • Mengambil satu muka dari sebuah bentuk menurut posisinya, dihitung dari 0, dalam urutan kernel menelusuri bentuk.

      Bentuk harus berupa muka atau sesuatu yang dibangun dari muka; indeks di luar muka terakhir memicu error.

      Parameters

      Returns Promise<TopoDSFacePointer>

      Muka pada indeks tersebut

      const first = await bitbybit.occt.shapes.face.getFace({ shape: box, index: 0 });
      
    • Membalik sebuah muka sehingga normalnya mengarah ke arah sebaliknya.

      Geometrinya tetap sama; hanya orientasinya yang berubah, yang menentukan sisi luar cangkang dan arah yang dilaporkan normalOnUV.

      Parameters

      Returns Promise<TopoDSFacePointer>

      Muka yang dibalik

      const flipped = await bitbybit.occt.shapes.face.reversedFace({ shape: face });
      
    • Membaca nilai parameter U terkecil sebuah muka, dalam satuan permukaan itu sendiri.

      Bersama getUMaxBound, getVMinBound dan getVMaxBound ini memberikan rentang yang menjadi tujuan pemetaan pecahan UV yang dipakai di tempat lain dalam kelas ini.

      Parameters

      Returns Promise<number>

      Batas bawah U

      const uMin = await bitbybit.occt.shapes.face.getUMinBound({ shape: face });
      
    • Membaca nilai parameter U terbesar sebuah muka, dalam satuan permukaan itu sendiri.

      Parameters

      Returns Promise<number>

      Batas atas U

      const uMax = await bitbybit.occt.shapes.face.getUMaxBound({ shape: face });
      
    • Membaca nilai parameter V terkecil sebuah muka, dalam satuan permukaan itu sendiri.

      Parameters

      Returns Promise<number>

      Batas bawah V

      const vMin = await bitbybit.occt.shapes.face.getVMinBound({ shape: face });
      
    • Membaca nilai parameter V terbesar sebuah muka, dalam satuan permukaan itu sendiri.

      Parameters

      Returns Promise<number>

      Batas atas V

      const vMax = await bitbybit.occt.shapes.face.getVMaxBound({ shape: face });
      
    • Mengukur luas permukaan sebuah muka, dalam satuan model persegi.

      Parameters

      Returns Promise<number>

      Luas

      const area = await bitbybit.occt.shapes.face.getFaceArea({ shape: face });
      
    • Mengukur luas permukaan setiap muka dalam daftar, dalam satuan model persegi.

      Parameters

      Returns Promise<number[]>

      Satu luas per muka, dalam urutan yang sama

      const areas = await bitbybit.occt.shapes.face.getFacesAreas({ shapes: faces });
      
    • Menemukan pusat massa sebuah muka, titik keseimbangan luasnya.

      Pada muka lengkung atau berbentuk cincin titik ini bisa berada di luar permukaan.

      Parameters

      Returns Promise<Point3>

      Pusat massa

      const center = await bitbybit.occt.shapes.face.getFaceCenterOfMass({ shape: face });
      
    • Menemukan pusat massa setiap muka dalam daftar.

      Parameters

      Returns Promise<Point3[]>

      Satu titik per muka, dalam urutan yang sama

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

    patterns

    • Meletakkan kawat-kawat persegi panjang di atas sebuah muka, satu per sel dari pembagian nrRectanglesU kali nrRectanglesV rentang UV-nya, mengikuti permukaan.

      Offset batas memangkas rentang di setiap ujung. Setiap persegi panjang berada di tengah selnya, berukuran menurut pola skala sebagai pecahan darinya; pola fillet membulatkan sudut, pola penyertaan melewati sel.

      Parameters

      Returns Promise<TopoDSWirePointer[]>

      Kawat-kawat persegi panjang, sel demi sel

      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,
      });
    • Memotong grid lubang persegi panjang ke dalam sebuah muka dan mengembalikan muka yang berlubang.

      Lubang-lubang mengikuti sel dan pola yang sama dengan subdivideToRectangleWires; jika tidak ada pola skala yang diberikan setiap lubang menutupi setengah selnya. Dengan holesToFaces bernilai true hasilnya juga membawa satu muka per lubang, setelah muka yang berlubang, yang praktis untuk tutup atau pengisi.

      Parameters

      Returns Promise<TopoDSFacePointer[]>

      Muka yang dilubangi, diikuti muka-muka lubang jika diminta

      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,
      });
    • Meletakkan sarang lebah dari kawat heksagonal di atas sebuah muka, nrHexagonsU kali nrHexagonsV di antaranya dimuat ke dalam rentang UV-nya, masing-masing mengikuti permukaan.

      Offset batas memangkas pecahan rentang di setiap ujung; flatU mengarahkan sisi datar ke U, flag extend meregangkan baris-baris terluar melewati tepi. Pola skala, fillet dan penyertaan berulang per heksagon.

      Parameters

      Returns Promise<TopoDSWirePointer[]>

      Kawat-kawat heksagon, baris demi baris

      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,
      });
    • Memotong sarang lebah dari lubang heksagonal ke dalam sebuah muka dan mengembalikan muka yang berlubang.

      Lubang-lubang mengikuti tata letak dan pola yang sama dengan subdivideToHexagonWires; jika tidak ada pola skala yang diberikan setiap lubang berukuran setengah heksagonnya. Dengan holesToFaces bernilai true hasilnya juga membawa satu muka per lubang, setelah muka yang berlubang.

      Parameters

      Returns Promise<TopoDSFacePointer[]>

      Muka yang dilubangi, diikuti muka-muka lubang jika diminta

      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

    • Membuat muka datar dari daftar titik sudut, menutup garis luar dari titik terakhir kembali ke titik pertama.

      Titik-titiknya harus berada pada satu bidang.

      Parameters

      • inputs: PolygonDto

        Titik-titik sudut secara berurutan

      Returns Promise<TopoDSFacePointer>

      Muka

      const face = await bitbybit.occt.shapes.face.createPolygonFace({ points: [[0, 0, 0], [10, 0, 0], [10, 0, 10], [0, 0, 10]] });
      
    • Membuat muka lingkaran datar, sebuah cakram.

      direction adalah normal bidangnya: default [0, 1, 0] meletakkannya rata di tanah.

      Parameters

      Returns Promise<TopoDSFacePointer>

      Muka cakram

      const disc = await bitbybit.occt.shapes.face.createCircleFace({ radius: 5, center: [0, 0, 0], direction: [0, 1, 0] });
      
    • Mengisi persegi panjang pada bidang tanah dengan grid muka heksagonal datar, berpusat di titik asal.

      Heksagon-heksagon diskalakan sehingga nrHexagonsInWidth muat melintasi width dan nrHexagonsInHeight melintasi height. Pola skala, fillet dan penyertaan dibaca heksagon demi heksagon dan berulang; flag extend meregangkan baris-baris terluar melewati tepi untuk menutupi persegi panjang.

      Parameters

      • inputs: HexagonsInGridDto

        Ukuran persegi panjang, jumlah heksagon, flag perluasan dan pola opsional

      Returns Promise<TopoDSFacePointer[]>

      Satu muka per heksagon, baris demi baris

      const cells = await bitbybit.occt.shapes.face.hexagonsInGrid({
      width: 20,
      height: 10,
      nrHexagonsInWidth: 8,
      nrHexagonsInHeight: 4,
      flatTop: false,
      scalePatternWidth: [0.9],
      scalePatternHeight: [0.9],
      });
    • Membuat muka elips datar.

      direction adalah normal bidangnya: default [0, 1, 0] meletakkannya rata di tanah. radiusMajor harus setidaknya sebesar radiusMinor.

      Parameters

      Returns Promise<TopoDSFacePointer>

      Muka elips

      const face = await bitbybit.occt.shapes.face.createEllipseFace({ radiusMinor: 3, radiusMajor: 6, center: [0, 0, 0], direction: [0, 1, 0] });
      
    • Membuat muka persegi datar berpusat di center.

      direction adalah normal bidangnya: default [0, 1, 0] meletakkannya rata di tanah.

      Parameters

      Returns Promise<TopoDSFacePointer>

      Muka persegi

      const face = await bitbybit.occt.shapes.face.createSquareFace({ size: 10, center: [0, 0, 0], direction: [0, 1, 0] });
      
    • Membuat muka persegi panjang datar berpusat di center.

      Pada bidang tanah width berjalan sepanjang X dan length sepanjang Z; direction adalah normal bidang, dan default [0, 1, 0] menjaga muka rata di tanah.

      Parameters

      Returns Promise<TopoDSFacePointer>

      Muka persegi panjang

      const face = await bitbybit.occt.shapes.face.createRectangleFace({ width: 20, length: 10, center: [0, 0, 0], direction: [0, 1, 0] });
      
    • Membuat muka datar berbentuk L: dua kaki persegi panjang yang bertemu di sebuah sudut.

      Kaki pertama memiliki widthFirst dan lengthFirst, kaki kedua widthSecond dan lengthSecond; align menempatkan sudut di sisi luar, sisi dalam atau tengah kaki-kaki, dan rotation memutar bentuk dalam bidangnya, dalam derajat. Terbaring rata di tanah kecuali direction menyatakan lain.

      Parameters

      • inputs: LPolygonDto

        Kedua ukuran kaki, perataan, rotasi, pusat dan normal bidang

      Returns Promise<TopoDSFacePointer>

      Muka berbentuk 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],
      });
    • Membuat muka datar berbentuk bintang dengan numRays ujung.

      Ujung-ujungnya mencapai outerRadius dan lekukan di antaranya innerRadius; half hanya mempertahankan separuh pertama sinar. offsetOuterEdges mengangkat ujung sinar keluar dari bidang dan dimaksudkan untuk kawat; muka datar memerlukannya bernilai 0. Terbaring rata di tanah kecuali direction menyatakan lain.

      Parameters

      Returns Promise<TopoDSFacePointer>

      Muka bintang

      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 });
      
    • Membuat muka datar berbentuk pohon Natal bergaya: nrSkirts lapisan dahan, menyempit dari outerDist ke innerDist dari garis batang, di atas batang setinggi trunkHeight dan selebar trunkWidth.

      Berbeda dengan bentuk datar lainnya di sini, ia berdiri tegak pada bidang XY, puncak sepanjang Y; direction adalah arah batang-ke-puncak, rotation memutarnya mengelilingi sumbu itu, dalam derajat.

      Parameters

      • inputs: ChristmasTreeDto

        Proporsi pohon, ukuran batang, opsi, titik asal dan arah dari batang ke pucuk

      Returns Promise<TopoDSFacePointer>

      Muka pohon

      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],
      });
    • Membuat muka jajar genjang datar: persegi panjang berukuran width dan height yang sisi-sisinya miring sebesar angle derajat.

      Dengan aroundCenter bernilai true bentuk berpusat di center; jika tidak, bentuk bermula di sana dan memanjang ke arah positif. direction adalah normal bidang; default [0, 1, 0] meletakkannya rata di tanah.

      Parameters

      • inputs: ParallelogramDto

        Lebar, tinggi, sudut kemiringan, apakah dipusatkan, pusat dan normal bidang

      Returns Promise<TopoDSFacePointer>

      Muka jajar genjang

      const face = await bitbybit.occt.shapes.face.createParallelogramFace({ width: 10, height: 5, angle: 30, aroundCenter: true, center: [0, 0, 0], direction: [0, 1, 0] });
      
    • Membuat muka datar berbentuk hati yang kira-kira muat dalam persegi berukuran sizeApprox.

      rotation memutarnya dalam bidangnya, dalam derajat. direction adalah normal bidang; default [0, 1, 0] meletakkannya rata di tanah.

      Parameters

      • inputs: Heart2DDto

        Ukuran perkiraan, rotasi, pusat dan normal bidang

      Returns Promise<TopoDSFacePointer>

      Muka hati

      const heart = await bitbybit.occt.shapes.face.createHeartFace({ sizeApprox: 10, rotation: 0, center: [0, 0, 0], direction: [0, 1, 0] });
      
    • Membuat muka poligon beraturan datar dengan nrCorners sudut, semuanya pada lingkaran berjari-jari radius.

      direction adalah normal bidang; default [0, 1, 0] meletakkannya rata di tanah.

      Parameters

      • inputs: NGonWireDto

        Jumlah sudut, jari-jari, pusat dan normal bidang

      Returns Promise<TopoDSFacePointer>

      Muka poligon

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

    rebuild

    • Membangun ulang permukaan sebuah muka sebagai B-spline dengan derajat U dan V yang diberikan.

      Menurunkan derajat menghaluskan permukaan menjadi aproksimasi yang lebih sederhana dalam batas tolerance; menaikkannya bersifat eksak. keepTrim mempertahankan kawat-kawat batas asli, yang andal saat menaikkan; jika tidak, muka menutupi seluruh permukaan baru. Pembangunan ulang yang gagal menghasilkan muka null.

      Parameters

      Returns Promise<TopoDSFacePointer>

      Muka yang dibangun ulang

      const smoother = await bitbybit.occt.shapes.face.rebuildFaceDegree({ shape: face, uDegree: 2, vDegree: 2, tolerance: 0.01, keepTrim: true });
      
    • Mengubah cara parameter UV berjalan pada sebuah muka: menukar U dan V, membalik U, membalik V, atau kombinasi apa pun.

      Geometrinya tetap sama; hanya arah parameter yang berubah, yang berpengaruh pada setiap metode di sini yang bekerja dalam UV, seperti subdivideToPoints atau wireAlongParam. Muka dibangun ulang di atas batas alami permukaannya.

      Parameters

      Returns Promise<TopoDSFacePointer>

      Muka dengan parametrisasi yang diubah

      const flipped = await bitbybit.occt.shapes.face.flipFaceUV({ shape: face, swapUV: true, reverseU: false, reverseV: false });
      
    • Mem-parametrisasi ulang sebuah muka sehingga langkah yang sama dalam U atau V memberikan jarak yang kira-kira sama pada permukaan.

      Banyak permukaan mengumpulkan parameternya di tempat-tempat tertentu, sehingga grid UV di atasnya tampak tidak rata; ini mengambil sampel ulang permukaan pada samples titik per arah dan mencocokkannya kembali, yang meratakan subdivideToPoints dan saudara-saudaranya. Muka dibangun ulang di atas batas-batas baru.

      Parameters

      Returns Promise<TopoDSFacePointer>

      Muka yang diparametrisasi ulang

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