Skip to main content
Cập nhật lần cuối: 14/05/2026

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
Hình minh họa

[Ả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ánComponentỨng dụng
CộngVector AdditionTổng hợp 2 hướng
TrừVector SubtractionHướng từ A → B
NhânAmplitudeScale độ dài
Cross ProductCross ProductVector vuông góc với 2 vector
Dot ProductDot ProductGó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:

ComponentOutput
Divide CurveN đ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
ShatterChia curve thành các đoạn tại parameter t
Curve FramePlane 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
Hình minh họa

[Ả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:

  1. Đây là loại geometry gì? (surface? mesh? solid?)
  2. Nó được dựng từ gì? (loft? sweep? attractor?)
  3. 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ànhCách làm
Đặt tên componentRight-click → rename (vd: "Width Slider")
Nhóm theo chức năngCtrl+G → đặt tên group (vd: "01 — Input")
Thêm chú thíchThêm Text Note giải thích logic khó
Màu wireDù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:

  1. Tạo arc profile bằng Arc SED (start, end, direction)
  2. Revolve 360° tạo dome surface
  3. Divide Surface với slider U và V
  4. Tạo Rectangle tại mỗi frame
  5. Extrude nhỏ mỗi panel
  6. Thêm slider "Panel Gap" để tạo khoảng cách giữa các panel
  7. Bake → kiểm tra trong Rhino
Hình minh họa

[Ả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