LOT Q0 : socle du démonstrateur Quelque part en 2035
Scaffold Vite + TypeScript + Three.js (scène vide : sol + boîte, marqueur de build), store et encodage de l'état dans l'URL (5 tests), lint de frontières entre modules, pipeline d'extraction Rhino (graine du 26/09) et première géométrie v0, deploy.sh statique (releases + lien symbolique + smoke), AGENTS.md, RUNBOOK, licences MIT + CC BY-SA 4.0. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
import sys, rhino3dm, collections
|
||||
m = rhino3dm.File3dm.Read(sys.argv[1])
|
||||
layers = {i: l.Name for i, l in enumerate(m.Layers)}
|
||||
cnt = collections.Counter(); closed = collections.Counter(); blocks=collections.Counter()
|
||||
for o in m.Objects:
|
||||
li = o.Attributes.LayerIndex; g = o.Geometry
|
||||
cnt[li]+=1
|
||||
if isinstance(g, rhino3dm.Curve) and g.IsClosed: closed[li]+=1
|
||||
if isinstance(g, rhino3dm.InstanceReference): blocks[li]+=1
|
||||
for li,n in cnt.most_common():
|
||||
print(f"{n:6d} obj | {closed[li]:5d} fermés | {blocks[li]:5d} blocs | {layers.get(li)}")
|
||||
print("blocs définis:", [d.Name for d in m.InstanceDefinitions][:30])
|
||||
Reference in New Issue
Block a user