feat(hero): v0.1.2 — scale calibration, façade detail, export preset refactor (#28)

Merged PR #28: v0.1.2 — scale calibration, façade detail, export preset

Co-authored-by: Zwitschi <zwitschi82@gmail.com>
This commit was merged in pull request #28.
This commit is contained in:
zwitschi authored and zwitschi committed 2026-11-08 18:48:33 +01:00
1 parent 640bff9631
commit ba68dcfdbc
60 files changed
+1114 -291

No files matched your search

Binary file not shown.
+38 -11
View File
@@ -3,18 +3,18 @@
"frame": "project frame, metres, X east Y north Z up",
"bounds_m": {
"min": [
-13.02,
-13.08,
-12.5,
0.0
],
"max": [
13.02,
0.07,
13.08,
0.13,
14.5
],
"size": [
26.04,
12.57,
26.16,
12.63,
14.5
]
},
@@ -33,10 +33,28 @@
"dims_m": [
0.95,
0.95,
7.45
8.25
],
"evidence": "6 columns at 4.96 m centres (sibling notes x measured frontage)"
},
{
"object": "Hero_ColumnBase_x6",
"dims_m": [
1.36,
1.36,
0.22
],
"evidence": "assumption: Ionic base moulding; photographs show a wider base at the shaft foot"
},
{
"object": "Hero_Abacus_x6",
"dims_m": [
1.3,
1.3,
0.14
],
"evidence": "assumption: square abacus under the architrave, as Ionic capitals carry"
},
{
"object": "Hero_Architrave",
"dims_m": [
@@ -55,12 +73,21 @@
],
"evidence": "assumption: projecting cornice line"
},
{
"object": "Hero_Dentil_xN",
"dims_m": [
0.18,
0.3,
0.22
],
"evidence": "52 dentils at 0.45 m centres under the corona; assumption: photographed cornice reads as a dentilled course"
},
{
"object": "Hero_Entablature",
"dims_m": [
25.75,
1.5,
3.4
3.0
],
"evidence": "assumption: entablature depth"
},
@@ -69,7 +96,7 @@
"dims_m": [
25.75,
1.2,
2.2
1.8
],
"evidence": "assumption: parapet carries the motto band"
},
@@ -86,10 +113,10 @@
"object": "Hero_Medallion_x2",
"dims_m": [
1.1,
1.1,
0.02
0.04,
1.1
],
"evidence": "photographs: two stone discs beside the motto"
"evidence": "photographs: two stone discs beside the motto, mounted on the parapet face"
},
{
"object": "Hero_Stylobate",
+4 -14
View File
@@ -15,6 +15,9 @@ import os
import sys
import bpy
sys.path.insert(0, os.path.join(os.path.join(os.path.dirname(__file__), "..", "..", ".."), "Tools"))
import fbx_export_preset as fbx_preset # noqa: E402
MESHES = ("Terrain_DEM", "Road_Hollywood", "Sidewalk_South", "Sidewalk_North",
"Kerb_South", "Kerb_North", "Crossing_Markings")
@@ -60,20 +63,7 @@ def main():
_ = bpy.context.view_layer
bpy.context.view_layer.objects.active = obj
path = os.path.join(args.out, name + ".fbx")
bpy.ops.export_scene.fbx(
filepath=path,
use_selection=True,
object_types={"MESH"},
apply_unit_scale=True,
apply_scale_options="FBX_SCALE_NONE",
axis_forward="-Y",
axis_up="Z",
use_space_transform=True,
use_mesh_modifiers=True,
mesh_smooth_type="OFF",
path_mode="AUTO",
bake_space_transform=False,
)
fbx_preset.export_static(path, selection=True)
if mirrored:
# The flip is an export correction, not a change to the source: undo it.
obj.scale.y *= -1.0