Timestamps:
0:00 [Intro] Scope of the tutorial
0:24 [SLU GET] Downloading heightmap data supplied by Lantmäteriet (requires university authentication and only for educational use)
2:06 [QGIS] Importing the tiles of heightmap data to an empty QGIS project
2:34 [QGIS] Merging the heightmap tiles into one
3:14 [QGIS] Adding a cartographic map layer for reference and creating a crop layer
4:37 [QGIS] Cropping the merged layer with the crop layer
5:53 [QGIS] Setting the Accuracy of registered Z values to Actual (slower) and copying key values
6:22 [Grasshopper] Evaluating whether 16-bit data is endeavourable or if 8-bit data is enough for the given height range
8:36 [QGIS] Exporting heightmap as 8-bit data
9:05 [QGIS] Remap 32-bit data to the full 16-bit (unsigned) value range
10:23 [QGIS] Convert the remapped 32-bit data to 16-bit data
11:34 [Rhino] Creating a heightfield
13:47 [Rhino] Making sure that extents and position are correct, and orienting yourself
14:38 [Rhino] Making a final crop and organizing layers
15:59 [Grasshopper] Demonstration of how to use the Grasshopper definition to create fabricationable 3D models
19:39 [Rhino] Short pointer on how to do descended building footprints in the terraced model
20:25 [Rhino] For easy use of the laser cuttable vectors from terraced 3D model part, export the terraced model separately
20:44 [Rhino] Move it close to the origin and scale it to fabrication scale
21:07 [Grasshopper] Demonstration of how to use the Grasshopper definition to produce laser cuttable vectors from the terraced model
21:34 [Rhino] Example of how to manually optimize the use of material for laser cutting (the Grasshopper definition does not optimize distribution)
22:21 [Rhino] Exporting the curves directly as an Illustrator .ai file
22:41 [Outro] Conclusion of tutorial
22:54 [Addendum] For the Grasshopper definition to fully work, you will need to install the Grasshopper plugin Human
.........................................
Links:
Link to Grasshopper definition:
https://drive.google.com/drive/folder...
SLU GET:
https://herkules.slu.se/get/
QGIS:
https://qgis.org/en/site/
Rhino:
https://www.rhino3d.com/
Food4Rhino Human extension (Treefrog included):
https://www.food4rhino.com/en/app/human
Aquiring Human for later Rhino versions:
https://discourse.mcneel.com/t/human-...
BugMeNot:
https://bugmenot.com/
.........................................
Expression for Raster Calculator:
( "Cropped@1" - STATISTICS_MINIMUM ) / ( STATISTICS_MAXIMUM - STATISTICS_MINIMUM ) * 65535
.........................................
QGIS outline:
Raster\Miscellaneous\Merge...
Browser\ XYZ Tiles\OpenStreetMap
Layer\Create Layer\New Shapefile Layer...
Geometry type: Polygon
CRS: Project CRS
Toggle Editing
Add Polygon Feature
Rectangle from centre and a point
LMB-click centre, RMB-click corner point
Toggle Editing, Save
Export\Save As...
Raw data
Extents: Calculate from Layer [Crop]
Round to ceiling for North and East, to floor for West and South
Accuracy: Actual (slower)
Copy all data in the "Information from provider" segment
Export\Save As...
Rendered image
// For 8-bit data output
Processing\Toolbox\Raster analysis\Raster calculator
Input layer: Cropped
Expression: ( "Cropped@1" - STATISTICS_MINIMUM ) / ( STATISTICS_MAXIMUM - STATISTICS_MINIMUM ) * 65535
Processing\Toolbox\GDAL\Raster conversion\Translate (convert format)
Input layer: Cropped_Remapped
Output data type: UInt16
.........................................
Rhino outline:
Document Properties\Units\Model
Model units: Meters
Heightfield
First corner: Minimum extent coordinates
(Second corner or) length: Width (if resolution is 1 metre per pixel)
Number of sample points: Recommended not more than pixels of input image
Height: STATISTICS_MAXIMUM - STATISTICS_MINIMUM
Create object by: Interpolate surface though samples
BoundingBox
Verify that the XYZ extents are correct
Move the heightfield in the Z axis
STATISTICS_MINIMUM (including minus sign if negative)
.........................................
This tutorial demonstrates to KTH Architecture students how to use a Grasshopper definition to efficiently create 3D models for fabrication (laser cutting or CNC milling) from a heightfield, created from a heightmap (DTM – Digital Terrain Model) exported from QGIS.
Disclaimer:
This tutorial aims to increase student awareness of the versatility of the digital tools available for use within the context of the architectural education offered by KTH. As such, it might not be generally applicable, but on the other hand, if at least one architecture student is helped by it in fulfilling deliverables requirements or being taught something of genuine interest, the purpose of this tutorial is satisfactorily achieved. There might be inaccuracies in this tutorial – if you identify any significant one, please tell us in the comments.