脚本与 Python API

MQDocument · 文档

本页目录
  1. 属性
  2. 方法
  3. getScene(index)
  4. addObject(obj[, parent])
  5. insertObject(obj, brother)
  6. removeObject(object)
  7. deleteObject(index)
  8. getObjectIndex(obj)
  9. getParentObject(obj)
  10. getChildObjectCount(obj)
  11. getChildObject(obj, index)
  12. isAncestorObject(ancestor, descendant)
  13. getUnusedObjectName([base_name])
  14. getGlobalMatrix(obj)
  15. getGlobalInverseMatrix(obj)
  16. addMaterial(mat)
  17. deleteMaterial(index)
  18. getUnusedMaterialName([base_name])
  19. clearSelect
  20. addSelectVertex(obj_index, vert_index)
  21. deleteSelectVertex(obj_index, vert_index)
  22. isSelectVertex(obj_index, vert_index)
  23. addSelectLine(obj_index, face_index, line_index)
  24. deleteSelectLine(obj_index, face_index, line_index)
  25. isSelectLine(obj_index, face_index, line_index)
  26. addSelectFace(obj_index, face_index)
  27. deleteSelectFace(obj_index, face_index)
  28. isSelectFace(obj_index, face_index)
  29. addSelectUVVertex(obj_index, face_index, apex_index)
  30. deleteSelectUVVertex(obj_index, face_index, apex_index)
  31. isSelectUVVertex(obj_index, face_index, apex_index)
  32. createObjectUserData(productID, pluginID, identifier, bytes_per_object)
  33. deleteObjectUserData(userdata_id)
  34. findObjectUserData(productID, pluginID, identifier)
  35. createVertexUserData(productID, pluginID, identifier, bytes_per_vertex)
  36. deleteVertexUserData(userdata_id)
  37. findVertexUserData(productID, pluginID, identifier)
  38. createFaceUserData(productID, pluginID, identifier, bytes_per_face)
  39. deleteFaceUserData(userdata_id)
  40. findFaceUserData(productID, pluginID, identifier)
  41. createMaterialUserData(productID, pluginID, identifier, bytes_per_material)
  42. deleteMaterialUserData(userdata_id)
  43. findMaterialUserData(productID, pluginID, identifier)
  44. getUVChannelID(name)
  45. getUVChannelName(channel)
  46. compact
  47. save(filename[, productID, pluginID, index])
  48. undo
  49. redo
  50. clearUndoBuffer

MQDocument 包含对象和材质。

属性#

读取(get) 写入(set) 类型 名称 说明
x int numObject 对象数量
x int numMaterial 材质数量
x list<MQObject> object 对象列表
x list<MQMaterial> material 材质列表
x x int currentObjectIndex 当前对象的索引
x x int currentMaterialIndex 当前材质的索引
x string filename 文件名
x MQEnvMap envmap 环境贴图
x int numMaxUVChannel 每个对象的最大 UV 通道数

方法#

