Checking the status of remote license servers


One of the Maya support agents forwarded a case to me last Friday: installing the Softimage license server breaks the 3ds Max license server.

It turned out that the 3ds Max license server, which was on a physically separate computer, had gone down. The Softimage license server had nothing to do with it. It was just a coincidence (besides, installing a license server on machine A cannot break a license server running on machine B; the two license servers are completely separate).

Anyway, the 3ds Max license server was in a locked room, and the person with the key was on vacation. To check the status of the 3ds Max license server, we had to use the license manager installed on a another computer. The LMTOOLS GUI is kind of flakey, so it is better to use the command line.

To check whether the license server is up, you can run this command:

lmutil lmstat -c 27000@server
or
lmutil lmstat -c @server

To check the usage status of Softimage Advanced 7.5:

lmutil lmstat -c @server -f 78800SFTIMA_7_5F

To check the usage status of the Batch licenses:

lmutil lmstat -c @server -f 78800SFTIMASIB1_7_5F
lmutil lmstat -c @server -f 78800SFTIMASIB2_7_5F
lmutil lmstat -c @server -f 78800SFTIMASIB3_7_5F
lmutil lmstat -c @server -f 78800SFTIMASIB4_7_5F
lmutil lmstat -c @server -f 78800SFTIMASIB5_7_5F

Notes

  • The -c flag allows you to specify a “license file”, which for FLEXnet licensing is usually really port@host.
  • To check the status of a remote license server using the local LMTOOLS, I had to set the environment variable ADSKFLEX_LICENSE_FILE to point to the remote server before I started LMTOOLS.exe.
  • The Autodesk KB also suggests another way to use LMTOOLS to check the remote license server.

Virtual servers and the Autodesk network license manager


The Autodesk Network License Manager is not tested on virtual servers, and so virtual servers are not officially supported.

However, I know some customers are running their license servers on virtual servers. I believe that they hard code the MAC address of the virtual NIC to match the MAC address in the license file. That way the existing license file will work on the virtual server.

hat tip: TravisNave

The Softimage KB on autodesk.com


Over the last few weeks I’ve been working on the Softimage KB at autodesk.com. I’ve also been working on Maya and Max KBs, as a reviewer.

Over the next few years we hope to see the KB become a big part of a more Web-based support community. For me, it feels a little bit like starting over; I think Softimage had a good start with the wiki and SOFTIMAGE|NET.

Here’s some of my recent KB articles:

13419971 Loading older scenes that contain volumic light effects
13550180 Softimage render licensing
13541487 audiodisplayfiles (.adf) files
13541480 dsprojectinfo file
13541455 Creating a Softimage project without running Softimage
13541449 Saving scenes outside of projects
13541215 Cannot add a project in the Project Manager
13525006 Invalid project error when saving a scene
13522800 Display problems in OpenGL viewports when using selection tools
13514010 Render Tree does not display shaders connected to Material node
13510724 Warning: objects were not saved normally
13498182 License Management Utility has stopped working
13487723 Product Support Video: Debugging scenes
13468716 Product Support Video: Troubleshooting startup crashes with Process Monitor
13473421 Error: No Interactive Network License Available
13443934 BA_Volume warning about lookup table size when rendering ICE particles
13414068 ERROR : ActiveX component can’t create object
13384366 Softimage crashes at startup when Digital Persona installed
13396844 Setting up network licenses
13386202 Setting up Softimage to use multiple license servers
13376704 Error: The serial number you entered is not valid
13285880 Satellite rendering causes fatal mental ray errors

Redirecting ray3 output


ray3.exe outputs to STDERR, so you cannot simply do this:

ray3 -v 6 test.mi > out.txt

You have to do something like this:

ray3 -v 6 test.mi 2>out.txt

In the above command, 2>out.txt redirects STDERR to the file out.txt.

Or you can do this, which redirects all output (STDOUT and STDERR) to out.txt:

ray3 -v 6 test.mi >out.txt 2>&1

References:

Showing the Y coordinate of each point on a grid


Someone on the community forums was asking for a way to show the y coordinate of each point on a grid.

I gave it a quick try with ICE:
yvalue

