一半君的总结纸

听话只听一半君

#35 如何得到/设置当前场景文件名,当前project 和默认的project?

场景文件名(Scene Name)

  string $fileName = `file -q -sceneName`;
  // Result: C:/projects/default/scenes/untitled.mb //

注意: 如果你刚刚新建了场景, 那查询 sceneName 的时候将会返回一个空的字符串.如果你想改变场景文件名, 你可以用:

  file -rename "newSceneName";
  // Result: C:/projects/default/scenes/newSceneName.mb //

Maya 会继续使用当前场景的类型 (mayaBinary 或者 mayaAscii) 和当前的路径.

  file -rename "C:/projects/toy_story/woody";
  // Result: C:/projects/toy_story/woody.mb //

这时候Maya 会用你指定的路径但仍然保留当前的场景类型 (mayaBinary 或者 mayaAscii). 此时Maya不会去管这个路径是不是存在.

  file -rename "C:/projects/toy_story/woody.ma";
  // Result: C:/projects/toy_story/woody.mb //

如果之前的scene type 是 “mayaBinary” Maya 会忽略你给出的扩展名.ma,继续使用.mb,所以最后的名字是 “woody.mb”.

  file -type "mayaAscii";
  // Result: C:/projects/toy_story/woody.ma //

上面Maya 把filetype改成了.ma.

但是你不能把改变 filetype 的 -type−rename flag一起用, 但是你可以把他和 −save flag一起用.

注意: 在你用过 ‘file -rename’ 之后Maya 并不会更新主窗口标题栏上的名字(除非你后来又在视窗里选择了某个物体). Maya只会在你 ‘file -save’ 过后才会更新标题栏 .

项目Project (也被称为 Workspace)

当前的 Workspace 可以这样来查询:

string $workspace = `workspace -q -fullName`;

// Result: D:/AW/projects/hulk //

如果你想把返回结果传给 “getFileList” command 来查找这个文件夹里有哪些文件,那你得确认这个路径的末尾有没有一个/ . 使用 ‘-dir’ flag来查询的时候可以保证末尾是/.

string $workspace = `workspace -q -dir`;

// Result: D:/AW/projects/hulk/ //

// 现在在2014里好像下面这个返回../maya/scenes了
getFileList -fld $workspace;

// Result: scenes sourceImages workspace.mel //

默认的 Workspace 可以这样查询:

string $workspaces[] = `workspace -q -listFullWorkspaces`;
print ( "Default workspace is: " + $workspaces[0] + "\n" );

注意: 这里我们假设了默认的 Workspace 是返回的数组里的第一个元素.

加强版:

在pymel里,file命令被拆散放到了pymel.core.system module里

# 返回的是个Path object
pm.sceneName()
# Result: Path('C:/Users/lz/Documents/maya/projects/default/scenes/ref.ma') #

# 当是个新建空场景的时候
pm.sceneName()
# Result: Path('') #

# 重命名
pm.renameFile('xxx.mb')
# Result: Path('C:/Users/lz/Documents/maya/projects/default/scenes/xxx.mb') #

# workspace
pm.workspace.path
# Result: Path('C:/Users/lz/Documents/maya/projects/default') #

workspace.listdir()
# Result: [Path('C:/Users/lz/Documents/maya/projects/default\assets'),
 Path('C:/Users/lz/Documents/maya/projects/default\autosave'),
 Path('C:/Users/lz/Documents/maya/projects/default\cache'),
 Path('C:/Users/lz/Documents/maya/projects/default\clips'),
 Path('C:/Users/lz/Documents/maya/projects/default\data'),
 Path('C:/Users/lz/Documents/maya/projects/default\images'),
 Path('C:/Users/lz/Documents/maya/projects/default\movies'),
 Path('C:/Users/lz/Documents/maya/projects/default\particles'),
 Path('C:/Users/lz/Documents/maya/projects/default\renderData'),
 Path('C:/Users/lz/Documents/maya/projects/default\scenes'),
 Path('C:/Users/lz/Documents/maya/projects/default\scripts'),
 Path('C:/Users/lz/Documents/maya/projects/default\sound'),
 Path('C:/Users/lz/Documents/maya/projects/default\sourceimages'),
 Path('C:/Users/lz/Documents/maya/projects/default\workspace.mel')] #

# 上面有些地方/和\混用,也许是bug?不过可以自己把他们改对
[d.abspath() for d in workspace.listdir()]
 Path('C:\Users\oglop\Documents\maya\projects\default\autosave'),
 Path('C:\Users\oglop\Documents\maya\projects\default\cache'),
 Path('C:\Users\oglop\Documents\maya\projects\default\clips'),
 Path('C:\Users\oglop\Documents\maya\projects\default\data'),
 Path('C:\Users\oglop\Documents\maya\projects\default\images'),
 Path('C:\Users\oglop\Documents\maya\projects\default\movies'),
 Path('C:\Users\oglop\Documents\maya\projects\default\particles'),
 Path('C:\Users\oglop\Documents\maya\projects\default\renderData'),
 Path('C:\Users\oglop\Documents\maya\projects\default\scenes'),
 Path('C:\Users\oglop\Documents\maya\projects\default\scripts'),
 Path('C:\Users\oglop\Documents\maya\projects\default\sound'),
 Path('C:\Users\oglop\Documents\maya\projects\default\sourceimages'),
 Path('C:\Users\oglop\Documents\maya\projects\default\workspace.mel')] #

15 Sep 2004

Advertisements

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s

%d 博主赞过: