Context matters: point versus polygon


Since the introduction of ICE modeling, you may have hit context mismatches like this:

or this:

That’s because compounds like Test in Geometry and Randomize Around Value are built to work with points/particles. For example, if you look inside Test Inside Geometry, you’ll see it is getting the point position.

So, when you want to use these convenience compounds in a different context, you’ll have adapt them.

Keyboard shortcuts for adding nodes to ICE trees


A customer recently asked me how to write a command that adds a node to an ICE tree. His ultimate goal was to assign a keyboard shortcut to the command, so that he could quickly insert commonly-used nodes.

Unlike menus, which can easily get the current ICE tree view, commands have to do a bit more work. A command has to find the ICE tree view in the active desktop layout (and there’s no way the command can figure which view is the “active” view).

So, here’s a Python snippet that finds an ICE Tree view and adds a Get Data node. If you make this into a command, then you can assign a shortcut key to it. I look first for a docked ICE Tree view, and if I don’t find that, I look for a floating view.

si = Application
views = si.Desktop.ActiveLayout.Views

# Find docked ICE Tree views
oICETreeViews = views.Filter( "View Manager" )(0).Views.Filter( "ICE Tree" )

# If no docked ICE Tree view, then look for floating
if oICETreeViews.Count == 0:
    oICETreeViews = views.Filter( "ICE Tree" )

if oICETreeViews.Count > 0:
    # Get the ICE tree that is loaded into the view
    sICETree = oICETreeViews(0).GetAttributeValue( "container" )

    si.AddICENode("$XSI_DSPRESETS\\ICENodes\\GetDataNode.Preset", sICETree )

The case of the FLEXnet Licensing error:-97,121


This was another case of the dreaded “No interactive network license available” message when you start Softimage. The customer was pretty savvy, so he set FLEXLM_DIAGNOSTICS=3 and tried to start Softimage again, and got this FLEXnet Licensing error:-97,121 error:

---------------------------
FLEXible License Manager
---------------------------
FLEXnet Licensing checkout error: The desired vendor daemon is down.
Check the lmgrd log file, or try lmreread.
Feature: 85934SFTIM_2013_0F
Vendor:Host: EXAMPLE
License path: @EXAMPLE;@127.0.0.1;EXAMPLE;@example;
FLEXnet Licensing error:-97,121
For further information, refer to the FLEXnet Licensing documentation,
available at "www.flexerasoftware.com".
---------------------------
OK
---------------------------

Now, this is not typical. -91,121 is almost always an error that happens on the license server, not on the workstation (it usually indicates a problem with the SERVER line in the license file).

The %TEMP%\SoftimageLicense.log had this:

4268	2012/07/27	07:38:23	Reason=Fatal error
4268	2012/07/27	07:38:23	ComputerName=MEGACORE
4268	2012/07/27	07:38:23	OS=6.1.7601.Service Pack 1
4268	2012/07/27	07:38:23	File=AdlmIntNWFBLicense.cpp,Line=769
4268	2012/07/27	07:38:23	VendorID=3 [FLEXLM-NW]
4268	2012/07/27	07:38:23	VendorError=-97 [The desired vendor daemon is down]
4268	2012/07/27	07:38:23	FLEXLM-NW=v11.10.0.0 build 95001 x64_n6
4268	2012/07/27	07:38:23	Reason=Fatal error
4268	2012/07/27	07:38:23	ComputerName=MEGACORE
4268	2012/07/27	07:38:23	OS=6.1.7601.Service Pack 1
4268	2012/07/27	07:38:23	File=AdlmIntNWFBLicense.cpp,Line=752
4268	2012/07/27	07:38:23	AdlmIntError=20 [License check out failed]

Note that both the FLEXLM_DIAGNOSTICS and the SoftimageLicense.log say that The desired vendor daemon is down. This was the real clue, and the problem turned out to be that LMTOOLS was running multiple vendor daemons from different vendors. Assigning a specific port to each vendor daemon solved the problem.