This ICE tree gets the point position, converts it to global coordinates, and stores it in an attribute. Then I just use Show Values (or an Attribute Display property) to show the coordinate value in the viewport:

Works ok but not great. The update is not interactive, you have to refresh the simulation to get the latest values displayed.

xsibatch -script -render


By combining -script and -render, you can use a script to set up a scene for rendering. xsibatch loads the scene, runs the script, and then does the render.
Any changes made by the script are not saved.

You can also use -script with -export flag. For example, if you wanted to change the output folder for .mi files, you could do this:

xsibatch -processing -export \\server\share\xsiDB\Scenes\test.scn
-script tmpChangeOutputDir.js -frames 1-5 -pass all

where the .js file changes Passes.RenderOptions.OutputDir to the desired output location.

Where does PPG come from?


In property page callbacks like OnClicked and OnChanged, you can use the PPG object to access the parameters on the property page. For example:

def TestProp_text_OnChanged():
Application.LogMessage(PPG.text.Value)

The docs say that PPG is a global variable, but if you try to use PPG outside of a callback, you’ll get a “name is not defined” error.
Or, if you try to put all your callbacks into a separate module, you’ll get that “name is not defined” error again. Several XSI users have hit this problem:

Subject : Re: PPG in self-installable plugins
Interpreter global?
If you just start the script editor and type:

Application.LogMessage(str(PPG))

You’ll get:

#NameError: name 'PPG' is not defined

But in the aforementioned callback if you do:
def TestProp_text_OnChanged( ):
if 'PPG' in globals():
log('Yehaw!')

It’ll find PPG in the globals. When did it get there and how? And more importantly who’s globals?

globals() is module specific (Dive into Python, 8.5 – locals and globals) so if I define a decorator in a separate module it can’t access the global PPG that lives in the global namespace of my plugin.

Arrggsjabcsjdbhcsd!!! My brain is turning to mush!

So what’s up with this PPG object? Where does it come from, and why can’t you access it when you put the callback function into a module?

The answer is that the callback is executed in its own instance of the scripting engine, with its own namespace.
To execute the callback, XSI creates a script engine for the logic (aka the ppg callbacks), and inserts the PPG object into the scripting engine namespace.

When I answered this question back in 2005 on the XSI list, I was officially named one of the ten coolest people in the Universe :-).

The case of the missing VBScript


Softimage (formerly known as XSI) depends on VBScript. If there is a problem with VBScript on your system, Softimage just won’t start. Typically, you won’t see anything when you try to start XSI.exe, or you may see the splash screen just before XSI crashes. I see a couple of these cases each year.

Here’s a quick way to check whether VBScript is working on your system:

  1. Click Start > All Programs > Softimage Products > SOFTIMAGE XSI 7.01 > Command Prompt.
  2. In the command prompt, run this command notepad hello.vbs.
  3. Click Yes to create the file.
  4. In Notepad, type this: LogMessage “hello”
  5. Click File > Save.
  6. In the command prompt, run this command: xsi -script hello.vbs
  7. If VBScript is not registered properly on your system, you’ll get the error

    ‘ FATAL : The VBScript engine is not installed. This application requires VBScript to run.

To resolve the problem, use these steps:

  • Click Start, Run and type regsvr32 %systemroot%\system32\vbscript.dll
  • If the registration was successful, you should now see the following message: DllRegisterServer in vbscript.dll succeeded.

If the above does not help, of if you receive an error message when registering vbscript.dll, then try installing Windows Script 5.6.

Another way to test VBScript, is to create a .vbs file with this code:

WScript.Echo "Hello World"

and then run it from the command-line:

cscript hello.vbs

If you get the Can’t find script engine “VBScript” for script error, then run regsvr32 %systemroot%\system32\vbscript.dll.

Using ray3 to help the render region in XSI


I actually did not know you could do this. But I was speaking with a customer the other day who does this. He is using his mental ray standalone licenses to get 16 CPUs help out his render regions (there is no limitation on the number of ray3 “satellites” that you can use).

This is an example of “standalone” distributed rendering, which is like “satellite” rendering, but with ray3 and mental ray standalone licenses.

You just have to fill in your ray3hosts file with the names of the ray3 slaves.