Gauge modeling
Construye con la API de datos bmesh (funciona sin contexto de interfaz de usuario), luego aplica la compuerta a la malla evaluada para que los modificadores y Geometry Nodes sean contabilizados.
Construcción
scripts/kit.py (impórtalo desde un script junto a él):
| Función | Crea |
|---|---|
rounded_box(name, size, bevel, segments, loc, rot, collection) | caja con biseles reales en la malla, suavizado por ángulo |
cylinder(name, radius, depth, segments, bevel, ...) | cilindro con tapas biseladas |
bolt_head(name, radius, height, sides, bevel, ...) | cabeza de perno hexagonal (o redonda) |
cut_holes(target, [(u, v, r), ...]) | agujeros redondos a través del eje más delgado (booleano, luego horneados) |
bake_modifiers(ob) | aplica toda la pila sin bpy.ops |
assign(ob, material) | ranura de material único |
Los constructores reemplazan un objeto con el mismo nombre, por lo que los scripts se pueden re-ejecutar. scripts/build_prop.py construye un prop completo a partir de una lista JSON de piezas (o el demo de caja) en su propia colección y le aplica la compuerta:
run_blender_script path=skills/gauge-modeling/scripts/build_prop.py args={"name": "crate", "spec": "parts.json"}
Compuerta
scripts/mesh_gate.py → compuerta mesh-health.
| Comprobación | Fallo cuando | Arreglo típico |
|---|---|---|
loose_verts, zero_area_faces, duplicate_verts | cualquiera | fix_mesh.py |
non_manifold_edges | arista compartida por 3+ caras | reconstruir esa zona |
inverted_volume | malla cerrada con volumen negativo | fix_mesh.py (normals) |
ngons | más de max_ngons (opt-in) | fix_mesh.py con triangulate_ngons, o re-cuadrangular |
triangles | más de max_tris (opt-in) | decimar, menos segmentos de bisel |
closed_meshes | require_closed y existe un agujero | rellenar |
has_uv, texel_density_cv | require_uv / límite dado | desenvolver, igualar escala de islas |
fix_mesh.py es una simulación hasta que apply=true; nunca toca datos de malla compartidos fuera de la selección.
Reglas
- Primero el tamaño del mundo real (metros), después el bisel: un bisel es una fracción de la dimensión más pequeña (1-4 %). Las aristas duras sin bisel no captan luz.
- Bisel antes de suavizar; suavizar por ángulo (35 grados) en lugar de por banderas por cara.
- Los booleanos dejan n-gonos en las caras cortadas: está bien para imágenes fijas, triangular antes de exportar a motores.
- Mantén las piezas como objetos separados con nombre hasta el final; únelas solo para exportar.
- Después de cualquier cambio: aplica la compuerta, luego
lookdesdeanglesen sombreado de arcilla para juzgar la forma.