成员 说明
getScene 获取此文档中的场景。
addObject 向此文档添加对象。
insertObject 向此文档插入对象。
removeObject 从此文档移除对象,但不销毁对象。
deleteObject 删除此文档中的对象。
getObjectIndex 获取对象的索引。
getParentObject 获取指定对象的父对象。如果指定对象位于根层级,则返回 None。
getChildObjectCount 获取指定对象下的子对象数量。
getChildObject 获取指定对象下的子对象。
isAncestorObject 检查对象是否为指定对象的后代。
getUnusedObjectName 获取尚未使用的对象名称。
getGlobalMatrix 获取指定对象的全局矩阵。
getGlobalInverseMatrix 获取指定对象的全局逆矩阵。
addMaterial 向此文档添加材质。
deleteMaterial 删除此文档中的材质。
getUnusedMaterialName 获取尚未使用的材质名称。
clearSelect 清除选择。
addSelectVertex 将顶点加入选择。
deleteSelectVertex 取消顶点的选择。
isSelectVertex 获取顶点的选择状态。
addSelectLine 将边加入选择。
deleteSelectLine 取消边的选择。
isSelectLine 获取边的选择状态。
addSelectFace 将面加入选择。
deleteSelectFace 取消面的选择。
isSelectFace 获取面的选择状态。
addSelectUVVertex 将 UV 顶点加入选择。
deleteSelectUVVertex 取消 UV 顶点的选择。
isSelectUVVertex 获取 UV 顶点的选择状态。
createObjectUserData 为对象创建用户数据。
deleteObjectUserData 删除对象的用户数据。
findObjectUserData 查找对象已有的用户数据。
createVertexUserData 为顶点创建用户数据。
deleteVertexUserData 删除顶点的用户数据。
findVertexUserData 查找顶点已有的用户数据。
createFaceUserData 为面创建用户数据。
deleteFaceUserData 删除面的用户数据。
findFaceUserData 查找面已有的用户数据。
createMaterialUserData 为材质创建用户数据。
deleteMaterialUserData 删除材质的用户数据。
findMaterialUserData 查找材质已有的用户数据。
getUVChannelID 根据名称获取或生成 UV 通道 ID。
getUVChannelName 根据 UV 通道 ID 获取通道名称。
compact 通过移除 Null 项,压缩文档中的数组。
save 保存到文件。
undo 执行撤销操作。
redo 执行重做操作。
clearUndoBuffer 清空撤销缓冲区。

getScene(index)#

获取此文档中的场景。

参数:
int index - 场景索引
返回值:
MQScene - 场景

addObject(obj[, parent])#

向此文档添加对象。

参数:
MQObject obj - 对象
MQObject parent - parent
返回值:
int - 对象索引
备注:
插入对象时,其他对象的索引会改变。

insertObject(obj, brother)#

向此文档插入对象。

参数:
MQObject obj - 对象
MQObject brother - 同级对象
返回值:
int - 对象索引
备注:
添加子对象(非根层级对象)时,其他对象的索引会改变。

removeObject(object)#

从此文档移除对象,但不销毁对象。

参数:
MQObject object - 对象
备注:
移除对象后,object[index] 将返回 None。

deleteObject(index)#

删除此文档中的对象。

参数:
int index - 对象的索引
备注:
删除对象后,object[index] 将返回 None。

getObjectIndex(obj)#

获取对象的索引。

参数:
MQObject obj - 对象
返回值:
int - 对象索引
[-1] 对象尚未添加到文档中。

getParentObject(obj)#

获取指定对象的父对象。如果指定对象位于根层级,则返回 None。

参数:
MQObject obj - 子对象
返回值:
MQObject - 父对象
[None] 对象位于根层级下。

getChildObjectCount(obj)#

获取指定对象下的子对象数量。

参数:
MQObject obj - 子对象
返回值:
int - 子对象数量

getChildObject(obj, index)#

获取指定对象下的子对象。

参数:
MQObject obj - 父对象
int index - 子对象索引
返回值:
MQObject - 子对象

isAncestorObject(ancestor, descendant)#

检查对象是否为指定对象的后代。

参数:
MQObject ancestor - 祖先对象
MQObject descendant - 后代对象
返回值:
int - result
[0] 两个对象不存在祖先与后代关系
[1] 两个对象存在祖先与后代关系

getUnusedObjectName([base_name])#

获取尚未使用的对象名称。

参数:
string base_name - 基础名称
返回值:
string - 名称

getGlobalMatrix(obj)#

获取指定对象的全局矩阵。

参数:
MQObject obj - 父对象
返回值:
MQMatrix - 全局矩阵

getGlobalInverseMatrix(obj)#

获取指定对象的全局逆矩阵。

参数:
MQObject obj - 父对象
返回值:
MQMatrix - 全局矩阵

addMaterial(mat)#

向此文档添加材质。

