• Trang Chủ
  • Kiến Trúc
  • Nội Thất
  • Đồ Họa
  • Phần Mềm
  • Tài Liệu
  • Giải Trí
  • Khác
No Result
View All Result
  • Trang Chủ
  • Kiến Trúc
  • Nội Thất
  • Đồ Họa
  • Phần Mềm
  • Tài Liệu
  • Giải Trí
  • Khác
No Result
View All Result
Đặng Tiến Dũng
No Result
View All Result

MAXScript cơ bản cho người mới – phần 5

16/01/2024
in Phần Mềm
Reading Time: 8 mins read

Trong phần này, chúng ta sẽ làm quen với Macro Script. Đây là một loại script đặc biệt, dùng để tạo ra ActionItem trong Customize User Interface của 3ds Max. Từ đó, chúng ta có thể gán phím tắt, tạo nút bấm, hay thêm lệnh vào menu chuột phải cho script.

Ở trong phần trước, chúng ta đã biết một cách tự động tạo ra Macro Script, đó là kéo thả code vào thanh công cụ của 3ds Max. Tuy nhiên, nhược điểm của chúng là không tùy chỉnh được tên script và tên category. Mặc định nó sẽ có luôn có tên là MacroX trong DragAndDrop category.

Bây giờ, chúng ta sẽ học cách định nghĩa các thuộc tính trên chi tiết hơn, giúp tăng độ nhận diện cho script của bạn, và có thể dễ dàng chia sẻ với người khác. Hãy mở 3ds Max, setup góc làm việc và bắt đầu cùng tôi tạo ra Macro Script đầu tiên của riêng mình.

MỤC LỤC

  • Bắt đầu tạo một Macro Script
  • Macro Script trong Customize User Interface
  • Cách gỡ bỏ một Macro Script
  • Định dạng của Macro Script
  • Macro Script để mở một Script khác
  • Biến một script trở thành một Macro Script
  • Bài tập ứng dụng

Bắt đầu tạo một Macro Script

Cấu trúc cơ bản của 1 một script như sau:

macroScript <name> [category:<string>] [buttontext:<string>] [tooltip:<string>]
(
-- code của bạn ở đây...
)

Bạn thấy nó có giống với thứ gì đó chúng ta đã học không? Đúng, đây chính là một dạng function (hàm) đặc biệt của 3ds Max mà chúng ta đã cùng thảo luận ở phần 3. Function này dùng để định nghĩa một Macro Script. Các từ khóa trong ngoặc vuông chính là tùy chọn của nó.

Sau khi chạy, nó sẽ tạo ra một lệnh mới có tên theo [tooltip], nằm trong thư mục [category]. Khi kéo thả lệnh này ra ngoài thanh công cụ, nó sẽ có tên là [buttontext]. Lệnh này cũng sẽ tạo ra một file mcr có cấu trúc tên là [category]-[name].mcr trong thư mục usermacros của 3ds Max tại đường dẫn sau:

AppData\Local\Autodesk\3dsMax\202x - 64bit\ENU\usermacros

Hãy thử xem xét ví dụ phía dưới.

macroscript helloMacro category:"D95 DESIGN" tooltip:"Hello Macro" buttontext:"H.M"
(
messageBox "Hello, macro!"
)

Dù code của chúng ta có lệnh messageBox, nhưng thực tế sau khi thực thi nó, không có gì xảy ra trong 3ds Max. Lý do là bởi toàn bộ code nằm trong function macroScript. Nó sẽ chỉ làm công việc định nghĩa một Macro Script, chứ không thực sự chạy các lệnh trong đó.

Macro Script trong Customize User Interface

Sau khi thực thi (execute) macroscript phía trên, hãy vào Customize User Interface > Toolbar để kiểm tra. Chọn category là D95 DESIGN hoặc bất kỳ tên gọi nào mà bạn đã đặt.

Lệnh “Hello Macro” xuất hiện trong Customize User Interface.

Bạn sẽ thấy Hello Macro nằm trong danh sách lệnh phía dưới (3). Kéo thả nút bấm này ra thanh công cụ của 3ds Max, nó mặc định có tên là H.M như chúng ta đã quy định với buttonText. Hãy bấm vào nút H.M này, cửa sổ thông báo “Hello, macro!” sẽ hiện ra.

Vậy tức là những gì bạn viết trong dấu ngoặc sẽ chỉ được thực thi khi bạn bấm nút H.M. Điều này tương tự với các ActionItem khác, bao gồm nút tắt Hotkey hay menu chuột phải Quads.

Chúc mừng, bạn vừa tạo xong Macro Script đầu tiên. Hãy thử chỉnh sửa nó theo ý bạn.

Cách gỡ bỏ một Macro Script

Vào thư mục usermacros của 3ds Max mà tôi có để đường dẫn ở phía trên. Lúc này, sẽ có 1 file mới xuất hiện, đó là D95 DESIGN-helloMacro.mcr. Đây chính là file macro được tự động tạo ra sau khi bạn thực thi (execute) Macro Script phía trên. Nó cũng sẽ tự load vào 3ds Max mỗi lần bạn khởi động phần mềm.

