Bitbybit Docs
    Preparing search index...

    Class OCCTWire

    Fios em OpenCascade: cadeias de arestas unidas de ponta a ponta, abertas como um caminho ou fechadas como um contorno. Construa-os a partir de pontos e curvas (polilinhas, B-splines, Beziers, interpolações, hélices, espirais), como contornos planos prontos (círculos, retângulos, estrelas, perfis de viga, texto) que assentam no plano do chão a menos que direction diga o contrário, ou unindo e dividindo arestas e fios existentes; leia-os de volta como pontos, tangentes, comprimentos e centros; mapeie-os sobre faces ou projete-os sobre formas. Os parâmetros ao longo de um fio vão de 0 no seu início a 1 no seu fim e seguem o parâmetro próprio de cada aresta, não a distância. Um fio fechado é o que shapes.face preenche para criar uma 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

    • Cria o contorno fechado da secção transversal de uma viga em I: dois banzos horizontais unidos por uma alma vertical.

      width é a largura do banzo, height a altura total, webThickness e flangeThickness as espessuras das paredes; alignment diz qual ponto da caixa do perfil fica em center, rotation roda-o no seu plano, em graus. Assenta no chão, pronto a extrudir.

      Parameters

      • inputs: IBeamProfileDto

        O tamanho do perfil, as duas espessuras, o alinhamento, a rotação, o centro e a normal do plano

      Returns Promise<TopoDSWirePointer>

      O fio de contorno da viga em 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],
      });
    • Cria o contorno fechado da secção transversal de uma viga em H: dois banzos verticais unidos por uma alma horizontal, uma viga em I deitada de lado.

      width é a largura total, height a altura do banzo, webThickness e flangeThickness as espessuras das paredes; alignment diz qual ponto da caixa do perfil fica em center, rotation roda-o no seu plano, em graus.

      Parameters

      • inputs: HBeamProfileDto

        O tamanho do perfil, as duas espessuras, o alinhamento, a rotação, o centro e a normal do plano

      Returns Promise<TopoDSWirePointer>

      O fio de contorno da viga em 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],
      });
    • Cria o contorno fechado da secção transversal de uma viga em T: um banzo horizontal com uma alma vertical pendurada do seu meio.

      width é a largura do banzo, height a altura total, webThickness e flangeThickness as espessuras das paredes; alignment diz qual ponto da caixa do perfil fica em center, rotation roda-o no seu plano, em graus. Assenta no chão.

      Parameters

      • inputs: TBeamProfileDto

        O tamanho do perfil, as duas espessuras, o alinhamento, a rotação, o centro e a normal do plano

      Returns Promise<TopoDSWirePointer>

      O fio de contorno da viga em 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],
      });
    • Cria o contorno fechado da secção transversal de uma viga em U, um canal: uma alma com dois banzos de flangeWidth erguidos a partir das suas extremidades.

      width e height são o tamanho total, webThickness e flangeThickness as espessuras das paredes; alignment diz qual ponto da caixa do perfil fica em center, rotation roda-o no seu plano, em graus. Assenta no chão.

      Parameters

      • inputs: UBeamProfileDto

        O tamanho do perfil, as espessuras, a largura do banzo, o alinhamento, a rotação, o centro e a normal do plano

      Returns Promise<TopoDSWirePointer>

      O fio de contorno da viga em 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

    • Une arestas e fios que se tocam ponta a ponta num só fio.

      Os troços têm de se ligar; um conjunto com uma folga ou um troço solto lança um erro. Formas de outros tipos na lista são ignoradas.

      Parameters

      Returns Promise<TopoDSWirePointer>

      O fio unido

      const outline = await bitbybit.occt.shapes.wire.combineEdgesAndWiresIntoAWire({ shapes: [arc, line1, line2] });
      

    debug

    • Recolhe factos de diagnóstico sobre um fio: quantas arestas tem, se é fechado, o seu comprimento total e, para cada aresta, o relatório de curva que shapes.edge.debugInfo dá.

      Um fio vazio ou nulo dá um relatório marcado como inválido com contagens a zero.

      Parameters

      Returns Promise<WireDebugInfo>

      O relatório com o número de arestas, o indicador de fechado, o comprimento e uma entrada por aresta

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

    edit

    • Fecha um fio aberto com uma aresta reta do seu ponto final de volta ao seu ponto inicial.

      Um fio cujas extremidades já se encontram é devolvido tal como está.

      Parameters

      Returns Promise<TopoDSWirePointer>

      O fio fechado

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

    extract

    • Corta um fio em pedaços nos pontos dados.

      Cada ponto é movido para o sítio mais próximo no fio antes de cortar, por isso não precisa de assentar exatamente nele; pontos repetidos são ignorados. Os pedaços voltam por ordem ao longo do fio, do seu início ao seu fim.

      Parameters

      Returns Promise<TopoDSWirePointer[]>

      Os troços do fio, por ordem

      const pieces = await bitbybit.occt.shapes.wire.splitOnPoints({ shape: wire, points: [[3, 0, 0], [7, 0, 0]] });
      
    • Transforma cada fio de uma forma numa sequência de pontos que segue as suas curvas de perto o suficiente para o desenhar, uma lista por fio.

      As definições de deflexão dizem quão apertados os pontos abraçam as arestas curvas; onde uma aresta termina e a seguinte começa o ponto partilhado aparece uma vez.

      Parameters

      Returns Promise<Point3[][]>

      Uma lista de pontos por fio

      const polylines = await bitbybit.occt.shapes.wire.wiresToPoints({
      shape: wire,
      angularDeflection: 0.1,
      curvatureDeflection: 0.1,
      minimumOfPoints: 2,
      uTolerance: 1e-9,
      minimumLength: 1e-7,
      });
    • Coloca pontos ao longo de um fio em passos iguais do seu parâmetro, do início ao fim.

      nrOfDivisions passos dão mais um ponto do que isso; removeStartPoint e removeEndPoint retiram as extremidades. O parâmetro segue o parâmetro de curva próprio de cada aresta, por isso passos iguais não são distâncias iguais; use divideWireByEqualDistanceToPoints para essas.

      Parameters

      Returns Promise<Point3[]>

      Os pontos ao longo do fio, por ordem

      const points = await bitbybit.occt.shapes.wire.divideWireByParamsToPoints({ shape: wire, nrOfDivisions: 10, removeStartPoint: false, removeEndPoint: false });
      
    • Coloca pontos ao longo de um fio a distâncias iguais medidas ao longo das suas curvas, do início ao fim.

      nrOfDivisions passos dão mais um ponto do que isso; removeStartPoint e removeEndPoint retiram as extremidades.

      Parameters

      Returns Promise<Point3[]>

      Os pontos ao longo do fio, por ordem

      const points = await bitbybit.occt.shapes.wire.divideWireByEqualDistanceToPoints({ shape: wire, nrOfDivisions: 10, removeStartPoint: false, removeEndPoint: false });
      
    • Encontra o ponto a uma fração do caminho ao longo de um fio: 0 é o início, 1 o fim.

      A fração segue os parâmetros das arestas, não a distância, por isso 0.5 nem sempre é o meio por comprimento; use pointOnWireAtLength para uma distância.

      Parameters

      Returns Promise<Point3>

      O ponto no fio

      const point = await bitbybit.occt.shapes.wire.pointOnWireAtParam({ shape: wire, param: 0.25 });
      
    • Encontra o ponto a uma dada distância ao longo de um fio a partir do seu início, medida ao longo das suas curvas em unidades do modelo.

      Parameters

      Returns Promise<Point3>

      O ponto no fio

      const point = await bitbybit.occt.shapes.wire.pointOnWireAtLength({ shape: wire, length: 2.5 });
      
    • Encontra os pontos a várias distâncias ao longo de um fio a partir do seu início, medidas ao longo das suas curvas em unidades do modelo.

      Parameters

      Returns Promise<Point3[]>

      Um ponto por distância, pela mesma ordem

      const points = await bitbybit.occt.shapes.wire.pointsOnWireAtLengths({ shape: wire, lengths: [1, 2.5, 4] });
      
    • Coloca pontos ao longo de um fio a cada length unidades do modelo a partir do seu início, tantos quantos couberem.

      includeFirst mantém o ponto no início, includeLast acrescenta o ponto final seja qual for o espaçamento, e tryNext pede mais um ponto um passo além do último que coube.

      Parameters

      Returns Promise<Point3[]>

      Os pontos ao longo do fio, por ordem

      const points = await bitbybit.occt.shapes.wire.pointsOnWireAtEqualLength({ shape: wire, length: 2, tryNext: false, includeFirst: true, includeLast: false });
      
    • Coloca pontos ao longo de um fio segundo um padrão repetido de intervalos, como 1, 3, 1, 3, até o fio acabar.

      lengths é o padrão de intervalos em unidades do modelo, repetido a partir do início; includeFirst mantém o ponto inicial, includeLast acrescenta o ponto final, e tryNext pede mais um ponto no intervalo seguinte além do último.

      Parameters

      Returns Promise<Point3[]>

      Os pontos ao longo do fio, por ordem

      const points = await bitbybit.occt.shapes.wire.pointsOnWireAtPatternOfLengths({ shape: wire, lengths: [1, 3], tryNext: false, includeFirst: true, includeLast: false });
      
    • Encontra a direção em que o fio segue a uma fração do caminho ao longo dele, de 0 no início a 1 no fim.

      A fração segue os parâmetros das arestas, não a distância.

      Parameters

      Returns Promise<Vector3>

      A direção da tangente

      const tangent = await bitbybit.occt.shapes.wire.tangentOnWireAtParam({ shape: wire, param: 0.5 });
      
    • Encontra a direção em que o fio segue a uma dada distância do seu início, medida ao longo das suas curvas em unidades do modelo.

      Parameters

      Returns Promise<Vector3>

      A direção da tangente

      const tangent = await bitbybit.occt.shapes.wire.tangentOnWireAtLength({ shape: wire, length: 2.5 });
      
    • Calcula a primeira, a segunda e a terceira derivadas da curva de um fio a uma dada distância do seu início.

      A primeira derivada é a tangente com a sua velocidade, a segunda diz como a curva se curva, a terceira como essa curvatura muda; todas são em relação ao parâmetro da curva. A distância é medida ao longo das curvas em unidades do modelo.

      Parameters

      Returns Promise<[Vector3, Vector3, Vector3]>

      Os três vetores de derivada, da primeira à terceira

      const [first, second, third] = await bitbybit.occt.shapes.wire.derivativesOnWireAtLength({ shape: wire, length: 2.5 });
      
    • Calcula a primeira, a segunda e a terceira derivadas da curva de um fio a uma fração do caminho ao longo dele, de 0 no início a 1 no fim.

      A primeira derivada é a tangente com a sua velocidade, a segunda diz como a curva se curva, a terceira como essa curvatura muda; todas são em relação ao parâmetro da curva.

      Parameters

      Returns Promise<[Vector3, Vector3, Vector3]>

      Os três vetores de derivada, da primeira à terceira

      const [first, second, third] = await bitbybit.occt.shapes.wire.derivativesOnWireAtParam({ shape: wire, param: 0.5 });
      
    • Lê o ponto onde um fio começa, na direção própria do fio.

      Parameters

      Returns Promise<Point3>

      O ponto inicial

      const start = await bitbybit.occt.shapes.wire.startPointOnWire({ shape: wire });
      
    • Encontra o ponto a meio do intervalo de parâmetro de um fio.

      O parâmetro segue as curvas próprias das arestas, não a distância, por isso num fio de arestas desiguais isto nem sempre é o meio por comprimento; pointOnWireAtLength com metade de getWireLength dá isso.

      Parameters

      Returns Promise<Point3>

      O ponto no parâmetro 0.5

      const middle = await bitbybit.occt.shapes.wire.midPointOnWire({ shape: wire });
      
    • Lê o ponto onde um fio termina, na direção própria do fio.

      Parameters

      Returns Promise<Point3>

      O ponto final

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

    extract from wires

    • Executa divideWireByParamsToPoints em vários fios com as mesmas definições.

      Parameters

      Returns Promise<Point3[][]>

      Uma lista de pontos por fio, pela mesma ordem

      const lists = await bitbybit.occt.shapes.wire.divideWiresByParamsToPoints({ shapes: wires, nrOfDivisions: 10, removeStartPoint: false, removeEndPoint: false });
      
    • Executa divideWireByEqualDistanceToPoints em vários fios com as mesmas definições.

      Parameters

      Returns Promise<Point3[][]>

      Uma lista de pontos por fio, pela mesma ordem

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

    from base

    • Cria um fio reto de uma só aresta a partir de um objeto linha da forma { start, end }.

      Parameters

      Returns Promise<TopoDSWirePointer>

      O fio reto

      const wire = await bitbybit.occt.shapes.wire.fromBaseLine({ line: { start: [0, 0, 0], end: [10, 0, 0] } });
      
    • Cria um fio reto de uma só aresta por objeto linha da forma { start, end }.

      Parameters

      Returns Promise<TopoDSWirePointer[]>

      Um fio por linha, pela mesma ordem

      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] }] });
      
    • Cria um fio reto de uma só aresta a partir de um segmento, um par de pontos [start, end].

      Parameters

      Returns Promise<TopoDSWirePointer>

      O fio reto

      const wire = await bitbybit.occt.shapes.wire.fromBaseSegment({ segment: [[0, 0, 0], [10, 0, 0]] });
      
    • Cria um fio reto de uma só aresta por segmento, cada um um par de pontos [start, end].

      Parameters

      Returns Promise<TopoDSWirePointer[]>

      Um fio por segmento, pela mesma ordem

      const wires = await bitbybit.occt.shapes.wire.fromBaseSegments({ segments: [[[0, 0, 0], [10, 0, 0]], [[10, 0, 0], [10, 10, 0]]] });
      
    • Une uma lista de pontos por ordem com arestas retas num só fio.

      Menos de dois pontos lançam um erro. Quando o último ponto repete o primeiro, a repetição é descartada e o fio é fechado de volta ao primeiro ponto; caso contrário o fio fica aberto. Para um contorno fechado sem repetir um ponto use createPolygonWire.

      Parameters

      Returns Promise<TopoDSWirePointer>

      O fio que passa pelos pontos

      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]] });
    • Cria um fio a partir de um objeto polilinha, uma aresta reta por segmento; uma polilinha marcada como fechada recebe também a aresta do seu último ponto de volta ao primeiro.

      Parameters

      Returns Promise<TopoDSWirePointer>

      O fio

      const outline = await bitbybit.occt.shapes.wire.fromBasePolyline({ polyline: { points: [[0, 0, 0], [10, 0, 0], [10, 0, 10]], isClosed: true } });
      
    • Cria um fio fechado de três arestas a partir de um triângulo dado como três pontos.

      Parameters

      Returns Promise<TopoDSWirePointer>

      O fio fechado

      const outline = await bitbybit.occt.shapes.wire.fromBaseTriangle({ triangle: [[0, 0, 0], [10, 0, 0], [0, 0, 10]] });
      
    • Cria um fio fechado de três arestas por triângulo de uma malha.

      Um triângulo cujo fio não possa ser construído é saltado com um aviso em vez de parar o resto.

      Parameters

      • inputs: MeshBaseDto

        A malha como uma lista de triângulos

      Returns Promise<TopoDSWirePointer[]>

      Um fio por triângulo que foi possível construir

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

    get

    • Escolhe um fio de uma forma pela sua posição, a contar de 0, pela ordem em que o kernel percorre a forma.

      A forma tem de ser um fio ou algo construído a partir de fios; um índice para lá do último fio lança um erro.

      Parameters

      Returns Promise<TopoDSWirePointer>

      O fio nesse índice

      const outer = await bitbybit.occt.shapes.wire.getWire({ shape: face, index: 0 });
      
    • Encontra o centro de massa de um fio, o ponto de equilíbrio das suas curvas; para um círculo é o seu centro, fora do próprio fio.

      Parameters

      Returns Promise<Point3>

      O ponto do centro de massa

      const center = await bitbybit.occt.shapes.wire.getWireCenterOfMass({ shape: wire });
      
    • Encontra o centro de massa de cada fio de uma lista.

      Parameters

      Returns Promise<Point3[]>

      Um ponto por fio, pela mesma ordem

      const centers = await bitbybit.occt.shapes.wire.getWiresCentersOfMass({ shapes: wires });
      
    • Inverte a direção de um fio, de modo que o seu início se torna o seu fim.

      As arestas mantêm a sua própria ordem e indicadores de direção; o fio como um todo é marcado como invertido, que é o que a maioria das operações lê. reversedWireFromReversedEdges reconstrói em vez disso o fio aresta a aresta.

      Parameters

      Returns Promise<TopoDSWirePointer>

      Um novo fio no sentido contrário

      const back = await bitbybit.occt.shapes.wire.reversedWire({ shape: wire });
      
    • Inverte a direção de um fio invertendo cada aresta e unindo-as de novo pela ordem oposta.

      O resultado é um fio que corre no sentido contrário de uma ponta à outra, o que algumas operações precisam onde o simples indicador de reversedWire não basta.

      Parameters

      Returns Promise<TopoDSWirePointer>

      Um novo fio no sentido contrário

      const back = await bitbybit.occt.shapes.wire.reversedWireFromReversedEdges({ shape: wire });
      
    • Indica se um fio é fechado, o que acontece quando os seus pontos inicial e final coincidem dentro de uma pequena tolerância.

      Parameters

      Returns Promise<boolean>

      True quando as extremidades se encontram

      const wireIsClosed = await bitbybit.occt.shapes.wire.isWireClosed({ shape: wire });
      
    • Mede o comprimento de um fio ao longo das suas curvas, em unidades do modelo.

      Parameters

      Returns Promise<number>

      O comprimento

      const len = await bitbybit.occt.shapes.wire.getWireLength({ shape: wire });
      
    • Mede o comprimento de cada fio de uma lista ao longo das suas curvas, em unidades do modelo.

      Parameters

      Returns Promise<number[]>

      Um comprimento por fio, pela mesma ordem

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

    multiple

    • Cria um fio de polígono fechado por lista de pontos, tal como createPolygonWire faz.

      Com returnCompound verdadeiro os fios são agrupados numa só forma composta em vez de uma lista.

      Parameters

      • inputs: PolygonsDto

        Os polígonos e se deve agrupá-los num composto

      Returns Promise<TopoDSCompoundPointer | TopoDSWirePointer[]>

      Os fios por ordem, ou um composto que os contém

      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,
      });
    • Cria um fio reto de uma só aresta por definição de linha.

      Com returnCompound verdadeiro os fios são agrupados numa só forma composta em vez de uma lista.

      Parameters

      Returns Promise<TopoDSCompoundPointer | TopoDSWirePointer[]>

      Os fios por ordem, ou um composto que os contém

      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,
      });
    • Cria um fio de polilinha aberto por lista de pontos, tal como createPolylineWire faz.

      Com returnCompound verdadeiro os fios são agrupados numa só forma composta em vez de uma lista.

      Parameters

      Returns Promise<TopoDSCompoundPointer | TopoDSWirePointer[]>

      Os fios por ordem, ou um composto que os contém

      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,
      });
    • Cria um fio de Bezier por definição, tal como createBezier faz.

      Com returnCompound verdadeiro os fios são agrupados numa só forma composta em vez de uma lista.

      Parameters

      • inputs: BezierWiresDto

        As definições de Bezier e se deve agrupá-las num composto

      Returns Promise<TopoDSCompoundPointer | TopoDSWirePointer[]>

      Os fios por ordem, ou um composto que os contém

      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,
      });
    • Cria um fio B-spline interpolado por definição, tal como interpolatePoints faz.

      Com returnCompound verdadeiro os fios são agrupados numa só forma composta em vez de uma lista.

      Parameters

      • inputs: InterpolateWiresDto

        As definições de interpolação e se deve agrupá-las num composto

      Returns Promise<TopoDSCompoundPointer | TopoDSWirePointer[]>

      Os fios por ordem, ou um composto que os contém

      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,
      });
    • Cria um fio B-spline de aproximação por definição, tal como createBSpline faz.

      Com returnCompound verdadeiro os fios são agrupados numa só forma composta em vez de uma lista.

      Parameters

      • inputs: BSplinesDto

        As definições de B-spline e se deve agrupá-las num composto

      Returns Promise<TopoDSCompoundPointer | TopoDSWirePointer[]>

      Os fios por ordem, ou um composto que os contém

      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

    • Mapeia um fio plano desenhado no plano do chão sobre a superfície de uma face, como se o desenho fosse enrolado à volta dela.

      A coordenada Z do fio é lida como U e a sua coordenada X como V, nos valores UV reais da face, que shapes.face.getUMinBound e os seus irmãos reportam; um desenho que caiba dentro desses limites aterra na face.

      Parameters

      Returns Promise<TopoDSWirePointer>

      O fio assente na superfície da face

      const onSurface = await bitbybit.occt.shapes.wire.placeWireOnFace({ wire: flatWire, face: cylinderFace });
      
    • Projeta um fio sobre uma forma ao longo de uma direção, como lançar a sua sombra sobre a superfície.

      O resultado é um composto das curvas onde a projeção encontra as faces da forma, que podem estar tanto no seu lado próximo como no lado distante. Corte uma face com ele através de shapes.face.createFaceFromWireOnFace ou use-o como um trajeto.

      Parameters

      Returns Promise<TopoDSCompoundPointer>

      Um composto das curvas projetadas

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

    primitives

    • Cria um círculo completo como um fio fechado de uma só aresta, assente no plano cuja normal é direction; a predefinição [0, 1, 0] deita-o plano no chão.

      Parameters

      Returns Promise<TopoDSWirePointer>

      O fio circular

      const circle = await bitbybit.occt.shapes.wire.createCircleWire({ radius: 5, center: [0, 0, 0], direction: [0, 1, 0] });
      
    • Preenche um retângulo no plano do chão com uma grelha de fios hexagonais fechados, centrada na origem.

      Os hexágonos são escalados para que nrHexagonsInWidth caibam ao longo de width e nrHexagonsInHeight ao longo de height. Os padrões de escala, arredondamento e inclusão são lidos hexágono a hexágono e repetem-se; os indicadores de extensão esticam as filas exteriores para lá das margens para cobrir o retângulo.

      Parameters

      • inputs: HexagonsInGridDto

        O tamanho do retângulo, as contagens de hexágonos, os indicadores de extensão e os padrões opcionais

      Returns Promise<TopoDSWirePointer[]>

      Um fio por hexágono, linha a linha

      const cells = await bitbybit.occt.shapes.wire.hexagonsInGrid({
      width: 20,
      height: 10,
      nrHexagonsInWidth: 8,
      nrHexagonsInHeight: 4,
      flatTop: false,
      scalePatternWidth: [0.9],
      scalePatternHeight: [0.9],
      });
    • Cria um fio quadrado fechado centrado em center.

      direction é a normal do seu plano: a predefinição [0, 1, 0] deita-o plano no chão.

      Parameters

      Returns Promise<TopoDSWirePointer>

      O fio quadrado

      const square = await bitbybit.occt.shapes.wire.createSquareWire({ size: 10, center: [0, 0, 0], direction: [0, 1, 0] });
      
    • Cria um fio fechado em forma de estrela com numRays pontas.

      As pontas chegam a outerRadius e os entalhes entre elas a innerRadius; offsetOuterEdges levanta as pontas dos raios para fora do plano por essa distância, criando uma estrela 3D, e half mantém a primeira metade dos raios como um fio aberto. Assenta plano no chão a menos que direction diga o contrário.

      Parameters

      • inputs: Bit.Inputs.OCCT.StarDto

        Os dois raios, o número de pontas, o centro, a normal do plano e as opções

      Returns Promise<TopoDSWirePointer>

      O fio em estrela

      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 });
      
    • Cria um fio fechado com a forma de uma árvore de Natal estilizada: nrSkirts camadas de ramos, estreitando de outerDist para innerDist a partir da linha do tronco, sobre um tronco de trunkHeight e trunkWidth.

      Ao contrário das outras formas planas aqui, fica de pé no plano XY, com a ponta ao longo de Y; direction é a direção do tronco para a ponta, rotation roda-a em torno desse eixo, em graus.

      Parameters

      • inputs: ChristmasTreeDto

        As proporções da árvore, o tamanho do tronco, as opções, a origem e a direção do tronco para o topo

      Returns Promise<TopoDSWirePointer>

      O fio em árvore

      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],
      });
    • Cria um fio de polígono regular fechado com nrCorners cantos, todos sobre um círculo de radius.

      direction é a normal do plano; a predefinição [0, 1, 0] deita-o plano no chão.

      Parameters

      • inputs: NGonWireDto

        O número de cantos, o raio, o centro e a normal do plano

      Returns Promise<TopoDSWirePointer>

      O fio poligonal

      const hexagon = await bitbybit.occt.shapes.wire.createNGonWire({ nrCorners: 6, radius: 5, center: [0, 0, 0], direction: [0, 1, 0] });
      
    • Cria um fio de paralelogramo fechado: um retângulo de width e height cujos lados se inclinam angle graus.

      Com aroundCenter verdadeiro a forma é centrada em center; caso contrário parte daí e estende-se nas direções positivas. direction é a normal do plano; a predefinição [0, 1, 0] deita-o plano no chão.

      Parameters

      • inputs: ParallelogramDto

        A largura, a altura, o ângulo de inclinação, se deve centrá-lo, o centro e a normal do plano

      Returns Promise<TopoDSWirePointer>

      O fio em paralelogramo

      const shape = await bitbybit.occt.shapes.wire.createParallelogramWire({ width: 10, height: 5, angle: 30, aroundCenter: true, center: [0, 0, 0], direction: [0, 1, 0] });
      
    • Cria um fio fechado em forma de coração com duas metades suaves que cabe aproximadamente num quadrado de sizeApprox.

      rotation roda-o no seu plano, em graus. direction é a normal do plano; a predefinição [0, 1, 0] deita-o plano no chão.

      Parameters

      • inputs: Heart2DDto

        O tamanho aproximado, a rotação, o centro e a normal do plano

      Returns Promise<TopoDSWirePointer>

      O fio em coração

      const heart = await bitbybit.occt.shapes.wire.createHeartWire({ sizeApprox: 10, rotation: 0, center: [0, 0, 0], direction: [0, 1, 0] });
      
    • Cria um fio de retângulo fechado centrado em center.

      No plano do chão width corre ao longo de X e length ao longo de Z; direction é a normal do plano, e a predefinição [0, 1, 0] mantém o fio plano no chão.

      Parameters

      Returns Promise<TopoDSWirePointer>

      O fio retangular

      const rectangle = await bitbybit.occt.shapes.wire.createRectangleWire({ width: 20, length: 10, center: [0, 0, 0], direction: [0, 1, 0] });
      
    • Cria um fio fechado em forma de L: duas pernas retangulares unidas num canto.

      A primeira perna tem widthFirst e lengthFirst, a segunda widthSecond e lengthSecond; align coloca o canto no exterior, no interior ou no meio das pernas, e rotation roda a forma no seu plano, em graus. Assenta plano no chão a menos que direction diga o contrário.

      Parameters

      • inputs: LPolygonDto

        Os dois tamanhos das abas, o alinhamento, a rotação, o centro e a normal do plano

      Returns Promise<TopoDSWirePointer>

      O fio em forma de 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],
      });
    • Cria uma elipse completa como um fio fechado de uma só aresta, assente no plano cuja normal é direction.

      radiusMajor não pode ser menor do que radiusMinor, ou o kernel recusa a elipse; a direção predefinida [0, 1, 0] deita-a plana no chão.

      Parameters

      Returns Promise<TopoDSWirePointer>

      O fio elíptico

      const ellipse = await bitbybit.occt.shapes.wire.createEllipseWire({ center: [0, 0, 0], direction: [0, 1, 0], radiusMinor: 3, radiusMajor: 6 });
      
    • Cria um fio de hélice, uma espiral de radius constante que sobe pitch unidades do modelo por volta até atingir height.

      Começa ao lado de center e sobe ao longo de direction; clockwise inverte o enrolamento. A hélice é aproximada por uma curva suave dentro de tolerance. Um raio, passo ou altura de 0 ou menos dá um fio nulo.

      Parameters

      • inputs: HelixWireDto

        O raio, o passo, a altura, o centro da base, a direção do eixo, o sentido de enrolamento e a tolerância

      Returns Promise<TopoDSWirePointer>

      O fio em hélice

      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 });
      
    • Cria um fio de hélice como createHelixWire, mas dimensionado por numTurns em vez de uma altura: a espiral sobe pitch unidades do modelo por volta, numTurns vezes.

      Parameters

      • inputs: HelixWireByTurnsDto

        O raio, o passo, o número de voltas, o centro da base, a direção do eixo, o sentido de enrolamento e a tolerância

      Returns Promise<TopoDSWirePointer>

      O fio em hélice

      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 });
      
    • Cria um fio de hélice cónica cujo raio muda uniformemente de startRadius na base para endRadius no topo, subindo pitch unidades do modelo por volta até atingir height.

      Começa ao lado de center e sobe ao longo de direction; clockwise inverte o enrolamento. A curva é aproximada dentro de tolerance.

      Parameters

      • inputs: TaperedHelixWireDto

        Os raios inicial e final, o passo, a altura, o centro da base, a direção do eixo, o sentido de enrolamento e a tolerância

      Returns Promise<TopoDSWirePointer>

      O fio em hélice cónica

      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 });
      
    • Cria um fio de espiral plana no plano cuja normal é direction: numTurns voltas cujo raio cresce uniformemente de startRadius para endRadius.

      A direção predefinida [0, 1, 0] deita-a plana no chão; clockwise inverte o enrolamento, e a curva é aproximada dentro de tolerance.

      Parameters

      • inputs: FlatSpiralWireDto

        Os raios inicial e final, o número de voltas, o centro, a normal do plano, o sentido de enrolamento e a tolerância

      Returns Promise<TopoDSWirePointer>

      O fio em espiral

      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 });
      
    • Escreve texto como fios de traço no plano do chão no tipo de letra Hershey simplex de linha única, um fio de polilinha aberto por traço de caneta.

      height é a altura de uma letra maiúscula em unidades do modelo, lineSpacing e letterSpacing são múltiplos dela, align alinha linhas de comprimento diferente, e centerOnOrigin move o bloco para a origem.

      Parameters

      • inputs: TextWiresDto

        O texto, o seu tamanho e espaçamento, o alinhamento e as opções de colocação

      Returns Promise<TopoDSWirePointer[]>

      Um fio por traço, pela ordem de escrita

      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,
      });
    • Escreve texto como fios de traço como textWires e agrupa-os em compostos, com o tamanho do bloco ao lado.

      O resultado traz compound com o texto inteiro, characters com um composto por carácter pela ordem de escrita, width e height como a extensão do bloco ao longo de X e ao longo de Z, e center como o meio do bloco.

      Parameters

      • inputs: TextWiresDto

        O texto, o seu tamanho e espaçamento, o alinhamento e as opções de colocação

      Returns Promise<TextWiresDataDto<TopoDSCompoundPointer>>

      O composto do texto, os compostos dos caracteres e o tamanho medido

      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

    • Reconstrói cada aresta de um fio como uma B-spline de um dado grau, dentro de uma tolerância, e une os resultados de volta num fio.

      Baixar o grau simplifica as curvas, subi-lo dá mais liberdade às operações posteriores; de qualquer modo cada nova curva fica dentro de tolerance da antiga.

      Parameters

      Returns Promise<TopoDSWirePointer>

      Um novo fio com as arestas reconstruídas

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

    seam

    • Move a costura de um fio periódico fechado, o ponto onde começa e termina, para um dado parâmetro ao longo da sua curva.

      A geometria não muda; só onde se considera que o fio começa. Destinado a fios de uma só aresta como círculos: cada aresta periódica é movida, as arestas que não são periódicas ficam como estão.

      Parameters

      Returns Promise<TopoDSWirePointer>

      Um novo fio que começa na costura

      const rotated = await bitbybit.occt.shapes.wire.moveWireSeamByParameter({ shape: circle, parameter: 1.57 });
      
    • Move a costura de um fio periódico fechado, o ponto onde começa e termina, uma distância ao longo da curva a partir do seu início atual.

      A geometria não muda; só onde se considera que o fio começa. Destinado a fios de uma só aresta como círculos: cada aresta periódica é movida, as arestas que não são periódicas ficam como estão.

      Parameters

      Returns Promise<TopoDSWirePointer>

      Um novo fio que começa na costura

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

    via points

    • Cria um fio fechado de arestas retas através de uma lista de pontos de canto, adicionando a aresta do último ponto de volta ao primeiro.

      Os pontos não precisam de assentar num só plano; uma face plana precisa contudo de um contorno planar.

      Parameters

      • inputs: PolygonDto

        Os pontos dos cantos, por ordem

      Returns Promise<TopoDSWirePointer>

      O fio fechado

      const square = await bitbybit.occt.shapes.wire.createPolygonWire({ points: [[0, 0, 0], [10, 0, 0], [10, 0, 10], [0, 0, 10]] });
      
    • Cria um fio reto de uma só aresta entre dois pontos.

      Parameters

      Returns Promise<TopoDSWirePointer>

      O fio reto

      const line = await bitbybit.occt.shapes.wire.createLineWire({ start: [0, 0, 0], end: [10, 0, 0] });
      
    • Cria um fio reto de uma só aresta entre dois pontos e prolonga-o para lá de cada um deles.

      extensionStart e extensionEnd são distâncias em unidades do modelo acrescentadas para lá do início e do fim ao longo da linha; os dois pontos têm de ser diferentes ou é lançado um erro.

      Parameters

      Returns Promise<TopoDSWirePointer>

      O fio reto prolongado

      const longer = await bitbybit.occt.shapes.wire.createLineWireWithExtensions({ start: [0, 0, 0], end: [10, 0, 0], extensionStart: 2, extensionEnd: 5 });
      
    • Cria um fio aberto de arestas retas através de uma lista de pontos, por ordem.

      O fio não é fechado; createPolygonWire adiciona a aresta de volta ao primeiro ponto.

      Parameters

      Returns Promise<TopoDSWirePointer>

      O fio aberto

      const path = await bitbybit.occt.shapes.wire.createPolylineWire({ points: [[0, 0, 0], [10, 0, 0], [10, 0, 10]] });
      
    • Cria um fio de Bezier suave guiado por pontos de controlo: começa no primeiro ponto, termina no último e é puxado para os intermédios sem passar por eles.

      closed acrescenta de novo o primeiro ponto para que as extremidades se encontrem; periodic constrói em vez disso uma curva fechada que é suave ao longo da costura. degree limita quantos vizinhos moldam cada parte.

      Parameters

      • inputs: BezierDto

        Os pontos de controlo e as opções de fecho e de grau

      Returns Promise<TopoDSWirePointer>

      O fio de 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 });
      
    • Cria um fio de Bezier como createBezier, com um peso por ponto de controlo que diz quão fortemente ele puxa a curva.

      Um peso acima de 1 atrai a curva para o seu ponto, abaixo de 1 deixa-a ir. Os pesos têm de corresponder aos pontos: a mesma contagem, ou mais um quando closed é verdadeiro e periodic falso, pois o primeiro ponto repete-se.

      Parameters

      • inputs: BezierWeightsDto

        Os pontos de controlo, os seus pesos e as opções de fecho e de grau

      Returns Promise<TopoDSWirePointer>

      O fio de Bezier ponderado

      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,
      });
    • Cria um fio B-spline suave que passa por todos os pontos por ordem.

      periodic fecha a curva de modo que é suave ao longo da costura, o que dá laços bem formados. parametrization controla o espaçamento entre pontos: centripetal resiste a bicos e ultrapassagens quando os pontos são irregulares. startTangent e endTangent, ou uma entrada de tangents por ponto, forçam a direção da curva nesse sítio.

      Parameters

      • inputs: InterpolationDto

        Os pontos, se deve fechar a curva, a tolerância, a parametrização e tangentes opcionais

      Returns Promise<TopoDSWirePointer>

      O fio B-spline que passa pelos pontos

      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,
      });
    • Cria um fio B-spline fechado e suave através dos pontos cuja forma é simétrica em espelho sempre que os pontos o são, sem um ponto inicial ou final de aspeto estranho.

      Um interpolatePoints periódico simples pode parecer torto na sua costura para entradas simétricas como um quadrado ou um triângulo; esta variante não. Falha com um erro se os pontos não puderem ser interpolados.

      Parameters

      Returns Promise<TopoDSWirePointer>

      O fio B-spline simétrico fechado

      const rounded = await bitbybit.occt.shapes.wire.interpolatePointsSymmetric({ points: [[0, 0, 0], [10, 0, 0], [10, 0, 10], [0, 0, 10]], tolerance: 1e-7 });
      
    • Cria um fio B-spline suave que aproxima uma lista de pontos: segue-os de perto mas não precisa de passar exatamente por cada um.

      closed acrescenta de novo o primeiro ponto para que as extremidades se encontrem. O ajuste usa um grau entre 3 e 8 e uma tolerância de 0.001 unidades do modelo; use interpolatePoints quando a curva tiver de passar pelos pontos.

      Parameters

      • inputs: BSplineDto

        Os pontos e se deve fechar a curva

      Returns Promise<TopoDSWirePointer>

      O fio 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

    • Desenha uma linha em ziguezague que salta entre dois fios: ambos são divididos no mesmo número de pontos e uma polilinha visita-os alternadamente.

      nrZigZags define o número de saltos; inverse começa no segundo fio; divideByEqualDistance espaça os pontos por comprimento em vez de por parâmetro; com zigZagsPerEdge verdadeiro cada aresta recebe o seu próprio ziguezague, por isso as contagens de arestas têm de coincidir.

      Parameters

      Returns Promise<TopoDSWirePointer>

      O fio em ziguezague

      const zigzag = await bitbybit.occt.shapes.wire.createZigZagBetweenTwoWires({ wire1: lower, wire2: upper, nrZigZags: 20, inverse: false, divideByEqualDistance: true, zigZagsPerEdge: false });
      
    • Liga os pontos iniciais de vários fios ou arestas num novo fio e os seus pontos finais noutro.

      wireType torna-os polilinhas ou curvas interpoladas suaves, closed une o último ponto de volta ao primeiro, e tolerance é usada para a interpolação. Menos de duas formas lançam um erro.

      Parameters

      Returns Promise<TopoDSWirePointer[]>

      Dois fios: um pelos pontos iniciais, outro pelos pontos finais

      const [starts, ends] = await bitbybit.occt.shapes.wire.createWiresBetweenStartEndPointsOfWiresAndEdges({
      shapes: [wireA, wireB, wireC],
      wireType: Bit.Inputs.OCCT.wireFromPointsTypeEnum.interpolated,
      closed: false,
      tolerance: 1e-7,
      });
    • Divide vários fios ou arestas no mesmo número de pontos e liga os pontos em cada posição num novo fio, como os degraus de uma escada.

      nrOfDivisions passos dão mais um degrau do que isso; divideByEqualDistance espaça os pontos por comprimento em vez de por parâmetro; wireType torna os degraus polilinhas ou curvas suaves, closed fecha cada um num laço.

      Parameters

      Returns Promise<TopoDSWirePointer[]>

      Um fio por ponto de divisão, por ordem ao longo das formas

      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,
      });
    • Desenha um contorno fechado à volta de dois círculos que assentam num só plano, unindo-os com linhas tangentes: uma forma de correia ou de cápsula.

      keepLines escolhe as linhas tangentes exteriores (a correia) ou as interiores que se cruzam; circleRemainders escolhe qual arco de cada círculo fica no contorno. Cada fio de círculo tem de consistir numa única aresta.

      Parameters

      Returns Promise<TopoDSWirePointer>

      O fio de contorno fechado

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