Modelagem Gauge
Construa com bmesh/API de dados (funciona sem contexto de interface), depois submeta a malha avaliada ao gate para que modificadores e Geometry Nodes sejam contabilizados.
Construir
scripts/kit.py (importe-o de um script ao lado):
| Função | Cria |
|---|---|
rounded_box(name, size, bevel, segments, loc, rot, collection) | caixa com chanfros reais na malha, suavizada por ângulo |
cylinder(name, radius, depth, segments, bevel, ...) | cilindro com tampas chanfradas |
bolt_head(name, radius, height, sides, bevel, ...) | cabeça de parafuso hexagonal (ou redonda) |
cut_holes(target, [(u, v, r), ...]) | furos redondos atravessando o eixo mais fino (booleano, depois assado) |
bake_modifiers(ob) | aplica toda a pilha sem bpy.ops |
assign(ob, material) | um único slot de material |
Os construtores substituem um objeto de mesmo nome, permitindo que os scripts sejam reexecutados. scripts/build_prop.py constrói um prop inteiro a partir de uma lista JSON de peças (ou o demo crate) em sua própria coleção e o submete ao gate:
run_blender_script path=skills/gauge-modeling/scripts/build_prop.py args={"name": "crate", "spec": "parts.json"}
Gate
scripts/mesh_gate.py -> gate mesh-health.
| Verificação | Falha quando | Correção típica |
|---|---|---|
loose_verts, zero_area_faces, duplicate_verts | qualquer | fix_mesh.py |
non_manifold_edges | aresta compartilhada por 3+ faces | reconstruir aquela área |
inverted_volume | malha fechada com volume negativo | fix_mesh.py (normals) |
ngons | mais que max_ngons (opt-in) | fix_mesh.py com triangulate_ngons, ou requadricular |
triangles | mais que max_tris (opt-in) | decimar, menos segmentos de chanfro |
closed_meshes | require_closed e existe um furo | preencher |
has_uv, texel_density_cv | require_uv / limite informado | desembrulhar, equalizar escala das ilhas |
fix_mesh.py é uma simulação (dry run) até apply=true; nunca modifica dados de malha compartilhados usados fora da seleção.
Regras
- Tamanho real primeiro (metros), depois chanfro: um chanfro é uma fração da menor dimensão (1-4 %). Arestas duras sem chanfro não captam luz.
- Chanfrar antes de suavizar; suavizar por ângulo (35°) em vez de flags por face.
- Booleanos deixam n-gons nas faces cortadas: aceitável para imagens estáticas, triangulize antes de exportar para motores.
- Mantenha as partes como objetos nomeados separados até o final; una apenas para exportação.
- Após qualquer alteração: gate, depois
lookdosanglesem sombreamento de argila para avaliar a forma.