Cria a secção transversal plana 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-a no seu plano, em graus. Assenta no chão, pronta a extrudir ao longo de
Y.
O tamanho do perfil, as duas espessuras, o alinhamento, a rotação, o centro e a normal do plano
A face do perfil da viga em 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] });
Cria a secção transversal plana 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-a no seu plano, em graus. Assenta no chão.
O tamanho do perfil, as duas espessuras, o alinhamento, a rotação, o centro e a normal do plano
A face do perfil da viga em H
Cria a secção transversal plana 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, e
rotation roda-a no seu plano, em graus. Assenta plana no chão.
O tamanho do perfil, as duas espessuras, o alinhamento, a rotação, o centro e a normal do plano
A face do perfil da viga em T
Cria a secção transversal plana 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-a no seu plano, em graus. Assenta plana no chão.
O tamanho do perfil, as espessuras, a largura do banzo, o alinhamento, a rotação, o centro e a normal do plano
A face do perfil da viga em U
Recolhe factos de diagnóstico sobre uma face: o seu tipo de superfície, graus U e V, contagens de pontos de controlo e de nós, se U ou V são fechados, periódicos ou racionais, os limites UV, a área, a planaridade, a orientação e o número de fios e arestas.
Uma face vazia ou nula dá um relatório marcado como inválido.
A face a inspecionar
O relatório
Estende uma grelha de pontos sobre uma face avançando uniformemente pelos seus intervalos U e V.
nrDivisionsU por nrDivisionsV pontos cobrem a face de aresta a aresta, listados fila a fila: todos os valores
V para o primeiro U, depois o U seguinte. Os indicadores de remoção retiram a primeira ou a última fila; os
indicadores de deslocamento empurram cada ponto meio passo.
A face, o número de pontos em U e V, e as opções de desvio e remoção
Os pontos, linha a linha
Desenha fios uniformemente espaçados através de uma face ao longo de uma direção de parâmetro, como as linhas de uma folha pautada.
nrDivisions passos dão mais um fio do que isso, incluindo as linhas de fronteira; removeStart
e removeEnd retiram essas, shiftHalfStep move cada fio meio passo. Com isU verdadeiro
cada fio fica num U fixo e corre ao longo de V; falso troca os papéis.
A face, o número de divisões, a direção e as opções
Os fios, por ordem ao longo da direção escolhida
Estende uma grelha de pontos sobre uma face como subdivideToPoints, mas desloca e remove pontos em
cada enésima fila ou coluna, para padrões de tijolo e desfasados.
Cada regra é um par: shiftHalfStepNthU diz de quantas em quantas filas V uma se move meio passo em U,
shiftHalfStepUOffsetN onde a contagem começa; as regras de remoção retiram cada enésimo ponto de uma
fila de borda.
A face, o número de pontos em U e V, e as regras de desvio e remoção de cada n-ésima linha
Os pontos, linha a linha
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,
});
Calcula a normal da superfície em cada ponto da grelha que subdivideToPoints estenderia sobre uma
face, com as mesmas opções e a mesma ordem.
As normais são vetores unitários e seguem a orientação da face, por isso uma face invertida dá-as
invertidas. Emparelhe a lista com subdivideToPoints para colocar coisas de pé sobre a superfície.
A face, o número de pontos em U e V, e as opções de desvio e remoção
As normais unitárias, linha a linha
Lista os pares de parâmetros UV da grelha que subdivideToPoints estenderia sobre uma face, com as
mesmas opções e a mesma ordem.
Os pares estão nos valores UV reais da face, não em frações.
A face, o número de pontos em U e V, e as opções de desvio e remoção
Os pares UV, linha a linha
Encontra o ponto numa face nas frações UV dadas.
paramU e paramV vão de 0 a 1 sobre o intervalo U e V da face, por isso 0.5, 0.5 é o
meio do intervalo, que numa face aparada nem sempre está dentro da face.
A face e as frações U e V
O ponto na superfície
Encontra a normal da superfície de uma face nas frações UV dadas.
paramU e paramV vão de 0 a 1 sobre o intervalo U e V da face. A normal é um vetor
unitário e segue a orientação da face, por isso uma face invertida dá-a invertida.
A face e as frações U e V
A normal unitária
Encontra os pontos numa face em vários pares de frações UV de uma vez.
Cada par contém U e depois V, ambos de 0 a 1 sobre o intervalo da face.
A face e a lista de pares de frações U e V
Um ponto por par, pela mesma ordem
Encontra as normais da superfície de uma face em vários pares de frações UV de uma vez.
Cada par contém U e depois V, ambos de 0 a 1 sobre o intervalo da face. As normais são vetores
unitários da superfície subjacente; ao contrário de normalOnUV, não são invertidas para uma face
invertida.
A face e a lista de pares de frações U e V
Uma normal unitária por par, pela mesma ordem
Coloca pontos uniformemente espaçados ao longo de uma linha reta através do intervalo UV de uma face.
Com isU verdadeiro a linha fica em param (uma fração de 0 a 1 do intervalo U) e
nrPoints pontos distribuem-se por todo o intervalo V; com falso os papéis trocam.
removeStartPoint e removeEndPoint retiram as extremidades, e shiftHalfStep move cada ponto
meio passo.
A face, a direção, a fração ao longo dela, o número de pontos e as opções
Os pontos ao longo da linha, por ordem
Desenha um fio através de uma face ao longo de uma linha de parâmetro, seguindo a superfície.
Com isU verdadeiro o fio fica em param (uma fração de 0 a 1 do intervalo U) e corre
por todo o intervalo V; com falso os papéis trocam.
A face, a direção e a fração ao longo dela
O fio na superfície
Desenha vários fios através de uma face, um por valor de parâmetro, seguindo a superfície.
Com isU verdadeiro cada fio fica na sua fração do intervalo U e corre por todo o intervalo
V; com falso os papéis trocam.
A face, a direção e as frações ao longo dela
Um fio por fração, pela mesma ordem
Classifica os pontos como dentro de uma face, na sua fronteira ou fora dela, e mantém os grupos escolhidos.
keepIn, keepOn, keepOut e keepUnknown escolhem os grupos; tolerance decide quão
perto da fronteira conta como estando nela. Com useBndBox, um ponto fora da caixa delimitadora
aumentada por gapTolerance está fora.
A face, os pontos, a tolerância, o atalho da caixa delimitadora e quais os grupos a manter
Os pontos que passaram, pela sua ordem original
Executa filterFacePoints contra várias faces com os mesmos pontos e opções.
Por predefinição o resultado contém uma lista por face; com flatPointsArray verdadeiro as listas são
unidas numa só, de modo que um ponto em duas faces aparece duas vezes.
As faces, os pontos, a tolerância, quais os grupos a manter e se deve aplanar o resultado
Uma lista de pontos por face, ou uma única lista junta
Cria uma face por fio, cada uma recortada da superfície de uma face guia de modo a tomar a curvatura dessa superfície.
Os fios têm de assentar na superfície. Com inside verdadeiro cada fio é orientado para que a sua face seja a
região que ele delimita; com falso a direção própria do fio decide, e um fio que corra no sentido
contrário dá a região exterior.
Os fios, a face guia e qual o lado a manter
Uma face por fio, pela mesma ordem
Cria uma face a partir de um fio que assenta na superfície de uma face guia, de modo que a nova face toma a curvatura dessa superfície.
Com inside verdadeiro o fio é orientado para que a face seja a região que ele delimita; com falso a
direção própria do fio decide, e um fio que corra no sentido contrário dá a região fora dele.
O fio, a face guia e qual o lado a manter
A nova face
Cria uma face delimitada por um fio fechado.
Com planar verdadeiro o fio tem de assentar num só plano e a face é plana; com falso uma superfície
suave é ajustada através das arestas do fio, o que preenche um fio que não é plano. Uma forma que
não seja um fio lança um erro.
O fio e se a face tem de ser plana
A nova face
Cria uma face a partir de vários fios: o primeiro fio é a fronteira exterior e cada fio seguinte recorta um furo nela.
Com planar verdadeiro os fios têm de assentar num só plano. Os fios dos furos têm de ficar dentro do
exterior sem o cruzar nem se cruzarem entre si.
Os fios, a fronteira exterior primeiro, e se a face tem de ser plana
A face com furos
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 });
Cria uma face a partir de vários fios na superfície de uma face guia: o primeiro fio é a fronteira exterior e cada fio seguinte recorta um furo.
A face toma a curvatura da superfície guia. inside aplica-se ao primeiro fio: verdadeiro
orienta-o para que a face seja a região que ele delimita; falso deixa a sua própria direção decidir.
Os fios, a fronteira exterior primeiro, a face guia e qual o lado a manter
A face com furos
Cria uma face por fio fechado, cada uma como createFaceFromWire faria.
Com planar verdadeiro cada fio tem de assentar num plano; com falso uma superfície suave é ajustada
através de cada um.
Os fios e se as faces têm de ser planas
Uma face por fio, pela mesma ordem
Une círculos com cintas tangentes: para cada par desenha as duas linhas tangentes exteriores e os arcos exteriores entre elas e preenche esse contorno com uma face plana.
combination escolhe os pares: allWithAll cada círculo com todos os outros, inOrder
vizinhos na lista, inOrderClosed também o último com o primeiro. unify funde as faces;
caso contrário formam um composto.
Os fios circulares, como emparelhá-los, se deve fundir o resultado e a tolerância
A forma fundida, ou o composto das faces de correia
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,
});
Une círculos de listas consecutivas com cintas tangentes, da maneira como
createFaceFromMultipleCircleTanWires une círculos individuais.
allWithAll une cada círculo de uma lista com cada círculo da seguinte; inOrder une
círculos na mesma posição em listas vizinhas, que precisam de comprimentos iguais; inOrderClosed
também fecha cada lista num anel. unify funde as faces; caso contrário formam um composto.
As listas de fios circulares, como emparelhá-los, se deve fundir o resultado e a tolerância
A forma fundida, ou o composto das faces de correia
Cria uma face que cobre uma superfície inteira, até aos limites naturais da superfície.
tolerance é usada para detetar arestas degeneradas, como o polo de uma esfera. As superfícies vêm
de geom.surfaces.
A superfície e a tolerância para arestas degeneradas
A face
Cria uma face cortando uma superfície com um fio que assenta nela.
Com inside verdadeiro o fio é orientado para que a face seja a região que ele delimita; com falso a
direção própria do fio decide, e um fio que corra no sentido contrário dá a região fora dele.
As superfícies vêm de geom.surfaces.
A superfície, o fio sobre ela e qual o lado a manter
A face
Cria uma face triangular plana a partir de três pontos.
O triângulo como três pontos
A face
Cria uma face triangular plana por triângulo de uma malha.
Um triângulo que não possa formar uma face, por exemplo um com pontos repetidos, é saltado com um aviso na consola.
A malha como uma lista de triângulos
Uma face por triângulo que foi possível construir
Escolhe uma face 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 uma face ou algo construído a partir de faces; um índice para lá da última face lança um erro.
A forma e o índice a começar em 0
A face nesse índice
Lista todas as faces de uma forma pela ordem em que o kernel a percorre.
A forma
As faces encontradas na forma
Inverte uma face de modo que a sua normal aponta no sentido contrário.
A geometria fica igual; só a orientação muda, o que decide o exterior de uma
casca e a direção que normalOnUV reporta.
A face
A face invertida
Lê o menor valor do parâmetro U de uma face, nas unidades próprias da superfície.
Junto com getUMaxBound, getVMinBound e getVMaxBound dá o intervalo sobre o qual as
frações UV usadas noutros sítios nesta classe são mapeadas.
A face
O limite inferior de U
Lê o maior valor do parâmetro U de uma face, nas unidades próprias da superfície.
A face
O limite superior de U
Lê o menor valor do parâmetro V de uma face, nas unidades próprias da superfície.
A face
O limite inferior de V
Lê o maior valor do parâmetro V de uma face, nas unidades próprias da superfície.
A face
O limite superior de V
Mede a área da superfície de uma face, em unidades do modelo quadradas.
A face
A área
Mede a área da superfície de cada face de uma lista, em unidades do modelo quadradas.
As faces
Uma área por face, pela mesma ordem
Encontra o centro de massa de uma face, o ponto em que a sua área se equilibra.
Numa face curva ou em forma de anel este ponto pode ficar fora da superfície.
A face
O centro de massa
Encontra o centro de massa de cada face de uma lista.
As faces
Um ponto por face, pela mesma ordem
Estende fios retangulares sobre uma face, um por célula de uma divisão de nrRectanglesU por nrRectanglesV
do seu intervalo UV, seguindo a superfície.
Os deslocamentos de borda aparam o intervalo em cada extremidade. Cada retângulo fica centrado na sua célula, dimensionado pelos padrões de escala como uma fração dela; o padrão de arredondamento arredonda os cantos, o padrão de inclusão salta células.
A face, as contagens de células, os deslocamentos da margem e os padrões opcionais
Os fios retangulares, célula a célula
Recorta uma grelha de furos retangulares numa face e devolve a face perfurada.
Os furos seguem as mesmas células e padrões de subdivideToRectangleWires; quando não é dado nenhum padrão de
escala cada furo cobre metade da sua célula. Com holesToFaces verdadeiro o resultado traz também
uma face por furo, a seguir à face perfurada, o que é útil para tampas ou enchimentos.
A face, as contagens de células, os deslocamentos da margem, os padrões opcionais e se deve devolver as faces dos furos
A face perfurada, seguida das faces dos furos quando pedidas
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,
});
Estende um favo de mel de fios hexagonais sobre uma face, nrHexagonsU por nrHexagonsV deles
ajustados ao seu intervalo UV, cada um seguindo a superfície.
Os deslocamentos de borda aparam uma fração do intervalo em cada extremidade; flatU vira um lado plano para
U, os indicadores de extensão esticam as filas exteriores para lá das margens. Os padrões de escala, arredondamento e inclusão
repetem-se por hexágono.
A face, as contagens de hexágonos, a orientação, os deslocamentos da margem, os indicadores de extensão e os padrões opcionais
Os fios hexagonais, linha a linha
Recorta um favo de mel de furos hexagonais numa face e devolve a face perfurada.
Os furos seguem a mesma disposição e padrões de subdivideToHexagonWires; quando não é dado nenhum padrão de
escala cada furo tem metade do tamanho do seu hexágono. Com holesToFaces verdadeiro o
resultado traz também uma face por furo, a seguir à face perfurada.
A face, as contagens de hexágonos, a orientação, os deslocamentos da margem, os padrões opcionais e se deve devolver as faces dos furos
A face perfurada, seguida das faces dos furos quando pedidas
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,
});
Cria uma face plana a partir de uma lista de pontos de canto, fechando o contorno do último ponto de volta ao primeiro.
Os pontos têm de assentar num só plano.
Os pontos dos cantos por ordem
A face
Cria uma face circular plana, um disco.
direction é a normal do seu plano: a predefinição [0, 1, 0] deita-o plano no chão.
A face em disco
Preenche um retângulo no plano do chão com uma grelha de faces hexagonais planas, 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.
O tamanho do retângulo, as contagens de hexágonos, os indicadores de extensão e os padrões opcionais
Uma face por hexágono, linha a linha
Cria uma face elíptica plana.
direction é a normal do seu plano: a predefinição [0, 1, 0] deita-a plana no chão.
radiusMajor tem de ser pelo menos radiusMinor.
Os dois raios, o centro e a normal do plano
A face elíptica
Cria uma face quadrada plana centrada em center.
direction é a normal do seu plano: a predefinição [0, 1, 0] deita-a plana no chão.
A face quadrada
Cria uma face retangular plana centrada 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 a face plana no chão.
A largura, o comprimento, o centro e a normal do plano
A face retangular
Cria uma face plana 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 plana no chão a menos que
direction diga o contrário.
Os dois tamanhos das abas, o alinhamento, a rotação, o centro e a normal do plano
A face em forma de L
Cria uma face plana em forma de estrela com numRays pontas.
As pontas chegam a outerRadius e os entalhes entre elas a innerRadius; half mantém só
a primeira metade dos raios. offsetOuterEdges levanta as pontas dos raios para fora do plano e destina-se
ao fio; uma face plana precisa dele a 0. Assenta plana no chão a menos que direction
diga o contrário.
A face em estrela
Cria uma face plana 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.
As proporções da árvore, o tamanho do tronco, as opções, a origem e a direção do tronco para o topo
A face em árvore
Cria uma face de paralelogramo plana: 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-a plana no chão.
A largura, a altura, o ângulo de inclinação, se deve centrá-la, o centro e a normal do plano
A face em paralelogramo
Cria uma face plana em forma de coração que cabe aproximadamente num quadrado de sizeApprox.
rotation roda-a no seu plano, em graus. direction é a normal do plano; a
predefinição [0, 1, 0] deita-a plana no chão.
O tamanho aproximado, a rotação, o centro e a normal do plano
A face em coração
Cria uma face de polígono regular plana com nrCorners cantos, todos sobre um círculo de radius.
direction é a normal do plano; a predefinição [0, 1, 0] deita-a plana no chão.
O número de cantos, o raio, o centro e a normal do plano
A face poligonal
Reconstrói a superfície de uma face como uma B-spline dos graus U e V dados.
Baixar um grau suaviza a superfície numa aproximação mais simples dentro de tolerance;
subi-lo é exato. keepTrim mantém os fios de fronteira originais, o que é fiável ao
subir; caso contrário a face cobre toda a nova superfície. Uma reconstrução que falhe dá uma face
nula.
A face, os graus U e V pretendidos, a tolerância e se deve manter a fronteira
A face reconstruída
Altera como os parâmetros UV correm sobre uma face: trocar U e V, inverter U, inverter V, ou qualquer combinação.
A geometria fica igual; só as direções dos parâmetros mudam, o que importa para todos os
métodos aqui que trabalham em UV, como subdivideToPoints ou wireAlongParam. A face é
reconstruída sobre os limites naturais da superfície.
A face e quais as inversões a aplicar
A face com a parametrização alterada
Reparametriza uma face para que passos iguais em U ou V deem distâncias aproximadamente iguais na superfície.
Muitas superfícies concentram os seus parâmetros em certos sítios, por isso uma grelha UV sobre elas parece irregular; isto
reamostra a superfície em samples pontos por direção e reajusta-a, o que uniformiza
subdivideToPoints e os seus irmãos. A face é reconstruída sobre os novos limites.
A face, quais as direções a normalizar, o número de amostras e a tolerância de ajuste
A face reparametrizada
Faces em OpenCascade: pedaços delimitados de uma superfície, planos ou curvos, com um fio de fronteira exterior e fios interiores opcionais que fazem furos. Construa-as a partir de fios ou superfícies, ou como formas planas prontas (círculos, retângulos, estrelas, perfis de viga) que assentam no plano do chão a menos que
directiondiga o contrário; percorra a sua superfície através de parâmetros UV para obter pontos, normais e grelhas de fios; corte padrões de furos nelas; e meça a área e o centro de massa. U e V são as duas direções de uma superfície, dadas aqui como frações de 0 a 1 do intervalo próprio da face. As faces unem-se aresta a aresta em cascas, queshapes.shelltrata.