MAXScript
This page was last modified on 21 May 2016, at 23:37.
Paradigm | scripting, structural, imperative, object-oriented |
---|---|
Designed by | John Wainwright (John Wainwright), Minton Larry (Larry Minton) |
Developer | Kinetix, Autodesk |
First appeared | 1997 |
Stable release | Version 2008 |
Typing discipline | dynamic |
OS | Windows |
Website | None |
Influenced by | |
BASIC |
MAXScript - a built-in scripting language for a package of three-dimensional modeling Autodesk 3ds Max, designed to automate routine tasks, optimize the use of existing functionality, the creation of new editing tools, and user interface. Through scripting API allows to control and modify the three-dimensional objects of the scene: the geometry, texture, animation, and more. You can create a variety of plug-ins and utilities to speed up the implementation of specific tasks. Tools Autodesk 3ds Max MAXScript used in a variety of functions, including the original tools and interface elements.
Contents
The target audience
The language is designed for a wide range of users - from fashion designers, finishing with technical directors and programmers. It provides more than enough free syntax is similar to the language of BASIC, than C ++ or the shell UNIX (as is the case with Maya MEL script). The internal structure has much in common with the language LISP, and based on the terms. Created using MAXScript new user-defined function can be easily integrated into the 3ds Max and can then be used like any other built-in default means. The language is designed for the average user and the concept creators to use it is not necessary to have a lot of experience programming in any of the common programming languages.
Syntax
Comments
Comments are the symbols "--" (double-dash) at the beginning of the line. Block comments are allocated using a C-like syntax:
-- Your usual comment
/ * Your comment a block * /
Casemapping and string variables
Language is not case sensitive. The only exception is a comparison of string variables. Provided is also a special type of variable name , which are sensitive and commonly used as an enumerated type for the transfer function instead of strings. To declare such a variable using the symbol '#'. Also there is the built-in matchPattern , which allows you to compare the line and taking into account the case-insensitive:
"HELLO" == "hello"
-> false
"HELLO" as name == "hello" as name --konvertiruet to the type name
-> true
#HELLO == #hello - # Declares a variable of type name
-> true
matchPattern "HELLO" pattern: "hello"
-> true
matchPattern "HELLO" pattern: "hello" ignorecase: false
-> false
Instructions
Owners do not need to end with a semicolon (;). This must be done only when they are on one line:
a = 10
print a
--zapis similar to the following:
a = 10;
print a;
--kotoraya similar to going below:
a = 10; print a;
Declaring variables
The variables do not require explicit declaration of a type or value assignment. Uninitialized variables always return a special meaning undefined , which is equivalent to NULL. The variable type depends on the value that it stores, and can be changed dynamically:
a = 10 - the type of variable and - integer
a = "b" - was the type of a variable and a string
Code structure
Parentheses are used to denote blocks of code and namespaces.
Arrays
Arrays are denoted using the syntax "# ()"" and are not strictly members of the type - one and the same array may comprise any type of item, including other arrays. "Array indexing begins with one (1)."'
Byte arrays
Braces are used only as part of the declaration bitmap (bitArray) as follows: # {} . Bitmaps - short lists that contain only flag (false or true) and are used to store the status of selected items, such as points or vertices of triangles, three-dimensional object.
Access by index
Square brackets are used for nominal or indexed access to parts of objects or elements of arrays:
aBox = box () - create a cube
-> $ Box: Box01 @ [0.000000,0.000000,0.000000]
aBox [3] - get the third animation track
-> SubAnim: Transform
aBox [#Transform] --poluchaem the same animation path using the access name
-> SubAnim: Transform
aBox [3] [1] - we get the first element of the path of transformation
-> SubAnim: Position
aBox [3] [1] [2] --poluchaem second element of the track position
-> SubAnim: Y_Position
someArray = # (1,2,5,6, "Hello") - declare array
-> # (1,2,5,6, "Hello")
someArray [4] --poluchaem 4th item
-> 6
someArray [5] --poluchaem 5th element
-> "Hello"
someArray [6] --poluchaem 6th element - it does not exist
-> Undefined
Access to objects in the scene
Nodes scene (scene objects) can be accessed by using the prefix '$' at the beginning of the name. For example, $ Box01 returns the object with the name Box01 . The same syntax can be used to access multiple objects with similar names using '*' . For example, $ Box * will return a list of all objects whose names begin with Box , such as "Box01", "Box02", "Boxer" and so on.
Access to the properties of objects
The properties are available with the point at the end of a variable, by analogy with other known languages (Obekt.ImyaSvoystva), or through calls GetProperty / SetProperty functions. For a list of available properties is necessary to use the method of showProperties (or more shorthand show ). For example, to obtain object properties Box01 do the following:
showProperties $ Box01
--ili shorthand:
show $ Box01
- To get a list of all the properties as a name:
theProperties = getPropNames $ Box01
External links
- http://wiki.cgsociety.org/index.php/MAXScript
- http://www.kxcad.net/autodesk/Autodesk_MAXScript_Reference_9/
- Autodesk 3ds Max 9 MAXScript essentials (2007), Focal Press, ISBN 9780240809328
- Roger Cusson, Pia Maffei, 3ds max 7 fundamentals and beyond courseware manual, Focal Press (2005), ISBN 9780240807393
Присоединяйся к команде
ISSN:
Следуй за Полисом
Оставайся в курсе последних событий
License
Except as otherwise noted, the content of this page is licensed under the Creative Commons Creative Commons «Attribution-NonCommercial-NoDerivatives» 4.0 License, and code samples are licensed under the Apache 2.0 License. See Terms of Use for details.