Oops. Multiply scalar by scalar by array may crash Softimage


While building an ICE tree version of this parametric equation
parametric_equation_loxodrome
I discovered how to crash Softimage 2014 SP2 by doing a Show Values on the output of a Multiply node:
Multiply_crash
The key is that you have to set and then get the values later, and the array has to be the final term in the multiplication. Somehow this intuitively feels like something where things could wrong…

Here’s a clearer picture from Softimage 2014 SP1, which doesn’t stop working immediately:
Multiply_crash_2014sp1

I tested as far back as 2013 SP1, and they all crashed.

Syntax highlighting in the text editor widget


Syntax highlighting works only if you set the siUILanguage to one of cpp, c#, HTML, JScript, PerlScript, Python, VBScript, or XML. Then the language keywords are highlight, plus any keywords you add with the siUIKeywords attribute.

Syntax_highlight

from sipyutils import si			# win32com.client.Dispatch('XSI.Application')
from sipyutils import C			# win32com.client.constants

si=si()

p = XSIFactory.Createobject( 'CustomProperty' )
oParam = p.AddParameter3("TextEditorWidget", C.siString, '')

oLayout = p.PPGLayout
oLayout.Clear()

oItem = oLayout.AddItem( "TextEditorWidget", "Source Code", C.siControlTextEditor)
oItem.SetAttribute( "Language", "JScript" )
oItem.SetAttribute(C.siUIFont, "Courier New")
oItem.SetAttribute(C.siUIKeywords, "foo bar fubar snafu")
oItem.SetAttribute(C.siUIAutoComplete, "fubar");
oItem.SetAttribute(C.siUICommentFont, "Courier New")
oItem.SetAttribute(C.siUICommentColor, 0x75715e)
oItem.SetAttribute(C.siUIPreprocessorColor, 0x808080)
oItem.SetAttribute(C.siUIToolbar, True)
oItem.SetAttribute(C.siUIFontSize, 10)
oItem.SetAttribute(C.siUIHeight, 500)
oItem.SetAttribute(C.siUIBackgroundColor, 0xf8f8f2)
oItem.SetAttribute(C.siUIForegroundColor, 0x272822)
oItem.SetAttribute(C.siUIHorizontalScroll, True)
oItem.SetAttribute(C.siUIVerticalScroll, True)
oItem.SetAttribute(C.siUILineNumbering, True)
oItem.SetAttribute(C.siUILineWrap, False)
oItem.SetAttribute("UseSpacesForTab", True)
oItem.SetAttribute("TabSize", 2) 

si.inspectobj( p )

[Linux] Softimage, network licenses, and License.env


When you install Softimage 2014 on Linux, the license server name (or IP address) that you enter during setup goes into $SI_HOME/Application/bin/License.env.

rem Licensing method: Standalone | MSSA | Network
SOFTIMAGE_LICENSE_METHOD=Network

rem License servers specified from the setup. Format: [port1]@host1[;[port2]@host2]...
ADSKFLEX_LICENSE_FILE=@my_license_server

So, if you need to change ADSKFLEX_LICENSE_FILE, edit License.env.

ADSKFLEX_LICENSE_FILE is also set in the .xsi resource file (eg $SI_HOME/.xsi_2014_SP2), but License.env takes precedence. Unless, of course, you set ADLM_LICENSE_METHOD or SOFTIMAGE_LICENSE_METHOD:

# Set the ADSKFLEX_LICENSE_FILE
setenv ADSKFLEX_LICENSE_FILE "@192.168.1.221"

# Get License

if ( $?ADLM_LICENSE_METHOD ) then
	setenv SILicMethod $ADLM_LICENSE_METHOD
	setenv ADSKFLEX_LICENSE_FILE $ADSKFLEX_LICENSE_FILE
else if  ( $?SOFTIMAGE_LICENSE_METHOD ) then
	setenv SILicMethod $SOFTIMAGE_LICENSE_METHOD
	setenv ADSKFLEX_LICENSE_FILE $ADSKFLEX_LICENSE_FILE
else if ( -f "$SI_HOME/Application/bin/License.env" ) then
	setenv SILicMethod `sed -n s/SOFTIMAGE_LICENSE_METHOD=//p "$SI_HOME/Application/bin/License.env"`
	setenv ADSKFLEX_LICENSE_FILE `sed -n s/ADSKFLEX_LICENSE_FILE=//p "$SI_HOME/Application/bin/License.env"`
else
	setenv SILicMethod Network
endif

See how the .xsi resource file uses the sed swiss army knife to extract the environment variable values from License.env?

CHM version of Softimage 2014 User Guide


Click image to download
Softimage2014chm
It’s not hard to do:

  • Download and install the HTMLHelp Workshop.
  • Download the local version of the Softimage User Guide.
  • Generate hhp (project), hhc (toc), and hhk (index) files for the HTMLHelp Workshop, and then compile the project. You can even download a utility that does that for you (well, everything but the compiling part).

    I used to do it with a few ad-hoc perl and python scripts, but that utility works great.

  • Or you could just click that image at the top of the page.