4 minute read
6_3_Micro Level Manipulations
6_3_Điều khiển cấp độ vi mô
Mặc dù việc tạo ra hàng loạt module trên một bề mặt là rất tuyệt vời, nhưng dương như đó vẫn là một cách thiết kế rất chung chung. Bề mặt được tạo ra vẫn còn “mấp mô”. Chúng ta đã biết rằng chúng ta có thể thay đổi số lượng module, hoặc thay đổi chính bản thân module, nhưng kết quả vẫn là một bề mặt rất khái quát và chúng ta không thể điều khiển cục bộ hệ thống của chúng ta.
Advertisement
Bây giờ tôi đang suy nghĩ về việc thiết kế một hệ thống trên cơ sở là các component mà chúng ta có thể thiết lập nhiều hơn sự điều khiển cục bộ trên hệ thống và tránh việc thiết kế những bề mặt chung chung mà không có sự phản ứng nào trong quy mô vi mô, cục bộ.
Để giới thiệu về khái niệm này, chúng ta hãy bắt đầu với một ví dụ đơn giản và thực hành thêm một bài tập nữa. Chúng tôi sử dụng ý tưởng về những attractor để thiết lập điều khiển cục bộ cho một nhóm vật thể. Bây giờ tôi đang nghĩ về việc sử dụng phương pháp tương tự để thiết kế một hệ thống trên cơ sở là các component với chế độ điều khiển cục bộ. Ý tưởng là thay đổi kích thước component (trong trường hợp này, là chiều cao của chúng) dựa trên hiệu ứng của một attractor dạng điểm.
Hình.6.12. Một bề mặt cong 2 chiều được gán là <Base_Srf> và một hình nón được gán là
<component> trong Grasshopper, một <divide interval2> để chia bề mặt, và một <bounding box> đóng vai trò là reference box của <component>. Ở đây tôi sử dụng component <scale> cho bounding box. Bây giờ nếu tôi thay đổi kích thước của bounding box, tôi có thể thay đổi kích thước của tất cả các component trên <base_srf> bởi bounding box thay đổi tức là reference box đã thay đổi.
Như bạn có thể thấy, component <surface box> có một input chiều cao để xác định chiều cao của hình hộp. Ý tưởng là sử dụng những chiều cao tương đối thay vì là một hằng số. Vì vậy thay vì gán một hằng số cho chiều cao của hình hộp, chúng ta có thể thiết lập mối quan hệ giữa vị trí của mỗi hình hộp hộp với vị trí của attractor.
114
Điều tôi cần là đo khoảng cách giữa mỗi hình hộp và attractor. Vì chưa có một hình hộp nào, tôi cần một điểm trên bề mặt tại trung tâm của mỗi hình hộp để đo khoảng cách.
Hình.6.13. Ở đây tôi sử dụng cùng <divide interval2> cho component <Isotrim> (Surface > Util > Isotrim). Component chia bề mặt thành các bề mặt con nhỏ hơn. Với các bề mặt con này tôi có thể sử dụng một component khác gọi là <BRep Area> (Surface > Analysis > BRep area) để sử dụng một sản phẩm của component này đó là ‘Area Centroid’ cho mỗi bề mặt con. Tôi đo khoảng cách của các điểm này (area centroids) với <attractor> để sử dụng nó như là reference cho chiều cao của các target box trong component <surface box>.
Hình.6.14. Tôi chia khoảng cách bởi một hệ số nhất định để điều khiển hiệu ứng của attractor và tôi đã sử dụng kết quả làm chiều cao cho target boxes là component <surface box>. Bề mặt mà ta đã gán là <base_srf>, <divide interval2> sử dụng như là surface domain và chiều cao được xác định dựa theo vị trí của hình hộp và attractor. Như bạn thấy, chiều cao của các hình hộp bây giờ là khác nhau,tuỳ theo vị trí của attractor.
115
Hình.6.15. Chỉ có phần còn lại, kết nối với <component>, <scale> bounding box và <surface box> vào component <morph box> và tạo ra các component trên bề mặt. Bằng cách thay đổi tỉ lệ scale, bạn có thể thay đổi kích thước của tất cả các component và dĩ nhiên, vị trí của attractor cũng có thể điều chỉnh.
Hình.6.16. Kết quả cuối cùng.
Như bạn thấy, kích thước của component đã bước đầu được điều khiển cục bộ, dựa trên những đặc tính bên ngoài tác động, mà ở đây là attractor dạng điểm. Mặc dù ý tưởng là một attractor đơn giản, kết quả có thể rất thú vị và bạn có thể phân biệt các reference box theo nhiều cách khác nhau. Bây giờ chúng ta biết rằng khái niệm morphing và panelization không phải lúc nào cũng chung chung khái quát. Chúng ta đã kiểm tra khái niệm, bạn hãy thực hành một bài tập khác.
116