Bạn có thể xóa macro này để gỡ nó khỏi Customize User Interface của 3ds Max. Lần khởi động phần mềm tiếp theo, lệnh Hello Macro sẽ không còn xuất hiện.

Định dạng của Macro Script

Để ý rằng, khi tải script trên mạng, nếu script có đuôi là .ms, thì macroscript sẽ thường có đuôi là .mcr. Nhưng thực tế, không phải lúc nào cũng như vậy. Một vài tác giả vẫn phát hành Macro Script của họ dưới định dạng .ms, và mọi thứ vẫn sẽ hoạt động bình thường, bởi macroScript cũng chỉ là một dạng function trong 3ds Max. Tuy nhiên, theo tôi, chúng ta nên lưu file đúng định dạng, để tránh gây nhầm lẫn cho người dùng.

Hãy quay lại cửa sổ MAXScript Editor với macroscript helloMacro mà chúng ta vừa viết vừa xong. Bấm Ctrl + S để mở cửa sổ Save File. Đặt tên cho nó là Hello_Macro.mcr, sau đó lưu ra ngoài desktop.

File Hello_Macro.mcr bây giờ có thể coi là một “bộ cài đặt” hoàn chỉnh mà bạn có thể chia sẻ với người khác. Khi người dùng khác kéo thả file Hello_Macro.mcr này vào trong 3ds Max, lệnh Hello Macro sẽ xuất hiện trong Customize User Interface. Họ có thể kéo thả lệnh này ra thanh toolbar, hoặc đặt phím tắt cho nó. Mỗi khi sử dụng, họ sẽ nhận được thông báo “Hello, macro!” tới từ bạn.

Macro Script để mở một Script khác

Khi bạn tải một script từ internet có định dạng là .ms hay .mse, nó thường sẽ chỉ chạy 1 lần duy nhất mỗi lần bạn kéo thả vào trong 3ds Max. Vì thế, mỗi lần sử dụng nó, bạn sẽ cần kéo thả một lần nữa vào 3ds Max. Điều này thực sự rất bất tiện. Để khắc phục, chúng ta có thể viết một macroscript chuyên để mở script khác.

Ở đây tôi sẽ ví dụ với script Object Randomizer. Script này có tác dụng để random vị trí và góc xoay của vật thể. Ở đây, tôi sẽ tạo ra một Macro Script để có thể đặt nút tắt hay làm nút bấm cho nó. Đầu tiên, tải file objectrandomizerv3.ms về máy tính. Sau đó tạo một Macro Script mẫu như sau:

macroscript objectRandomizer category:"D95 DESIGN" tooltip:"Object Randomizer" buttontext:"O.R" 
( 
)

Bạn có thể đổi category, tooltip và buttontext tùy theo ý thích của mình. Tên macroscript nên là một cái tên khó “đụng hàng”, tuyệt đối không dùng những tên dễ trùng như macro1, macro2. Vì nếu trùng tên, nó sẽ định nghĩa lại các macro mà bạn đã tạo ra trước đó. Ở đây tôi đang để là objectRandomizer.

Tiếp theo, chúng ta sẽ dùng lệnh fileIn của MAXScript để mở Object Randomizer. Lệnh fileIn có tác dụng giống việc kéo thả file vào trong 3ds Max. Việc chúng ta cần làm là dẫn tới file objectrandomizerv3.ms phía trên. Macro sẽ trông như sau:

macroscript objectRandomizer category:"D95 DESIGN" tooltip:"Object Randomizer" buttontext:"O.R" 
( 
 fileIn "D:\objectrandomizerv3.ms"
)

Trong đó “D:\objectrandomizerv3.ms” chính là đường dẫn tới file vừa tải về. Hãy thay dòng này bằng đường dẫn trên máy bạn, nhớ là để chúng trong ngoặc kép. Thực thi (execute) macro này, lệnh Object Randomizer sẽ xuất hiện trong Customize User Interface.

Khi bấm vào nút O.R, cửa sổ Object Randomizer sẽ xuất hiện.

Biến một script trở thành một Macro Script

Cách trên tuy đơn giản, hiệu quả, tuy nhiên bạn sẽ không thể chia sẻ thuận tiện được với bạn bè được, vì họ sẽ phải chỉnh sửa lại đường dẫn thủ công. Với những script gọn nhẹ như vậy, có một cách khác là trực tiếp biến những script này thành một Macro Script.

Trong MAXScript Editor, hãy mở file objectrandomizerv3.ms bạn vừa tải về. Bấm Ctrl + A để chọn toàn bộ, bấm copy, sau đó quay lại Macro Script chúng ta vừa tạo vừa rồi, và bấm paste vào giữa 2 dấu ngoặc. Macro sẽ trông như sau:

macroscript objectRandomizer category:"D95 DESIGN" tooltip:"Object Randomizer" buttontext:"O.R" 
(
 rollout rlObjectRandomizer " Object Randomizer"
 ..... (khoảng 100 dòng).....
 createDialog rlObjectRandomizer 265 272 style:#(#style_SysMenu, #style_ToolWindow)
)