参数:
MQMaterial mat - 材质
返回值:
int - 材质索引

deleteMaterial(index)#

删除此文档中的材质。

参数:
int index - 材质索引
备注:
删除材质后,material[index] 将返回 None。

getUnusedMaterialName([base_name])#

获取尚未使用的材质名称。

参数:
string base_name - 基础名称
返回值:
string - 名称

clearSelect #

清除选择。

addSelectVertex(obj_index, vert_index)#

将顶点加入选择。

参数:
int obj_index - 对象索引
int vert_index - 顶点索引

deleteSelectVertex(obj_index, vert_index)#

取消顶点的选择。

参数:
int obj_index - 对象索引
int vert_index - 顶点索引

isSelectVertex(obj_index, vert_index)#

获取顶点的选择状态。

参数:
int obj_index - 对象索引
int vert_index - 顶点索引
返回值:
int - 选择状态
[0] 未选中
[1] 已选中

addSelectLine(obj_index, face_index, line_index)#

将边加入选择。

参数:
int obj_index - 对象索引
int face_index - 面索引
int line_index - 边索引

deleteSelectLine(obj_index, face_index, line_index)#

取消边的选择。

参数:
int obj_index - 对象索引
int face_index - 面索引
int line_index - 边索引

isSelectLine(obj_index, face_index, line_index)#

获取边的选择状态。

参数:
int obj_index - 对象索引
int face_index - 面索引
int line_index - 边索引
返回值:
int - 选择状态
[0] 未选中
[1] 已选中

addSelectFace(obj_index, face_index)#

将面加入选择。

参数:
int obj_index - 对象索引
int face_index - 面索引

deleteSelectFace(obj_index, face_index)#

取消面的选择。

参数:
int obj_index - 对象索引
int face_index - 面索引

isSelectFace(obj_index, face_index)#

获取面的选择状态。

参数:
int obj_index - 对象索引
int face_index - 面索引
返回值:
int - 选择状态
[0] 未选中
[1] 已选中

addSelectUVVertex(obj_index, face_index, apex_index)#

将 UV 顶点加入选择。

参数:
int obj_index - 对象索引
int face_index - 面索引
int apex_index - 面内顶点的索引

deleteSelectUVVertex(obj_index, face_index, apex_index)#

取消 UV 顶点的选择。

参数:
int obj_index - 对象索引
int face_index - 面索引
int apex_index - 面内顶点的索引

isSelectUVVertex(obj_index, face_index, apex_index)#

获取 UV 顶点的选择状态。

参数:
int obj_index - 对象索引
int face_index - 面索引
int apex_index - 面内顶点的索引
返回值:
int - 选择状态
[0] 未选中
[1] 已选中

createObjectUserData(productID, pluginID, identifier, bytes_per_object)#

为对象创建用户数据。

参数:
long productID - 产品 ID
long pluginID - 插件 ID
string identifier - 用于标识的任意字符串(最多 15 个字符)
int bytes_per_object - 每个对象附加数据的大小,单位为字节(最多 65535 字节)
返回值:
int - 对象用户数据 ID
[0] 失败
备注:
当 productID、pluginID 和 identifier 都相同时,不创建新用户数据,而是返回已有的用户数据 ID。为 identifier 指定不同字符串,可以创建多份用户数据。

deleteObjectUserData(userdata_id)#

删除对象的用户数据。

参数:
long userdata_id - 对象用户数据 ID

findObjectUserData(productID, pluginID, identifier)#

查找对象已有的用户数据。

参数:
long productID - 产品 ID
long pluginID - 插件 ID
string identifier - 用于标识的任意字符串(最多 15 个字符)
返回值:
int - 对象用户数据 ID
[0] 失败

createVertexUserData(productID, pluginID, identifier, bytes_per_vertex)#

为顶点创建用户数据。

