Crea la sección transversal plana de una viga en I: dos alas horizontales unidas por un alma vertical.
width es la anchura del ala, height la altura total, webThickness y flangeThickness
los grosores de pared; alignment dice qué punto de la caja del perfil se sitúa en center,
rotation la gira en su plano, en grados. Está en el suelo, lista para extruir a lo largo de
Y.
El tamaño del perfil, los dos espesores, la alineación, la rotación, el centro y la normal del plano
La cara de perfil de viga en 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] });
Crea la sección transversal plana de una viga en H: dos alas verticales unidas por un alma horizontal, una viga en I tumbada.
width es la anchura total, height la altura del ala, webThickness y flangeThickness
los grosores de pared; alignment dice qué punto de la caja del perfil se sitúa en center,
rotation la gira en su plano, en grados. Está en el suelo.
El tamaño del perfil, los dos espesores, la alineación, la rotación, el centro y la normal del plano
La cara de perfil de viga en H
Crea la sección transversal plana de una viga en T: un ala horizontal con un alma vertical que cuelga de su centro.
width es la anchura del ala, height la altura total, webThickness y flangeThickness
los grosores de pared; alignment dice qué punto de la caja del perfil se sitúa en center, y
rotation la gira en su plano, en grados. Está tumbada en el suelo.
El tamaño del perfil, los dos espesores, la alineación, la rotación, el centro y la normal del plano
La cara de perfil de viga en T
Crea la sección transversal plana de una viga en U, un canal: un alma con dos alas de
flangeWidth levantadas desde sus extremos.
width y height son el tamaño total, webThickness y flangeThickness los grosores de
pared; alignment dice qué punto de la caja del perfil se sitúa en center, rotation
la gira en su plano, en grados. Está tumbada en el suelo.
El tamaño del perfil, los espesores, la anchura del ala, la alineación, la rotación, el centro y la normal del plano
La cara de perfil de viga en U
Recopila datos de diagnóstico sobre una cara: su tipo de superficie, los grados U y V, el número de puntos de control y de nodos, si U o V están cerrados, son periódicos o racionales, los límites UV, el área, la planaridad, la orientación y el número de alambres y aristas.
Una cara vacía o null da un informe marcado como no válido.
La cara que inspeccionar
El informe
Tiende una cuadrícula de puntos sobre una cara avanzando uniformemente por sus rangos U y V.
nrDivisionsU por nrDivisionsV puntos cubren la cara de borde a borde, listados fila a fila: todos los valores
V para la primera U, luego la siguiente U. Los indicadores de eliminación descartan la primera o la última fila; los
indicadores de desplazamiento empujan cada punto medio paso.
La cara, el número de puntos en U y V, y las opciones de desplazamiento y eliminación
Los puntos, fila por fila
Dibuja alambres espaciados uniformemente a través de una cara a lo largo de una dirección de parámetro, como las líneas de una hoja pautada.
nrDivisions pasos dan un alambre más que eso, líneas de contorno incluidas; removeStart
y removeEnd las descartan, shiftHalfStep mueve cada alambre medio paso. Con isU en true
cada alambre se sitúa en una U fija y recorre V; false intercambia los papeles.
La cara, el número de divisiones, la dirección y las opciones
Los alambres, en orden a lo largo de la dirección elegida
Tiende una cuadrícula de puntos sobre una cara como subdivideToPoints, pero desplaza y elimina puntos en
cada enésima fila o columna, para patrones de ladrillo y escalonados.
Cada regla es un par: shiftHalfStepNthU dice cada cuántas filas V se mueve medio paso en U,
shiftHalfStepUOffsetN dónde empieza el recuento; las reglas de eliminación descartan cada enésimo punto de una
fila de borde.
La cara, el número de puntos en U y V, y las reglas de desplazamiento y eliminación de cada enésima fila
Los puntos, fila por fila
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 la normal de la superficie en cada punto de la cuadrícula que subdivideToPoints tendería sobre una
cara, con las mismas opciones y el mismo orden.
Las normales son vectores unitarios y siguen la orientación de la cara, así que una cara invertida las da
invertidas. Empareja la lista con subdivideToPoints para colocar cosas erguidas sobre la superficie.
La cara, el número de puntos en U y V, y las opciones de desplazamiento y eliminación
Las normales unitarias, fila por fila
Lista los pares de parámetros UV de la cuadrícula que subdivideToPoints tendería sobre una cara, con las
mismas opciones y el mismo orden.
Los pares están en los valores UV reales de la cara, no en fracciones.
La cara, el número de puntos en U y V, y las opciones de desplazamiento y eliminación
Los pares UV, fila por fila
Encuentra el punto de una cara en las fracciones UV dadas.
paramU y paramV van de 0 a 1 sobre el rango U y V de la cara, así que 0.5, 0.5 es el
medio del rango, que en una cara recortada no siempre está dentro de la cara.
La cara y las fracciones U y V
El punto en la superficie
Encuentra la normal de la superficie de una cara en las fracciones UV dadas.
paramU y paramV van de 0 a 1 sobre el rango U y V de la cara. La normal es un vector
unitario y sigue la orientación de la cara, así que una cara invertida la da invertida.
La cara y las fracciones U y V
La normal unitaria
Encuentra los puntos de una cara en varios pares de fracciones UV a la vez.
Cada par contiene U y luego V, ambos de 0 a 1 sobre el rango de la cara.
La cara y la lista de pares de fracciones U y V
Un punto por par, en el mismo orden
Encuentra las normales de la superficie de una cara en varios pares de fracciones UV a la vez.
Cada par contiene U y luego V, ambos de 0 a 1 sobre el rango de la cara. Las normales son vectores
unitarios de la superficie subyacente; a diferencia de normalOnUV, no se invierten para una cara
invertida.
La cara y la lista de pares de fracciones U y V
Una normal unitaria por par, en el mismo orden
Coloca puntos espaciados uniformemente a lo largo de una línea recta a través del rango UV de una cara.
Con isU en true la línea se sitúa en param (una fracción de 0 a 1 del rango U) y
nrPoints puntos se reparten por todo el rango V; con false los papeles se intercambian.
removeStartPoint y removeEndPoint descartan los extremos, y shiftHalfStep mueve cada punto
medio paso.
La cara, la dirección, la fracción a lo largo de ella, el número de puntos y las opciones
Los puntos a lo largo de la línea, en orden
Dibuja un alambre a través de una cara a lo largo de una línea de parámetro, siguiendo la superficie.
Con isU en true el alambre se sitúa en param (una fracción de 0 a 1 del rango U) y recorre
todo el rango V; con false los papeles se intercambian.
La cara, la dirección y la fracción a lo largo de ella
El alambre sobre la superficie
Dibuja varios alambres a través de una cara, uno por valor de parámetro, siguiendo la superficie.
Con isU en true cada alambre se sitúa en su fracción del rango U y recorre todo el rango
V; con false los papeles se intercambian.
La cara, la dirección y las fracciones a lo largo de ella
Un alambre por fracción, en el mismo orden
Clasifica los puntos como dentro de una cara, en su contorno o fuera de ella, y conserva los grupos elegidos.
keepIn, keepOn, keepOut y keepUnknown eligen los grupos; tolerance decide cuán
cerca del contorno cuenta como sobre él. Con useBndBox, un punto fuera de la caja delimitadora
ampliada en gapTolerance está fuera.
La cara, los puntos, la tolerancia, el atajo de la caja delimitadora y qué grupos conservar
Los puntos que pasaron, en su orden original
Ejecuta filterFacePoints contra varias caras con los mismos puntos y opciones.
De forma predeterminada el resultado contiene una lista por cara; con flatPointsArray en true las listas se
unen en una sola, de modo que un punto sobre dos caras aparece dos veces.
Las caras, los puntos, la tolerancia, qué grupos conservar y si aplanar el resultado
Una lista de puntos por cara, o una única lista unida
Crea una cara por alambre, cada una recortada de la superficie de una cara guía de modo que toma la curvatura de esa superficie.
Los alambres deben estar sobre la superficie. Con inside en true cada alambre se orienta de modo que su cara es la
región que encierra; con false decide la propia dirección del alambre, y un alambre que va en sentido
contrario da la región exterior.
Los alambres, la cara guía y qué lado conservar
Una cara por alambre, en el mismo orden
Crea una cara a partir de un alambre que está sobre la superficie de una cara guía, de modo que la cara nueva toma la curvatura de esa superficie.
Con inside en true el alambre se orienta de modo que la cara es la región que encierra; con false decide la
propia dirección del alambre, y un alambre que va en sentido contrario da la región fuera de él.
El alambre, la cara guía y qué lado conservar
La nueva cara
Crea una cara delimitada por un alambre cerrado.
Con planar en true el alambre debe estar en un mismo plano y la cara es plana; con false se ajusta una
superficie suave a través de las aristas del alambre, lo que rellena un alambre que no es plano. Una forma que
no es un alambre lanza un error.
El alambre y si la cara debe ser plana
La nueva cara
Crea una cara a partir de varios alambres: el primer alambre es el contorno exterior y cada alambre adicional recorta un agujero en él.
Con planar en true los alambres deben estar en un mismo plano. Los alambres de agujero deben quedar dentro del exterior
sin cruzarlo ni cruzarse entre sí.
Los alambres, primero el contorno exterior, y si la cara debe ser plana
La cara con agujeros
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 });
Crea una cara a partir de varios alambres sobre la superficie de una cara guía: el primer alambre es el contorno exterior y cada alambre adicional recorta un agujero.
La cara toma la curvatura de la superficie guía. inside se aplica al primer alambre: true
lo orienta de modo que la cara es la región que encierra; false deja que decida su propia dirección.
Los alambres, primero el contorno exterior, la cara guía y qué lado conservar
La cara con agujeros
Crea una cara por cada alambre cerrado, cada una como lo haría createFaceFromWire.
Con planar en true cada alambre debe estar en un plano; con false se ajusta una superficie suave
a través de cada uno.
Los alambres y si las caras deben ser planas
Una cara por alambre, en el mismo orden
Une círculos con correas tangentes: para cada par dibuja las dos líneas tangentes exteriores y los arcos exteriores entre ellas y rellena ese contorno con una cara plana.
combination elige los pares: allWithAll cada círculo con todos los demás, inOrder
los vecinos en la lista, inOrderClosed también el último con el primero. unify fusiona las caras;
en caso contrario forman un compuesto.
Los alambres circulares, cómo emparejarlos, si fusionar el resultado y la tolerancia
La forma fusionada, o el compuesto de caras de correa
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 con correas tangentes, como
createFaceFromMultipleCircleTanWires une círculos individuales.
allWithAll une cada círculo de una lista con cada círculo de la siguiente; inOrder une
los círculos en la misma posición de listas vecinas, que necesitan longitudes iguales; inOrderClosed
también cierra cada lista en un anillo. unify fusiona las caras; en caso contrario forman un compuesto.
Las listas de alambres circulares, cómo emparejarlos, si fusionar el resultado y la tolerancia
La forma fusionada, o el compuesto de caras de correa
Crea una cara que cubre una superficie entera, hasta los límites naturales de la superficie.
tolerance se usa para detectar aristas degeneradas, como el polo de una esfera. Las superficies vienen
de geom.surfaces.
La superficie y la tolerancia para las aristas degeneradas
La cara
Crea una cara recortando una superficie con un alambre que está sobre ella.
Con inside en true el alambre se orienta de modo que la cara es la región que encierra; con false decide la
propia dirección del alambre, y un alambre que va en sentido contrario da la región fuera de él.
Las superficies vienen de geom.surfaces.
La superficie, el alambre sobre ella y qué lado conservar
La cara
Crea una cara triangular plana a partir de tres puntos.
El triángulo como tres puntos
La cara
Crea una cara triangular plana por cada triángulo de una malla.
Un triángulo que no puede formar una cara, por ejemplo uno con puntos repetidos, se salta con un aviso en la consola.
La malla como lista de triángulos
Una cara por cada triángulo que se pudo construir
Elige una cara de una forma por su posición, contando desde 0, en el orden en que el núcleo recorre la forma.
La forma debe ser una cara o algo construido a partir de caras; un índice más allá de la última cara lanza un error.
La forma y el índice, empezando en 0
La cara en ese índice
Lista cada cara de una forma en el orden en que la recorre el núcleo.
La forma
Las caras encontradas en la forma
Invierte una cara de modo que su normal apunta en sentido contrario.
La geometría sigue igual; solo cambia la orientación, que decide el exterior de una
carcasa y la dirección que informa normalOnUV.
La cara
La cara invertida
Lee el valor de parámetro U más pequeño de una cara, en las unidades propias de la superficie.
Junto con getUMaxBound, getVMinBound y getVMaxBound da el rango al que se asignan las
fracciones UV usadas en otros sitios de esta clase.
La cara
El límite inferior de U
Lee el valor de parámetro U más grande de una cara, en las unidades propias de la superficie.
La cara
El límite superior de U
Lee el valor de parámetro V más pequeño de una cara, en las unidades propias de la superficie.
La cara
El límite inferior de V
Lee el valor de parámetro V más grande de una cara, en las unidades propias de la superficie.
La cara
El límite superior de V
Mide el área de la superficie de una cara, en unidades del modelo al cuadrado.
La cara
El área
Mide el área de la superficie de cada cara de una lista, en unidades del modelo al cuadrado.
Las caras
Un área por cara, en el mismo orden
Encuentra el centro de masas de una cara, el punto sobre el que se equilibra su área.
En una cara curva o en forma de anillo este punto puede quedar fuera de la superficie.
La cara
El centro de masas
Encuentra el centro de masas de cada cara de una lista.
Las caras
Un punto por cara, en el mismo orden
Tiende alambres rectangulares sobre una cara, uno por celda de una división nrRectanglesU por nrRectanglesV
de su rango UV, siguiendo la superficie.
Los desplazamientos de borde recortan el rango en cada extremo. Cada rectángulo se sitúa centrado en su celda, dimensionado por los patrones de escala como fracción de ella; el patrón de redondeo redondea las esquinas, el patrón de inclusión salta celdas.
La cara, los números de celdas, los desfases del borde y los patrones opcionales
Los alambres rectangulares, celda por celda
Recorta una cuadrícula de agujeros rectangulares en una cara y devuelve la cara perforada.
Los agujeros siguen las mismas celdas y patrones que subdivideToRectangleWires; cuando no se da ningún patrón de
escala cada agujero cubre la mitad de su celda. Con holesToFaces en true el resultado también
lleva una cara por agujero, después de la cara perforada, lo que es práctico para tapas o rellenos.
La cara, los números de celdas, los desfases del borde, los patrones opcionales y si devolver las caras de los agujeros
La cara perforada, seguida de las caras de los agujeros cuando se piden
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,
});
Tiende un panal de alambres hexagonales sobre una cara, nrHexagonsU por nrHexagonsV de ellos
ajustados a su rango UV, cada uno siguiendo la superficie.
Los desplazamientos de borde recortan una fracción del rango en cada extremo; flatU orienta un lado plano hacia
U, los indicadores de extensión estiran las filas exteriores más allá de los bordes. Los patrones de escala, redondeo e inclusión
se repiten por hexágono.
La cara, los números de hexágonos, la orientación, los desfases del borde, los indicadores de extensión y los patrones opcionales
Los alambres hexagonales, fila por fila
Recorta un panal de agujeros hexagonales en una cara y devuelve la cara perforada.
Los agujeros siguen la misma disposición y patrones que subdivideToHexagonWires; cuando no se da ningún patrón de
escala cada agujero es la mitad del tamaño de su hexágono. Con holesToFaces en true el
resultado también lleva una cara por agujero, después de la cara perforada.
La cara, los números de hexágonos, la orientación, los desfases del borde, los patrones opcionales y si devolver las caras de los agujeros
La cara perforada, seguida de las caras de los agujeros cuando se piden
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,
});
Crea una cara plana a partir de una lista de puntos de esquina, cerrando el contorno del último punto de vuelta al primero.
Los puntos deben estar en un mismo plano.
Los puntos de las esquinas en orden
La cara
Crea una cara circular plana, un disco.
direction es la normal de su plano: el valor predeterminado [0, 1, 0] lo tumba en el suelo.
La cara de disco
Rellena un rectángulo en el plano del suelo con una cuadrícula de caras hexagonales planas, centrada en el origen.
Los hexágonos se escalan para que nrHexagonsInWidth quepan a lo ancho de width y nrHexagonsInHeight
a lo largo de height. Los patrones de escala, redondeo e inclusión se leen hexágono a hexágono y
se repiten; los indicadores de extensión estiran las filas exteriores más allá de los bordes para cubrir el rectángulo.
El tamaño del rectángulo, los números de hexágonos, los indicadores de extensión y los patrones opcionales
Una cara por hexágono, fila por fila
Crea una cara elíptica plana.
direction es la normal de su plano: el valor predeterminado [0, 1, 0] la tumba en el suelo.
radiusMajor debe ser al menos radiusMinor.
Los dos radios, el centro y la normal del plano
La cara elíptica
Crea una cara cuadrada plana centrada en center.
direction es la normal de su plano: el valor predeterminado [0, 1, 0] la tumba en el suelo.
La cara cuadrada
Crea una cara rectangular plana centrada en center.
En el plano del suelo width va a lo largo de X y length a lo largo de Z; direction es la normal del
plano, y el valor predeterminado [0, 1, 0] mantiene la cara tumbada en el suelo.
La anchura, la longitud, el centro y la normal del plano
La cara rectangular
Crea una cara plana en forma de L: dos patas rectangulares unidas en una esquina.
La primera pata tiene widthFirst y lengthFirst, la segunda widthSecond y
lengthSecond; align pone la esquina en el exterior, el interior o el medio de las patas, y
rotation gira la forma en su plano, en grados. Está tumbada en el suelo salvo que
direction diga lo contrario.
Los dos tamaños de las patas, la alineación, la rotación, el centro y la normal del plano
La cara en forma de L
Crea una cara plana en forma de estrella con numRays puntas.
Las puntas llegan a outerRadius y las muescas entre ellas a innerRadius; half conserva solo
la primera mitad de los rayos. offsetOuterEdges levanta las puntas de los rayos fuera del plano y está
pensado para el alambre; una cara plana lo necesita en 0. Está tumbada en el suelo salvo que direction
diga lo contrario.
La cara de estrella
Crea una cara plana con forma de árbol de Navidad estilizado: nrSkirts capas de ramas,
que se estrechan de outerDist a innerDist respecto a la línea del tronco, sobre un tronco de trunkHeight y
trunkWidth.
A diferencia de las otras formas planas de aquí, se levanta erguida en el plano XY, con la punta a lo largo de Y; direction
es la dirección del tronco a la punta, rotation la gira alrededor de ese eje, en grados.
Las proporciones del árbol, el tamaño del tronco, las opciones, el origen y la dirección del tronco a la punta
La cara del árbol
Crea una cara de paralelogramo plana: un rectángulo de width y height cuyos lados se inclinan
angle grados.
Con aroundCenter en true la forma se centra en center; en caso contrario empieza ahí y
se extiende en las direcciones positivas. direction es la normal del plano; el valor predeterminado [0, 1, 0] la tumba en el suelo.
La anchura, la altura, el ángulo de inclinación, si centrarla, el centro y la normal del plano
La cara de paralelogramo
Crea una cara plana en forma de corazón que cabe aproximadamente en un cuadrado de sizeApprox.
rotation la gira en su plano, en grados. direction es la normal del plano; el valor
predeterminado [0, 1, 0] la tumba en el suelo.
El tamaño aproximado, la rotación, el centro y la normal del plano
La cara de corazón
Crea una cara de polígono regular plana con nrCorners esquinas, todas sobre un círculo de radius.
direction es la normal del plano; el valor predeterminado [0, 1, 0] la tumba en el suelo.
El número de esquinas, el radio, el centro y la normal del plano
La cara poligonal
Reconstruye la superficie de una cara como una B-spline de los grados U y V dados.
Bajar un grado suaviza la superficie en una aproximación más simple dentro de tolerance;
subirlo es exacto. keepTrim conserva los alambres de contorno originales, lo que es fiable al
subir; en caso contrario la cara cubre toda la superficie nueva. Una reconstrucción que falla da una cara
null.
La cara, los grados objetivo en U y V, la tolerancia y si conservar el contorno
La cara reconstruida
Cambia cómo recorren los parámetros UV una cara: intercambiar U y V, invertir U, invertir V, o cualquier combinación.
La geometría sigue igual; solo cambian las direcciones de los parámetros, lo que importa para cada
método de aquí que trabaja en UV, como subdivideToPoints o wireAlongParam. La cara se
reconstruye sobre los límites naturales de la superficie.
La cara y qué inversiones aplicar
La cara con la parametrización cambiada
Reparametriza una cara de modo que pasos iguales en U o V den distancias aproximadamente iguales sobre la superficie.
Muchas superficies concentran sus parámetros en algunos sitios, así que una cuadrícula UV sobre ellas parece desigual; esto
remuestrea la superficie en samples puntos por dirección y la reajusta, lo que uniformiza
subdivideToPoints y sus hermanos. La cara se reconstruye sobre los nuevos límites.
La cara, qué direcciones normalizar, el número de muestras y la tolerancia de ajuste
La cara reparametrizada
Caras en OpenCascade: trozos acotados de una superficie, planos o curvos, con un alambre de contorno exterior y alambres interiores opcionales que hacen agujeros. Constrúyelas a partir de alambres o superficies, o como formas planas ya hechas (círculos, rectángulos, estrellas, perfiles de viga) que se apoyan en el plano del suelo a menos que
directiondiga otra cosa; recorre su superficie mediante parámetros UV para obtener puntos, normales y cuadrículas de alambres; corta patrones de agujeros en ellas; y mide el área y el centro de masas. U y V son las dos direcciones de una superficie, dadas aquí como fracciones de 0 a 1 del rango propio de la cara. Las caras se unen arista con arista en carcasas, de las que se ocupashapes.shell.