From: wattana <watttana@(email surpressed)>
Subject: Re: wrong frame info
   Date: Mon, 16 Apr 2012 12:26:31 -0400
Msg# 2219
View Complete Thread (9 articles) | All Threads
Last Next
Hi Greg!!

This is the one!! Thanks a lot for the quick fix!!

Maya doesn't allow spaces in layers names (doesn't allow them anywhere XD) 
so the first piece of code should work great.

I'll make a little test and provide feedback!!

Thanks Greg!! really mean it!

On Fri, 13 Apr 2012 16:19:52 -0400, Greg Ercolano wrote:

> On 04/13/12 12:29, wattana wrote:
>> [posted to rush.general]
>> 
>> Hi Greg!
>> 
>> Yeah, adding only the layer name will be a perfect solution but with my
>> poor perl knowledge I cannot figure how to do it...
>> 
>> I mean... I found the "$in{MayaFlags}" var, but it will add "-rl
>> something" to the path and I don't like to mess up with spaces and
>> weird characters in any path.
>> 
>> Do you know a way to retrieve the layer name only?
> 
> 	Sure, a little regular expression (regex) to handle that.
> 
> 	Assuming you're specifying render layers with something like:
> 
> -rl red_layer,green_layer
> 
> 	..and perhaps Maya Flags: ends up having other flags mixed in, eg:
> 
> -bla -bla -rl red_layer,green_layer -bla -bla
> 
> 	..then to focus in on the "red_layer,green_layer" you could use:
> 
> my $layernames = $in{MayaFlags};
> $layernames =~ s/(^-rl |.* -rl )(\S+).*/$2/;
> 
> 	..and then:
> 
> $in{LogDirectory} = "$in{ScenePath}-${layernames}.log";
> 
> 	If you're using spaces in the layer names, that makes it a bit
> 	trickier; you'd have to isolate the quotes and stuff, which would 
add a
> 	bit of extra logic.
> 
> 	If you need to go there, give me some pathological examples and I 
can
> 	give you a regex to handle it.
> 
> 	BTW, to figure out the above, I just made a little perl script and
> 	messed around with it until it worked, eg:
> 
> --- snip
> $s = "-foo -bar -rl aaa,bbb -bla";
> $s =~ s/(^-rl |.* -rl )(\S+).*/$2/;
> print "S='$s'\n";
> --- snip


Last Next