View Full Version : CgTalk Maxscript Challenge 017: "Project Management"
erilaz 06-14-2007, 08:34 AM CgTalk Maxscript Challenge 017: "Project Management"
DESCRIPTION: It's a term that most artists hate: Project Management. But hate it or love it, keeping your projects in order can be a nightmare without a little help.
This challenge will be a broad one: What I want to see from you is a script that does something to aid the general day-to-day tasks you encounter in your workflow. This could be:
A save script that keeps a log of changes
A simple version control system that backs up files
A project folder tracker
Something as simple as setting up folders the way you like them.
A script that keeps track of how many hours you've been working on a file
A filename convention assistant
A tool that creates a document with all the models and textures used in the scene.
A thumnailer
All of the above and more!
The key is to think of something that you think would help either yourself or a team in their pipeline.
WARNING: Make sure you are working in a safe environment when using external file, DOSCommand and any sort of system methods! Don't go losing files you've been working on for months. Back up!
DEADLINE: 29/06/2007 -UPDATED
RULES:
Do NOT post your code until the deadline!
Code from scratch. Try not to use pre-exisitng functions or plugins.
Show your script references, if any (eg. Looking at another script to assist you).
You are encouraged to ask for help where needed, but try to do it on your own. The maxscript reference is an invaluable resource.
Post your final script inside [CODE] tags (located on your posting toolbar).
Post all code into THIS thread.
Post the max version you coded in, plus any maxscript extensions you used. (Thanks galagast!)
Try to finish the challenge in a week. There is no definite time limit.
NOTES: Go nuts! Check out Martin Breidt's (http://www.breidt.net/scripts/) scripts for some awesome examples.
|
|
thatoneguy
06-14-2007, 05:26 PM
I'm going to assume one of the rules is you have to start today not a month ago. :D
erilaz
06-14-2007, 11:31 PM
I'm going to assume one of the rules is you have to start today not a month ago.
I am confused, but yes, you start from today. :D
specxor
06-14-2007, 11:49 PM
Hi, erilaz,
I love the challenge as its one that TD's face on a day to day basis....
Does this have to be limted to a maxscript? could I incorporate some python scripts or standalone exe's that I have written???
Cheers
Dave
erilaz
06-15-2007, 12:55 AM
Hi, erilaz,
I love the challenge as its one that TD's face on a day to day basis....
Does this have to be limted to a maxscript? could I incorporate some python scripts or standalone exe's that I have written???
Cheers
Dave
Technically it's maxscript only (it is a maxscript challenge after all), but heck, if you've got some awesome scripts and binaries that help out max then we'd be glad to see them incorporated!
I'm learning python right now, so i'm a little biased towards it. :)
specxor
06-15-2007, 04:08 AM
cool... my python scripts would only be helping good ol maxscript out... You will not regret learning python at all... I have written an entire workflow/pipe with it and it never misses a beat...
Cheers
Dave
erilaz
06-15-2007, 04:37 AM
cool... my python scripts would only be helping good ol maxscript out... You will not regret learning python at all... I have written an entire workflow/pipe with it and it never misses a beat...
Cheers
Dave
I know we're digressing slightly, but do you have any good resources for python, especially in relation to our field? Apart from the python.org site of course. :)
I would be very interrested in incorporating python in my workflow too!
-Johan
specxor
06-15-2007, 01:18 PM
Hi, erilaz, JHN,
I use python for all manor of things we have written full feature project management apps, asset browsers and a host of other bits and pieces. In terms of resources I must admit my first port of call is python.org, however I do like the oreily books "Programing Python" comes to mind. I would also recommend the Python help file that comes with the Active State (http://www.activestate.com/) distribution of python (I also think there IDE is the best, Komodo, wich is now free).
There also so some modules that I like and use all the time, I found these ones come in handy all the time:
PIL, this imaging lib is awesome I have written some really cool asset browsers that have utilised PIL, http://www.pythonware.com/products/pil/
Pyro, or Python Remote Object, I love this module for simple networking tasks, RPC and distrusted process's, http://pyro.sourceforge.net/
Twisted, is another networking module, its a bit big (theres an entire book on it), but it has some useful parts...
WxPython, this is the BEST gui lib for python, its wrapped around the C lib so its not so 'pythonic' but once your used to it or wrapped it you can build very feature rich apps very quickly and its very well documented... http://www.wxpython.org/
PyWin lib is awesome it provides access to just about everything in windows, including com/ole so working with max becomes very easy. You can do some very cool stuff with it. I don't have a link as I have no idea were i downloaded it, I know Mark Hammond wrote it (most of it??) I do believe its built into the Active State distribution that I mentioned above. (If anyone wants it just pm me)
Hope that helps, I think allot of people (maxers at least) tend to skip over python, but it is very easy to work with python in max and have python work with max (Pyro = back burner replacement)...
Cheers
Dave
Sorry i sought started ranting there, didn't mean to move off topic....
Dave, much thanx for the pointers!
-Johan
j-man
06-15-2007, 05:38 PM
sorry to make rthe hijack complete but Dave please explain more about how you incorporate python into your max workflow, I learnt a bit when i was playing with blender and i'd love to be able to supplement my MXS.
and TeaMonkey, where did you get that shiny red portfolio button! !
Josh.
erilaz
06-16-2007, 01:27 AM
For the sake of coherence, I think it would be best to move this conversation into a new thread! :)
But yes Dave, any demonstrations of python integration would be welcome to the maxscripting community! If you have time of course.
and TeaMonkey, where did you get that shiny red portfolio button! !
That occurs when you make a new blog entry. :)
specxor
06-17-2007, 01:09 AM
Hi, Guys,
Most of the direct interaction from python in max is done through COM.... You can also do ALLOT with 3dsmaxcmd.exe and creating subprocces. Unfortunatley I cannot post my most interesting code as its a attached to NDA's etc. I will however post some demo code that can get you started.
Ill post in a new thread to :)
Cheers
Dave
oops - I missed that one :(
The Python Stuff sounds interesting.
Where Is the PythonMSX discussion? I think I missed it, too ...
erilaz
06-20-2007, 08:09 AM
Where Is the PythonMSX discussion? I think I missed it, too ...
We're all waiting for specxor to make it, since he's the most accessable authority on the subject at present!
No pressure of course. :D
Funny seeing this thread, I just started a new system for a company that covers just about all the features that were mentioned for the challenge. I can't share if how ever but it will be interesting to see what others come up with.
I'm currently not using any thing other then MXS but I have used Perl in the past. Personaly I didn't like Perl at all, I don't know what it was about it but I just didn't get along with it. Python looks like a good language from just the glancing over it that I have done and I would love to see a thread on it how others are working with python and MXS.
specxor
06-21-2007, 11:46 PM
Hi Guys,
I have posted a really simple example here http://forums.cgsociety.org/showthread.php?p=4466107#post4466107 I will post more soon,
Cheers
Dave
thatoneguy
06-22-2007, 08:01 AM
Funny seeing this thread, I just started a new system for a company that covers just about all the features that were mentioned for the challenge. I can't share if how ever but it will be interesting to see what others come up with.
The curse of this challenge. Everybody who is currently working on Pipeline stuff can't share it. :( Hehe should have called it Maxscript Challenge 017: Who has the fortitude to not share their proprietary company assets?
Speaking of which I'm still waiting for someone to make some badass database driven tools for Max. http://forums.cgsociety.org/showthread.php?f=98&t=384588 ... now chop chop, get to work. I expect awesome database driven project management tools. :)
lechoo
06-22-2007, 09:34 AM
Funny seeing this thread, I just started a new system for a company that covers just about all the features that were mentioned for the challenge. I can't share if how ever but it will be interesting to see what others come up with.
He he, it's just my case :)
erilaz
06-22-2007, 03:10 PM
Due to crazy end of financial year business, I'm going to extend the challenge another week. This one seems to be intriguing people. I'll be able to put up my own meagre tools next week sometime (if my manager approves it!). :D
Kramsurfer
06-22-2007, 09:59 PM
Wow... This challenge is just like work... oh it IS work...
I'am using VB dotNet for external apps, but I'd like to see the python thread as well. I've not used it much. The great part about dotNet stuff, is you can almost paste the code from it into maxScript now...
specxor
06-24-2007, 01:15 PM
Yeah I totally aggree with the NDA stuff... I would love to show the world some of the stuff were doing :)
I am also a very dig fan of dotnet inside of max now... Although I must admit my own experience with it is limited to XML and some db stuff.
I would love to here what you guys think is the best way to talk to db from with in max, I have only tried using dotnet to do it wich worked well, although they were only simple tests... Ill try and dig up my code and post for those who are interested. I recall getting a simpple MySql conection working with a version control script I had written a while ago.
Very excited to see were this thread goes Im working on a little script that could be cool (If it gets done!).
Cheers
Dave
I will add more python code soooon!
Yeah I totally aggree with the NDA stuff... I would love to show the world some of the stuff were doing :)
I am also a very dig fan of dotnet inside of max now... Although I must admit my own experience with it is limited to XML and some db stuff.
I would love to here what you guys think is the best way to talk to db from with in max, I have only tried using dotnet to do it wich worked well, although they were only simple tests... Ill try and dig up my code and post for those who are interested. I recall getting a simpple MySql conection working with a version control script I had written a while ago.
Very excited to see were this thread goes Im working on a little script that could be cool (If it gets done!).
Cheers
Dave
I will add more python code soooon!
I would love to see the code that you are using to read a data base with MXS. This is exactly what I'm looking for.
Also, Python or VB...this will cause a stir...which is the better choice? Is one easier to impliment into a pipeline then the other? Is one more robust then the others. I gather that Python doesn't deal with .net so you have to use IronPython, if VB does is this an advantage?
specxor
06-26-2007, 12:33 PM
I would love to see the code that you are using to read a data base with MXS. This is exactly what I'm looking for.
Also, Python or VB...this will cause a stir...which is the better choice? Is one easier to impliment into a pipeline then the other? Is one more robust then the others. I gather that Python doesn't deal with .net so you have to use IronPython, if VB does is this an advantage?
Hi, Paul,
I can not for the life of me find that script I wrote (some were in the abyss that is my projects folder). I do recall how it worked though, I create a simple python class that would connect to the database on init, I then made it available to max through com. I have a simple Python Class that is published with Com, if I get time this week ill re-write it.
#A simple Python COM server, as simple as it gets.
class PythonComClass:
_public_methods_ = [ 'SplitString','SomethingElse' ]
_reg_progid_ = "PythonDemos.Utilities"
#Make sure you generate a new Class ID, use pythoncom.CreateGuid()
_reg_clsid_ = "{41E24E95-D45A-11D2-852C-204C4F4F5020}"
def SplitString(self, val, item=None):
"""Splits a string"""
import string
if item != None: item = str(item)
return string.split(str(val), item)
def SomethingElse(self):
"""Some other method"""
return "Something Else"
def __PrivateMethod(self):
return "This is a private method"
#Make sure this module has not been imported. Register COM server
if __name__=='__main__':
print "Registering COM server..."
import win32com.server.register
win32com.server.register.UseCommandLine(PythonComClass)
Let me no how you go, if you get stuck just let me no.
Cheers
Dave
erilaz
06-27-2007, 06:59 AM
Update: I've just found out i'm also not allowed to show my work tools. Dang it. :argh:
But this has been a really interesting discussion! I'll be happy to see any stuff people have been able to write outside of NDAs.:D
Dave thanks for the example. I will be digging into that soon and I will let you know how it goes.
As for sharing I will certainly share the directions that I have gone and maybe even UI's but I can't really share all the code. Great thread how ever and I hope that it keeps going.
specxor
06-28-2007, 06:28 AM
Dave thanks for the example. I will be digging into that soon and I will let you know how it goes.
As for sharing I will certainly share the directions that I have gone and maybe even UI's but I can't really share all the code. Great thread how ever and I hope that it keeps going.
Hi Paul,
If you run register a python class as a com service (see above code) you can call it from max like any other OLE object
releaseAllOLEObjects()
obj = createOLEObject("PythonDemo.Utilities")
obj.SplitString("asd_asd", "_")
Any methods you defined in your class you will be able to call provided they have been added to the "_public_methods_" list.
Hope that helps.
Cheers
Dave
erilaz
07-25-2007, 12:30 AM
I 've kept this one up for a while as it seemed to be quite popular. Now that things have died down, I will post up a new one this week. :)
erilaz
08-10-2007, 03:06 AM
Apologies for the delay! :sad:
CGTalk Moderation
08-10-2007, 03:06 AM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.
vBulletin v3.0.5, Copyright ©2000-2012, Jelsoft Enterprises Ltd.