Module 5 — Hình học trong GH & Parametric Workflow
Thời lượng: ~6 giờ · Độ khó: Cơ bản–Trung bình
Mục tiêu: Tái tạo mọi loại geometry bằng logic tham số — cùng cấu trúc Point → Curve → Surface → Solid nhưng trong Grasshopper. Hiểu Parametric Modelling Process để tiếp cận bất kỳ bài toán thiết kế nào.
5A — Point & Vector trong GH
Point
Point trong GH không phải "chấm nhìn thấy" — nó là dữ liệu tọa độ được xử lý và chuyển đến các component khác.
Construct Point → tạo điểm từ X, Y, Z
Deconstruct Point → tách điểm thành X, Y, Z riêng lẻ
Distance → khoảng cách giữa 2 điểm
Closest Point → tìm điểm gần nhất trong tập hợp
Tạo lưới điểm:
Grid Rectangular → lưới chữ nhật (X cells × Y cells × spacing)
Grid Hexagonal → lưới hexagon (tổ ong)
Range → dãy số → kết hợp với Construct Point để tự tạo grid
[Ảnh: Grid Rectangular 5×5 hiển thị trong Rhino viewport]
Vector
Vector là hướng + độ dài trong không gian — không có vị trí, chỉ có chiều:
Unit X / Unit Y / Unit Z → vector đơn vị dọc trục
Unit Vector → vector theo hướng bất kỳ (normalize về length=1)
Amplitude → nhân vector với hệ số (thay đổi độ dài)
Các phép toán Vector cơ bản:
| Phép toán | Component | Ứng dụng |
|---|---|---|
| Cộng | Vector Addition | Tổng hợp 2 hướng |
| Trừ | Vector Subtraction | Hướng từ A → B |
| Nhân | Amplitude | Scale độ dài |
| Cross Product | Cross Product | Vector vuông góc với 2 vector |
| Dot Product | Dot Product | Góc giữa 2 vector (scalar) |
Plane — Hệ tọa độ cục bộ
Plane trong GH = mặt phẳng có gốc tọa độ + 2 trục (X axis, Y axis). Rất quan trọng vì mọi thứ trong GH đều xảy ra trong 1 Plane nào đó.
XY Plane → mặt phẳng nằm ngang (Z=0)
XZ Plane → mặt phẳng đứng (Y=0)
YZ Plane → mặt phẳng bên (X=0)
Plane Origin → thay đổi tọa độ gốc của plane bất kỳ
Construct Plane → tạo plane từ origin + X axis + Y axis
5B — Curve trong GH
Tạo Curve cơ bản
Line → 2 điểm
Circle → tâm + bán kính (trong 1 plane)
Arc → tâm + bán kính + góc
Polyline → list of points → nối thành polyline
Interpolate → curve đi qua tất cả điểm (như InterpCrv)
Nurbs Curve → control points + degree
Phân tích Curve
Đây là nhóm component cực kỳ quan trọng — dùng để "đặt" geometry lên curve:
| Component | Output |
|---|---|
Divide Curve | N điểm phân đều + tangent vectors |
Evaluate Curve | Điểm tại parameter t (0→1) |
Curve Closest Point | Điểm gần nhất trên curve |
Shatter | Chia curve thành các đoạn tại parameter t |
Curve Frame | Plane tại vị trí t trên curve |
Ví dụ ứng dụng Divide Curve:
1 curve → Divide Curve (N=20) → 20 điểm đều → Circle tại mỗi điểm → ExtrudeCrv
= 20 ống tròn dọc theo curve, chỉ 3 component!
5C — Surface trong GH
Tạo Surface
Extrude → Extrude curve/surface theo vector
Revolve → Xoay profile quanh trục
Loft → Surface qua nhiều curves
Sweep1/Sweep2 → Surface theo rail curves
Phân tích Surface — UV Space
Surface có hệ tọa độ UV riêng (0→1 theo cả 2 hướng). Đây là nền tảng để chia surface thành grid:
Divide Surface → chia surface thành lưới U×V, trả về:
• Grid of points (tâm từng ô)
• Grid of planes (local frame tại mỗi ô)
Evaluate Surface → điểm + plane tại bất kỳ tọa độ UV nào
Isotrim → cắt surface theo UV (như crop ảnh)
Workflow chia panel điển hình:
Surface → Divide Surface (U=10, V=8)
→ [Points] + [Frames]
→ Rectangle tại mỗi Frame
→ Extrude nhỏ
= 80 ô panel trên surface, điều chỉnh bằng 2 slider U và V
[Ảnh: Surface bị chia thành lưới UV với Divide Surface]
[Ảnh: Rectangle được đặt tại mỗi frame tạo thành panel grid]
5D — Solid trong GH
Box → Hộp chữ nhật (by corners hoặc by dimensions)
Cylinder → Trụ (plane + radius + height)
Sphere → Cầu (center + radius)
Extrude → curve kín + Cap = solid
Boolean trong GH
Solid Union → hợp nhất
Solid Difference → trừ
Solid Intersection → giao
Lưu ý: Boolean trong GH đòi hỏi geometry sạch như Rhino. Nếu thất bại, dùng Brep | Brep (intersection curves) rồi xử lý thủ công.
Đọc Brep
Brep (Boundary Representation) = bất kỳ solid/surface nào trong GH:
Deconstruct Brep → Faces + Edges + Vertices
Brep Edges → tách tất cả cạnh
Volume → tính thể tích
Area → tính diện tích bề mặt
5E — Parametric Modelling Process
Đây là phần quan trọng nhất của module — không phải kỹ thuật, mà là tư duy.
Quy trình 3 bước
1. PHÂN TÍCH → Nhìn kết quả mong muốn, vẽ sơ đồ logic
2. XÂY DỰNG → Viết definition theo sơ đồ, từng bước nhỏ
3. KIỂM TRA → Test với nhiều giá trị, xác nhận hoạt động đúng
Tư duy ngược (Reverse Engineering)
Khi nhìn một hình dạng phức tạp, hỏi:
- Đây là loại geometry gì? (surface? mesh? solid?)
- Nó được dựng từ gì? (loft? sweep? attractor?)
- Thứ tự các bước là gì? (vẽ sơ đồ từ input → output)
Ví dụ: Phân tích mái vòm có ô lục giác:
Kết quả: Mái vòm với ô lục giác
← Panel hexagon đặt trên surface
← Tâm hexagon từ Grid Hexagonal
← Grid Hexagonal trên surface
← Surface hình vòm (Revolve hoặc Loft)
← Profile curve của vòm (arc)
Luồng làm việc chuẩn
INPUT PROCESSING OUTPUT
──────────── ────────────────── ────────────
Slider (số) → Geometry logic → Preview
Curve từ Rhino → Data manipulation → Bake to Rhino
Surface → Mathematical ops → Export data
Quản lý Definition rõ ràng
| Thực hành | Cách làm |
|---|---|
| Đặt tên component | Right-click → rename (vd: "Width Slider") |
| Nhóm theo chức năng | Ctrl+G → đặt tên group (vd: "01 — Input") |
| Thêm chú thích | Thêm Text Note giải thích logic khó |
| Màu wire | Dùng Relay nodes để tổ chức wire gọn gàng |
Khi nào ở GH, khi nào Bake?
Ở trong GH khi:
- Còn đang thử nghiệm nhiều phương án
- Cần thay đổi parameter nhanh
- Output phụ thuộc vào slider/input
Bake sang Rhino khi:
- Đã quyết định final form
- Cần chỉnh sửa chi tiết không parametric
- Cần output cho Layout/Rendering
- Submit bản vẽ
Bài tập Module 5 — Mái Vòm Parametric
Đề bài: Xây dựng definition tạo mái vòm tham số chia ô panel, điều chỉnh bằng slider.
Sơ đồ logic:
Slider "Span" ─┐
Slider "Height"─┤→ Arc Profile → Revolve → Dome Surface
│
↓
Slider "U" ────┐→ Divide Surface → Frames → Rectangle Panel
Slider "V" ────┘
↓
Extrude Panels → Dome with Panels
Các bước:
- Tạo arc profile bằng
Arc SED(start, end, direction) Revolve360° tạo dome surfaceDivide Surfacevới slider U và V- Tạo
Rectangletại mỗi frame Extrudenhỏ mỗi panel- Thêm slider "Panel Gap" để tạo khoảng cách giữa các panel
- Bake → kiểm tra trong Rhino
[Ảnh: Sơ đồ definition hoàn chỉnh]
[Ảnh: Dome với U=8/V=6 (trái) vs U=20/V=15 (phải)]
Liên kết kiến thức
Nền tảng cần nắm
Chủ đề liên quan