Xong. Hãy chạy thử macroscript này, nó sẽ có tác dụng tương tự với Macro Script chúng ta vừa làm phía trên. Lưu nó lại thành file objectrandomizerv3.mcr, và bạn có thể sẵn sàng chia sẻ nó với mọi người.

Bài tập ứng dụng

Nếu đã hoàn thành bài tập phần 4, chúng ta đã có được một script có giao diện gồm nhiều nút bấm, mỗi nút bấm sẽ xoay vật thể đang chọn sang một góc khác nhau. Hãy biến script này trở thành một Macro Script hoàn chỉnh. Sau đó chia sẻ nó với bạn bè và đồng nghiệp, để giúp họ tiết kiệm thời gian khi xoay các vật thể. Nhớ điền một biệt danh thật ngầu của bạn vào trong phần category của Macro Script để khiến mọi người nhớ tới bạn nhé.

Chúc các bạn thành công!

Bài Viết Liên Quan

Thư viện SketchUp Trung Quốc
Phần Mềm

Thư viện SketchUp Trung Quốc

17/06/2025
170
Vì sao SketchUp lại thích hợp cho concept?
Phần Mềm

Vì sao SketchUp lại thích hợp cho concept?

20/05/2025
92
Incremental Saves trong SketchUp
Phần Mềm

Incremental Saves trong SketchUp

28/04/2025
105

Trả lời Hủy

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Thư viện SketchUp Trung Quốc

Thư viện SketchUp Trung Quốc

17/06/2025
170
Phác thảo và vẽ tay

Phác thảo và vẽ tay

10/06/2025
45
Khoe hợp đồng

Khoe hợp đồng

30/05/2025
47
Luyện vẽ

Luyện vẽ

29/05/2025
36
Phác thảo bằng SketchUp

Phác thảo bằng SketchUp

20/05/2025
89
Vì sao SketchUp lại thích hợp cho concept?

Vì sao SketchUp lại thích hợp cho concept?

20/05/2025
92

Nhiều lượt xem

Tổng hợp lisp nhỏ cho AutoCAD

Tổng hợp lisp nhỏ cho AutoCAD

17/05/2024
12.9k
Tổng hợp script nhỏ cho 3ds Max

Tổng hợp script nhỏ cho 3ds Max

27/02/2024
5.7k
Hiệu ứng phác thảo cho bản vẽ AutoCAD

Hiệu ứng phác thảo cho bản vẽ AutoCAD

19/03/2024
3.9k
Kiếm tiền từ bán model trên 3dsky

Kiếm tiền từ bán model trên 3dsky

25/03/2024
2.8k
7 plugin SketchUp của Curic mà tôi thường sử dụng

7 plugin SketchUp của Curic mà tôi thường sử dụng

27/11/2023
2.6k

Mới chỉnh sửa

Thư viện SketchUp Trung Quốc

Thư viện SketchUp Trung Quốc

17/06/2025
170
Tổng hợp thông tin về các script & plugin trên d95design.com

Tổng hợp thông tin về các script & plugin trên d95design.com

20/09/2024
1.8k
Phác thảo và vẽ tay

Phác thảo và vẽ tay

10/06/2025
45
Khoe hợp đồng

Khoe hợp đồng

30/05/2025
47
Luyện vẽ

Luyện vẽ

29/05/2025
36

Bài ngẫu nhiên

MAXScript cơ bản cho người mới – phần 1

MAXScript cơ bản cho người mới – phần 4

07/01/2024
285
Sự phổ biến của màu trắng trong nội thất phương tây: góc nhìn từ kinh tế

Sự phổ biến của màu trắng trong nội thất phương tây: góc nhìn từ kinh tế

15/05/2024
298
Khoe hợp đồng

Khoe hợp đồng

30/05/2025
47
Ý nghĩa và tác dụng của cửa trập ngoại thất

Ý nghĩa và tác dụng của cửa trập ngoại thất

22/11/2023
152
Tổng hợp lisp nhỏ cho AutoCAD

Tổng hợp lisp nhỏ cho AutoCAD

17/05/2024
12.9k

Bài mới nhất

Thư viện SketchUp Trung Quốc

Thư viện SketchUp Trung Quốc

17/06/2025
170
Phác thảo và vẽ tay

Phác thảo và vẽ tay

10/06/2025
45
Khoe hợp đồng

Khoe hợp đồng

30/05/2025
47
Luyện vẽ

Luyện vẽ

29/05/2025
36
Phác thảo bằng SketchUp

Phác thảo bằng SketchUp

20/05/2025
89
  • Giới thiệu
  • Cửa hàng
  • Facebook
  • Youtube
  • Liên hệ

Tổng số lượt truy cập: 82175  |  Hôm nay: 147  |  Hôm qua: 191

No Result
View All Result
  • Kiến Trúc
  • Nội Thất
  • Đồ Họa
  • Phần Mềm
  • Tài Liệu
  • Khác

Tổng số lượt truy cập: 82175  |  Hôm nay: 147  |  Hôm qua: 191