Tư vấn Dịch vụ 0984.485.266
Tài khoản
alt

Không có sản phẩm nào trong giỏ hàng của bạn

Copy đối tượng trong GDL


Tiếp theo phần trước
8.1.Chúng ta sẽ copy các đối tượng đấy thành 10 đối tượng bằng Script GDL nhé


Trong 3D Script, chúng ta sẽ tạo một vòng lặp For...To...Next để Copy chúng
Chi tiết lệnh xem tại: https://www.graphisoft.com/ftp/gdl/manual/16/002.014.html
8.2.Cấu trúc câu lệnh được giải thích như sau:

 FOR variable_name = initial_value TO end_value [ STEP step_value] NEXT variable_name
FOR là câu lệnh đầu tiên của vòng lặp FOR.
NEXT là câu lệnh cuối cùng của vòng lặp FOR.
Biến vòng lặp thay đổi từ giá trị initial_value thành end_value bằng các bước tăng step_value (hoặc giảm).
Trong mỗi lần thực hiện phần thân của vòng lặp (các câu lệnh giữa câu lệnh FOR và NEXT).
Nếu biến vòng lặp vượt quá giá trị của end_value, chương trình sẽ thực hiện câu lệnh sau câu lệnh NEXT.
Nếu từ khóa STEP và giá trị step_value bị thiếu, thì bước được giả định là 1.
Từ các kiến thức trên chúng ta sẽ có câu lệnh để Copy các đối tượng như sau:
 FOR k=1 TO 10
(Đây sẽ là Code của phần 3D)
ADDx 2
NEXT k
DEL 10
Giải thích: 
+Với vòng lặp k từ 1 đến 10
+chúng ta sẽ vẽ đối tượng 3D
+Di chuyển đến khoảng cách X=2m
+Kết thúc câu lệnh bằng NEXT, sau đó quay trở lại vòng lặp K
+Kết thúc ở giá trị 10 (Del 10) nếu vòng lặp bên trên bị lỗi.
8.3.Như vậy là chúng ta sẽ có kết quả của đoạn mã Code toàn bộ như sau:
 ! --- Hotspots ----------
unID=1
unID=unID+1
HOTSPOT 0, 0,0, unID, KhoiChuNha_A, 1+128, KhoiChuNha_A            : unID=unID+1
HOTSPOT -1, 0,0, unID, KhoiChuNha_A, 3+128, KhoiChuNha_A           : unID=unID+1
HOTSPOT KhoiChuNha_A, 0,0, unID, KhoiChuNha_A, 2, KhoiChuNha_A  : unID=unID+1
HOTSPOT 0, 0,0, unID, KhoiChuNha_B, 1+128, KhoiChuNha_B           : unID=unID+1
HOTSPOT 0, -1,0, unID, KhoiChuNha_B, 3+128, KhoiChuNha_B          : unID=unID+1
HOTSPOT  0,KhoiChuNha_B,0, unID, KhoiChuNha_B, 2, KhoiChuNha_B  : unID=unID+1
HOTSPOT 0, 0,0, unID, KhoiChuNha_C, 1+128, KhoiChuNha_C          : unID=unID+1
HOTSPOT 0, 0,-1, unID, KhoiChuNha_C, 3+128, KhoiChuNha_C        : unID=unID+1
HOTSPOT  0,0,KhoiChuNha_C, unID, KhoiChuNha_C, 2, KhoiChuNha_C : unID=unID+1
! ------End-------------
FOR k=1 TO 10
!Syntax:- BLOCK x,y,z
BLOCK KhoiChuNha_A,KhoiChuNha_B,KhoiChuNha_C
ADD KhoiChuNha_A/2-KT_x/2,KhoiChuNha_B-KT_y,KhoiChuNha_C
!Syntax:- BLOCK x,y,z
BLOCK KT_x,KT_y,KT_z
DEL 1
ADDx 2
NEXT k
DEL 10