Bitbybit Docs
    Preparing search index...

    Class OCCTOperations

    Operasi pemodelan yang mengubah kawat dan muka OpenCascade menjadi permukaan dan solid serta mengukur bentuk: loft melalui penampang, ekstrusi dan revolusi, sweep profil di sepanjang jalur, offset, menebalkan cangkang menjadi solid, mengiris dan memisahkan, ditambah kotak pembatas, bola pembatas dan kueri titik terdekat. Jarak dalam satuan model dan sudut dalam derajat; setiap operasi mengembalikan bentuk baru. Boolean ada di booleans, pembulatan di fillets.

    Index

    Constructors

    closest pts

    • Menemukan pasangan titik, satu pada setiap bentuk, yang paling berdekatan satu sama lain.

      Jarak di antara keduanya adalah celah antara bentuk-bentuk; nilainya 0 jika keduanya bersentuhan atau tumpang tindih. Memicu error jika tidak ada pasangan yang dapat ditemukan.

      Returns Promise<Point3[]>

      Titik pada bentuk pertama dan titik pada bentuk kedua

      const [onBox, onSphere] = await bitbybit.occt.operations.closestPointsBetweenTwoShapes({ shape1: box, shape2: sphere });
      
    • Menemukan, untuk setiap titik dalam daftar, titik terdekat pada sebuah bentuk.

      Titik yang sudah berada pada bentuk dipetakan ke dirinya sendiri. Berguna untuk menempelkan titik-titik ke permukaan.

      Parameters

      Returns Promise<Point3[]>

      Satu titik pada bentuk per titik masukan, dalam urutan yang sama

      const snapped = await bitbybit.occt.operations.closestPointsOnShapeFromPoints({ shape: sphere, points: [[0, 20, 0], [20, 0, 0]] });
      
    • Menemukan titik terdekat pada masing-masing dari beberapa bentuk untuk setiap titik dalam daftar.

      Hasilnya adalah satu daftar rata: semua titik untuk bentuk pertama, dalam urutan titik, lalu semua titik untuk bentuk kedua, dan seterusnya.

      Parameters

      Returns Promise<Point3[]>

      Titik-titik terdekat, dikelompokkan bentuk demi bentuk

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

    divisions

    • Memotong sebuah bentuk menjadi beberapa bagian dengan bentuk-bentuk lain, seperti pisau membelah roti, tanpa menghilangkan material apa pun.

      Dengan nonDestructive bernilai true, default-nya, input dibiarkan tidak tersentuh dan hasilnya menampung potongan dari setiap bentuk yang terlibat, termasuk pemotongnya; dengan false hanya potongan dari shape yang dikembalikan. localFuzzyTolerance membiarkan geometri yang hampir bersentuhan dihitung bersentuhan.

      Parameters

      Returns Promise<TopoDSShapePointer[]>

      Potongan-potongannya

      const pieces = await bitbybit.occt.operations.splitShapeWithShapes({ shape: box, shapes: [cuttingPlane], localFuzzyTolerance: 1e-4, nonDestructive: false });
      
    • Memotong solid menjadi irisan-irisan sejajar sepanjang sebuah arah, seperti roti tawar, setiap step satuan model dari dasar bentuk ke atas.

      Setiap irisan adalah penampang datar tempat bidang pemotong bertemu solid; semuanya dikembalikan bersama dalam satu gabungan. Bentuk harus berupa atau memuat solid, atau error dipicu.

      Parameters

      Returns Promise<TopoDSCompoundPointer>

      Gabungan dari muka-muka penampang

      const layers = await bitbybit.occt.operations.slice({ shape: sphere, step: 0.5, direction: [0, 1, 0] });
      
    • Memotong solid menjadi irisan-irisan sejajar seperti slice, tetapi dengan pola celah yang berulang di antaranya, misalnya 0.1, 0.5, 0.1, 0.5.

      Pola diterapkan dari dasar bentuk ke atas dan berulang sampai puncak tercapai.

      Parameters

      Returns Promise<TopoDSCompoundPointer>

      Gabungan dari muka-muka penampang

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

    extrusions

    • Men-sweep sebuah bentuk dalam garis lurus sepanjang sebuah vektor, yang panjangnya adalah jaraknya: muka menjadi solid, kawat menjadi cangkang, tepi menjadi muka.

      Bentuk itu sendiri tetap berada di awal ekstrusi; vektornya dalam satuan model, sehingga [0, 10, 0] mengekstrusi 10 satuan ke atas.

      Parameters

      Returns Promise<TopoDSShapePointer>

      Bentuk hasil ekstrusi

      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] });
    • Men-sweep beberapa bentuk sepanjang vektor yang sama, seperti extrude untuk satu bentuk.

      Parameters

      Returns Promise<TopoDSShapePointer[]>

      Bentuk-bentuk hasil ekstrusi, dalam urutan yang sama

      const walls = await bitbybit.occt.operations.extrudeShapes({ shapes: [faceA, faceB], direction: [0, 10, 0] });
      
    • Mengekstrusi bentuk datar ke atas sepanjang Y sejauh height sambil memuntirnya sebesar angle derajat mengelilingi sumbu Y, seperti kolom terpuntir.

      Bentuk sebaiknya terbaring rata, seperti profil-profil yang dibuat paket ini. Dengan makeSolid bernilai true, default-nya, profil muka menghasilkan solid tertutup; kawat menghasilkan cangkang terpuntir.

      Parameters

      Returns Promise<TopoDSShapePointer>

      Ekstrusi terpuntir

      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

    • Membangun permukaan melalui serangkaian kawat, seperti kulit yang direntangkan di atas rusuk-rusuk: setiap kawat adalah satu penampang dan permukaan melewatinya dalam urutan daftar.

      Tepi diterima sebagai kawat satu tepi. Dengan makeSolid bernilai true dan penampang tertutup hasilnya ditutup menjadi solid; jika tidak, hasilnya cangkang. Penampang paling cocok jika jumlah tepinya sama.

      Parameters

      Returns Promise<TopoDSShapePointer>

      Cangkang atau solid hasil loft

      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 });
    • Membangun permukaan melalui serangkaian kawat seperti loft, dengan kendali atas cara kulit dicocokkan.

      straight membuat patch ruled di antara penampang, bukan perpaduan halus; closed melingkarkan permukaan dari penampang terakhir kembali ke yang pertama, dan periodic membuat lingkaran itu halus dengan mengambil sampel ulang penampang. startVertex dan endVertex menutup ujung-ujungnya menjadi titik.

      Parameters

      Returns Promise<TopoDSShapePointer>

      Cangkang atau solid hasil loft

      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

    • Mengukur seberapa jauh setiap titik dalam daftar dari sebuah bentuk, sebagai jarak lurus ke titik terdekat padanya, dalam satuan model.

      Jaraknya ke permukaan bentuk, jadi titik di dalam solid tetap melaporkan jaraknya ke kulit.

      Parameters

      Returns Promise<number[]>

      Satu jarak per titik, dalam urutan yang sama

      const distances = await bitbybit.occt.operations.distancesToShapeFromPoints({ shape: sphere, points: [[0, 20, 0], [20, 0, 0]] });
      
    • Menghitung kotak sejajar sumbu yang melingkupi sebuah bentuk: sudut minimum dan maksimumnya, pusatnya dan ukurannya sepanjang X, Y dan Z.

      Pada bentuk lengkung kotaknya bisa sedikit lebih besar dari bentuk itu sendiri, karena kernel membatasi geometri kontrol, bukan permukaan eksaknya.

      Parameters

      Returns Promise<BoundingBoxPropsDto>

      Kotak sebagai min, max, center dan size

      const box = await bitbybit.occt.operations.boundingBoxOfShape({ shape });
      console.log(box.size, box.center);
    • Membaca sudut minimum kotak pembatas sejajar sumbu sebuah bentuk, titik dengan X, Y dan Z terkecil.

      Parameters

      Returns Promise<Point3>

      Sudut minimum

      const min = await bitbybit.occt.operations.boundingBoxMinOfShape({ shape });
      
    • Membaca sudut maksimum kotak pembatas sejajar sumbu sebuah bentuk, titik dengan X, Y dan Z terbesar.

      Parameters

      Returns Promise<Point3>

      Sudut maksimum

      const max = await bitbybit.occt.operations.boundingBoxMaxOfShape({ shape });
      
    • Membaca pusat kotak pembatas sejajar sumbu sebuah bentuk, di tengah antara kedua sudutnya.

      Ini bukan pusat massa; shapes.solid.getSolidCenterOfMass dan saudara-saudaranya memberikan itu.

      Parameters

      Returns Promise<Point3>

      Pusat kotak

      const center = await bitbybit.occt.operations.boundingBoxCenterOfShape({ shape });
      
    • Membaca ukuran kotak pembatas sejajar sumbu sebuah bentuk sepanjang X, Y dan Z, dalam satuan model.

      Parameters

      Returns Promise<Vector3>

      Lebar, tinggi dan panjang kotak

      const size = await bitbybit.occt.operations.boundingBoxSizeOfShape({ shape });
      
    • Membangun kotak pembatas sejajar sumbu sebuah bentuk sebagai solid kotak, praktis untuk menggambarnya atau memakainya dalam operasi boolean.

      Parameters

      Returns Promise<TopoDSShapePointer>

      Solid kotak

      const boxSolid = await bitbybit.occt.operations.boundingBoxShapeOfShape({ shape });
      
    • Menghitung bola yang melingkupi sebuah bentuk: berpusat pada kotak pembatas dan mencapai sudut-sudutnya, sehingga selalu memuat bentuk tetapi bukan bola terkecil yang mungkin.

      Parameters

      Returns Promise<BoundingSpherePropsDto>

      Bola sebagai center dan radius

      const sphere = await bitbybit.occt.operations.boundingSphereOfShape({ shape });
      console.log(sphere.radius);
    • Membaca pusat bola pembatas sebuah bentuk, yaitu pusat kotak pembatasnya.

      Parameters

      Returns Promise<Point3>

      Pusat bola

      const center = await bitbybit.occt.operations.boundingSphereCenterOfShape({ shape });
      
    • Membaca jari-jari bola pembatas sebuah bentuk, jarak dari pusat kotak pembatas ke sudutnya, dalam satuan model.

      Parameters

      Returns Promise<number>

      Jari-jari

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

    offsets

    • Memindahkan batas sebuah bentuk ke luar, atau ke dalam untuk jarak negatif, sejauh jarak tetap: kawat tumbuh menjadi garis luar sejajar, muka atau solid menjadi yang lebih besar.

      Kawat atau tepi di-offset dalam bidangnya sendiri, atau pada face jika diberikan; sudut-sudut dibulatkan. Jarak 0 mengembalikan bentuk apa adanya.

      Parameters

      Returns Promise<TopoDSShapePointer>

      Bentuk hasil offset

      const bigger = await bitbybit.occt.operations.offset({ shape: box, distance: 1, tolerance: 0.1 });
      
    • Meng-offset sebuah bentuk seperti offset, dengan pilihan cara sudut disambungkan: arc membulatkannya, intersection memperpanjang sisi-sisi sampai sudut tajam, tangent menjaganya tetap bersinggungan.

      removeIntEdges membuang tepi-tepi internal yang mungkin ditinggalkan offset pada solid.

      Parameters

      Returns Promise<TopoDSShapePointer>

      Bentuk hasil offset

      const sharper = await bitbybit.occt.operations.offsetAdv({
      shape: rectangleWire,
      distance: 1,
      tolerance: 0.1,
      joinType: Bit.Inputs.OCCT.joinTypeEnum.intersection,
      removeIntEdges: false,
      });
    • Memberi muka atau cangkang sebuah ketebalan, mengubahnya menjadi lempengan atau dinding solid setebal offset.

      Offset positif menebal ke arah normal permukaan, negatif ke arah sebaliknya. Gunakan untuk mengubah kulit hasil loft atau sweep menjadi sesuatu yang dapat dicetak.

      Parameters

      Returns Promise<TopoDSShapePointer>

      Solid tebal

      const wall = await bitbybit.occt.operations.makeThickSolidSimple({ shape: loftedShell, offset: 0.5 });
      
    • Melubangi solid menjadi cangkang dengan ketebalan dinding tertentu dengan menghapus muka-muka yang dicantumkan dan meng-offset sisanya.

      Menghapus muka atas sebuah kotak, misalnya, menghasilkan cangkir terbuka. offset adalah ketebalan dinding, negatif untuk tumbuh ke dalam; joinType menyatakan cara dinding-dinding offset bertemu di sudut, flag lainnya diteruskan ke pembangun solid tebal milik kernel.

      Parameters

      Returns Promise<TopoDSShapePointer>

      Solid yang dirongga

      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,
      });
    • Meng-offset kawat yang tidak terletak pada satu bidang, dengan mengekstrusinya sepanjang direction, menebalkan hasilnya dan membaca tepi offset kembali darinya.

      Bekerja paling baik pada kawat yang halus; fillet dulu sudut-sudut tajam dengan fillets.fillet3DWire. Jika tepi-tepi offset tidak dapat disambungkan menjadi satu kawat, hasilnya dikembalikan sebagai daftar tepi.

      Parameters

      Returns Promise<TopoDSWirePointer>

      Kawat hasil offset, atau tepi-tepi lepas jika tidak dapat digabungkan

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

    pipeing

    • Men-sweep satu atau lebih bentuk profil sepanjang kawat lintasan dan menutup hasilnya menjadi solid.

      Profil-profil sebaiknya ditempatkan pada lintasan; dengan beberapa profil, sweep memadukan dari satu ke berikutnya di sepanjang jalan.

      Parameters

      Returns Promise<TopoDSShapePointer>

      Solid hasil sweep

      const tube = await bitbybit.occt.operations.pipe({ shape: pathWire, shapes: [profileAtStart] });
      
    • Men-sweep poligon beraturan sepanjang kawat, menghasilkan tabung dengan nrCorners sisi datar, misalnya batang heksagonal sepanjang lintasan.

      Poligon berjari-jari radius ditempatkan di awal kawat, tegak lurus terhadapnya. makeSolid menghasilkan solid, bukan cangkang, trihedronEnum memilih cara profil berputar di sepanjang lintasan, dan forceApproxC1 menghaluskan hasilnya.

      Parameters

      Returns Promise<TopoDSShapePointer>

      Solid atau cangkang hasil sweep

      const bar = await bitbybit.occt.operations.pipePolylineWireNGon({
      shape: pathWire,
      radius: 0.5,
      nrCorners: 6,
      makeSolid: true,
      trihedronEnum: Bit.Inputs.OCCT.geomFillTrihedronEnum.isConstantNormal,
      forceApproxC1: false,
      });
    • Men-sweep lingkaran sepanjang masing-masing dari beberapa kawat, seperti pipeWireCylindrical untuk satu kawat, semuanya dengan jari-jari dan opsi yang sama.

      Parameters

      Returns Promise<TopoDSShapePointer[]>

      Satu tabung per kawat, dalam urutan yang sama

      const tubes = await bitbybit.occt.operations.pipeWiresCylindrical({
      shapes: [pathA, pathB],
      radius: 0.5,
      makeSolid: true,
      trihedronEnum: Bit.Inputs.OCCT.geomFillTrihedronEnum.isConstantNormal,
      forceApproxC1: false,
      });
    • Men-sweep lingkaran sepanjang kawat, menghasilkan tabung bulat dengan jari-jari tertentu yang mengikuti lintasan.

      Lingkaran ditempatkan di awal kawat, tegak lurus terhadapnya. makeSolid menghasilkan solid, bukan cangkang, trihedronEnum memilih cara profil berputar saat mengikuti lintasan, dan forceApproxC1 menghaluskan hasilnya.

      Parameters

      Returns Promise<TopoDSShapePointer>

      Tabung sebagai solid atau cangkang

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

    revolutions

    • Memutar sebuah bentuk mengelilingi sumbu yang melewati titik asal untuk menyapu permukaan atau solid: muka menghasilkan solid, kawat menghasilkan cangkang.

      angle dalam derajat; 360 atau lebih menghasilkan putaran penuh. Sumbu berjalan sepanjang direction: profil di samping sumbu Y yang direvolusi mengelilinginya menghasilkan vas. Profil tidak boleh memotong sumbu.

      Parameters

      Returns Promise<TopoDSShapePointer>

      Bentuk hasil revolusi

      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 });