Các Lớp - Layer Và Nhóm - Group Trong SketchUp Ruby

  • Layers - Các lớp
  • Groups - Các nhóm

Layers - Các lớp trong SketchUp

Trong SketchUp các layer (lớp - hình học) biểu thị bởi lớp (class) Layer, trong giao diện SketchUp dùng hộp thoại Layer (mở từ menu Windows > Layers)

Mặc định có một layer tên là layer0. Từ đây bạn có thể tạo Layer mới, chuyển đổi layer hiện tại, ẩn - hiện các layer

Tạo Layer SketchUp bằng code Ruby

SketchUp chứa tất cả các layer trong một mảng, để lấy mảng này dùng code:

layer_array = Sketchup.active_model.layers

Có thể duyệt qua tất cả các layer, hiện thị thông tin như tên, hiện thị hay không ..

layer_array = Sketchup.active_model.layers layer_array.each { |layer| puts "Tên: #{layer.name} - Màu: #{layer.color} - Hiện thị #{layer.visible?}" }

Để tạo layer mới dùng phương thức add của Layers với tham số là tên layer, layer mới tạo ra mặc định không phải layer kích hoạt, để kích hoạt nó (layer đang vẽ các đối tượng) thì gán nó với cho Model.active_layer=

# Tạo layer mới tên "My First Layer" mylayer = Sketchup.active_model.layers.add "My First Layer" # Thiết lập màu layer mylayer.color = [0,0,128] # Kích hoạt layer model = Sketchup.active_model model.active_layer = "My First Layer"

Groups - Các nhóm trong SketchUp

Các nhóm Group trong SU nó là tập hợp các Entity (Edge, Face, Group ...), khi nhóm các Entity vào có thể thực hiện đồng thời các thao tác trên nhiều đối tượng như Copy, Transformation.

Tạo và hủy nhóm

Để tạo nhóm dùng phương thức add_group(*entities) ⇒ Sketchup::Group của Entities.

# 19.group1.rb # load "/Users/xuanthulab/Desktop/learn-ruby/sketchup/19.group1.rb" require 'sketchup.rb' require 'extensions.rb' def group_demo1 ents = Sketchup.active_model.entities face = ents.add_face [0,0,0], [1,0,0], [1,1,0], [0,1,0] face.reverse! face.pushpull 1 # Tạo Group - từ các Entity có kết nối với mặt face gr = ents.add_group face.all_connected # Đặt tên Group gr.name = "Group Demo1" end

Trong Group có thể lấy đối tượng Entities chứa các Entity của Group, bằng cách này khi thêm các Entity vào nó tự động thuộc về Group

# 20.group2.rb # load "/Users/xuanthulab/Desktop/learn-ruby/sketchup/20.group2.rb" require 'sketchup.rb' require 'extensions.rb' def group_demo2 ents = Sketchup.active_model.entities gr = ents.add_group gr.name = "Group Demo2" entities_ingroup = gr.entities face = entities_ingroup.add_face [0,0,0], [1,0,0], [1,1,0], [0,1,0] face.reverse! face.pushpull 1 end

explode

Theo chiều ngược lại, có thể phân rã một group - các Entity trong Group không còn gắn kết lại với nhau, dùng explode để thực hiện điều này

group.explode

Cấu hình group

group.locked = true # trạng thái khóa: kích thước, hình dáng, vị trí không sửa đổi group.name = "Tên Group" group.description = "Mô tả về Group"

copy, transformation Group

Để sao chép một group thực hiện phương thức copy của nó, sau đó có thể thực hiện phương thức move! hoặc transform! để thay đổi vị trí:

group2 = group1.copy tran = Geom::Transformation.translation [10, 0, 0] group2.transform! tran Mục lục bài viết Layers - Các lớpGroups - Các nhóm ĐĂNG KÝ KÊNH, XEM CÁC VIDEO TRÊN XUANTHULAB Đăng ký nhận bài viết mới

Từ khóa » Bỏ Group Trong Sketchup