学习网站

1.3dsmax官方帮助文档:http://help.autodesk.com/view/3DSMAX/2017/ENU/

2.最大的max脚本资源网站http://www.scriptspot.com

3.个人的max脚本网站 http://www.maxplugins.de/max2012.php

 

启动max的时候会启动的插件目录


宏命令集位置


 

语法规则

 


注意:数组下标从1开始

 

提取字符串的子串 substring

替换子串 replace

 

转移字符 \


 

 

高级数据类型

Struct 结构类型 自定义数据类型

 

数组 #()


 

 

 

 

 

 

变量

 

动态变量 赋值为整数后还可以再被赋值为字符串


 

赋值也分为 值类型  引用类型

如果某一个值 未有指针指向则被判定为垃圾

 

垃圾清理


 

变量有作用域 全局 局部

Gloabl全局 不写默认是全局

Local 局部

Persistent global 再次打开脚本初始化赋值

 


 

表达式


 


 

流程控制语句

对象层次


 

 

 

 

控制层次


流程控制语句

 

选择语句

if

case of

循环语句

while

for

循环跳出语句

continue

exit

捕捉异常

try catch


If do

If then

If then else / if then else if then


 


 

 

Distance 判断两个物体距离的方法

$+ 物体名字  获取到某个物体

$sphere001.segment = 8 修改球体的段数 属性 = 8

 

 

Case of 分支选择


注释符号 -- 多行注释/* */

 


 

 

While do

语句后的分号 可以不加


 

Do while


for循环 用法1


 

 

用法2


Selection是选择物体的集合


 


Continue 结束当次循环并继续下轮循环


Exit 跳出整个for循环


Try catch 捕捉异常


官方案例



函数



 


返回值 return

 

函数调用可以作为 集合的一个数据


 

 

拓展和练习


 


Color ray matrix3 类型变量声明

自定义n x n矩阵 双重for循环赋值并打印


 

if条件判断语句 或表达方式


 


官网搜索collection 集合


 

 


 


 

宏脚本语法规则和使用


菜单栏Customize-Customize User Interface-keyboard 设置快捷键 调用 宏脚本

可以查询一下是否加载成功


设置宏脚本快捷键,category 选择对应脚本 设置快捷键hotkey 点击Assign按钮

 

 

MaxWrapper

MaxWrapper是父类 包含属性和方法

 

Node 所有场景中的对象 都继承自Node

以下七种类 都能放入场景 属于Node

 

Gemetry 几何体

Shapes 图形

Lights 灯光

Cameras 摄像机

Helpers 辅助类

Space Warpes 空间扭曲

Systems 骨骼系统

 

构造函数 和类名相同 无返回值

F1键打开网页官方文档 使用英文版搜索需要查询的内容


 

例:


 

 

Target 一直注释着目标物体

 

 

选中物体 按住shift+鼠标左键移动 复制物体

 

 

 

Mesh


 

右键可以修改 物体类型



 


 

 


 


 

选择物体

选择某个 或者某些点


对选择的点进行 移动等操作


 

Shape


 


 

 


 

 

SplineShape

设置渲染属性

 

Sublevel=1 2 3相当于是视口上的点 线


Spline方法

numSplines

getSplinesSelection

setSplineSelection

setFiretSpline

deleteSpline

setMaterialID

getMaterialID

numKnots

bindKnot

getInVec

setInVec

getOutVec

setOutVec

updateShape

...

splineOps方法

splineOps.starAttach

splineOps.startBreak

splineOps.startChamfer

splineOps.startConnect

meshop.deleteIsoVerts

meshop.createPolygon

getNormal

...