参数:
long productID - 产品 ID
long pluginID - 插件 ID
string identifier - 用于标识的任意字符串(最多 15 个字符)
int bytes_per_vertex - 每个顶点附加数据的大小,单位为字节(最多 65535 字节)
返回值:
int - 顶点用户数据 ID
[0] 失败
备注:
当 productID、pluginID 和 identifier 都相同时,不创建新用户数据,而是返回已有的用户数据 ID。为 identifier 指定不同字符串,可以创建多份用户数据。

deleteVertexUserData(userdata_id)#

删除顶点的用户数据。

参数:
long userdata_id - 顶点用户数据 ID

findVertexUserData(productID, pluginID, identifier)#

查找顶点已有的用户数据。

参数:
long productID - 产品 ID
long pluginID - 插件 ID
string identifier - 用于标识的任意字符串(最多 15 个字符)
返回值:
int - 顶点用户数据 ID
[0] 失败

createFaceUserData(productID, pluginID, identifier, bytes_per_face)#

为面创建用户数据。

参数:
long productID - 产品 ID
long pluginID - 插件 ID
string identifier - 用于标识的任意字符串(最多 15 个字符)
int bytes_per_face - 每个面附加数据的大小,单位为字节(最多 65535 字节)
返回值:
int - 面用户数据 ID
[0] 失败
备注:
当 productID、pluginID 和 identifier 都相同时,不创建新用户数据,而是返回已有的用户数据 ID。为 identifier 指定不同字符串,可以创建多份用户数据。

deleteFaceUserData(userdata_id)#

删除面的用户数据。

参数:
long userdata_id - 面用户数据 ID

findFaceUserData(productID, pluginID, identifier)#

查找面已有的用户数据。

参数:
long productID - 产品 ID
long pluginID - 插件 ID
string identifier - 用于标识的任意字符串(最多 15 个字符)
返回值:
int - 面用户数据 ID
[0] 失败

createMaterialUserData(productID, pluginID, identifier, bytes_per_material)#

为材质创建用户数据。

参数:
long productID - 产品 ID
long pluginID - 插件 ID
string identifier - 用于标识的任意字符串(最多 15 个字符)
int bytes_per_material - 每个材质附加数据的大小,单位为字节(最多 65535 字节)
返回值:
int - 材质用户数据 ID
[0] 失败
备注:
当 productID、pluginID 和 identifier 都相同时,不创建新用户数据,而是返回已有的用户数据 ID。为 identifier 指定不同字符串,可以创建多份用户数据。

deleteMaterialUserData(userdata_id)#

删除材质的用户数据。

参数:
long userdata_id - 材质用户数据 ID

findMaterialUserData(productID, pluginID, identifier)#

查找材质已有的用户数据。

参数:
long productID - 产品 ID
long pluginID - 插件 ID
string identifier - 用于标识的任意字符串(最多 15 个字符)
返回值:
int - 材质用户数据 ID
[0] 失败

getUVChannelID(name)#

根据名称获取或生成 UV 通道 ID。

参数:
string name - UV 通道名称
返回值:
int - UV 通道 ID
备注:
如果指定的名称不存在,会生成新的 UV 通道 ID。

getUVChannelName(channel)#

根据 UV 通道 ID 获取通道名称。

参数:
int channel - UV 通道 ID
返回值:
string - UV 通道名称
备注:
如果指定的 ID 不存在或为 0,则返回空字符串。

compact #

通过移除 Null 项,压缩文档中的数组。

save(filename[, productID, pluginID, index])#

保存到文件。

参数:
string filename - 文件名
long productID - 产品 ID
long pluginID - 插件 ID
int index - 插件中扩展格式的索引
返回值:
int - 结果
[0] 失败
[1] 成功

undo #

执行撤销操作。

返回值:
int - 结果
[0] 失败
[1] 成功

redo #

执行重做操作。

返回值:
int - 结果
[0] 失败
[1] 成功

clearUndoBuffer #

清空撤销缓冲区。

输入关键词,查找手册中的内容。