I stand corrected. Cheers Matt.


On Thu, Apr 25, 2013 at 2:32 PM, Matt Lind <[email protected]> wrote:

> *>> ISIVTCollection* collections exist because *Python was not in
> Softimage since the very beginning*,****
>
> ** **
>
> Not true, Alan.  Python WAS available in the beginning (along with
> VBscript, Jscript, and PerlScript).  People chose not to use Python.****
>
> ** **
>
> When ‘Sumatra’ (XSI) was being developed, all the internal scripts and
> scripting examples written were in VBScript which supports output arguments
> much like by-reference passing of arguments in C++.  It wasn’t until I and
> a few other users spoke up during early versions that Jscript did not
> support this feature.  Around XSI 1.5 or XSI 2.0, Softimage stopped writing
> commands using ISITVCollections as output arguments and started moving
> towards the paradigm used today of supplying a command or method with a
> numeric suffix to account for these language specific situations
> (PolygonMesh.Get() vs. PolygonMesh.Get2() for example).****
>
> ** **
>
> There were no Jscript examples in the documentation either – everything
> was VBscript.  I had to poke around in the dark to find the issues whether
> it be ISITVCollections, arrays vs. VB Safe Arrays, reading/writing RGBA
> color values, inability to make custom spreadsheet queries, and so on.
> Yes, it was very frustrating.  Eventually Softimage got the hint people
> preferred using Jscript over VBscript, so the documentation started to
> reflect that in later versions.  Today Python users are merely going
> through the same growing pains as there wasn’t a significant audience until
> XSI v6 or later.  The language has been around for more than 20 years, only
> recently has it gotten traction in our industry.  Perl used to be the
> language of choice where Python is used today.  Perlscript was an early
> choice for XSI as well, but fell out of favor early on when it ran into the
> same speed bumps Jscript and but didn’t have enough squeaky wheels to fight
> for the cause.****
>
> ** **
>
> Part of the original design decision was probably due to the product being
> waaaaaay behind schedule and developers were looking for the least cost way
> to get things done.  That meant focusing on getting one language working.
> VBscript was the internal technology of Microsoft, who then owned
> Softimage, and it interacted with many other windows applications.  Problem
> was many of the features 3D users wanted to use were not friendly to
> VBscript, or were not in mass adoption (HTML pages for netview, for
> example).  Jscript could be used in the entire application, was available
> on other platforms, and had decent methods for working with strings.
> VBscript was restricted to Microsoft platforms via MainWin.  Another early
> feature, that was since dropped, was the ability to compile scripts into
> executables – it was friendlier in Jscript than VBScript.  Jscript was also
> a much more widely used language than VBScript, making it easier to find
> examples and documentation, as well as more similar to C++ to make
> prototyping plugins easier.****
>
> ** **
>
> Long story short ****
>
> ** **
>
> The main issue is the short sighted approach of the SDK design focusing
> heavily on COM/OLE automation and exposing the capabilities to one language
> in the scripting environment (VBscript) without testing against the
> others.  If a product is going to advertise multi-language support, then
> the SDK and documentation should reflect that wholly.  However in defense,
> if you write code effectively, chances are your code is 90% focused on
> interacting with the Softimage API and not leveraging the features of your
> chosen language so much.****
>
> ** **
>
> ** **
>
> Matt****
>
> ** **
>
> ** **
>
> ** **
>
> ** **
>
> ** **
>
> *From:* [email protected] [mailto:
> [email protected]] *On Behalf Of *Alan Fregtman
> *Sent:* Thursday, April 25, 2013 6:45 AM
> *To:* XSI Mailing List
> *Subject:* Re: scripting: returning value in SIImportMatLib****
>
> ** **
>
> *ISIVTCollection* collections exist because *Python was not in Softimage
> since the very beginning*, so a few of the SDK command implementations
> used these so-called "output arguments" feature (since a big chunk of the
> core commands are written in VBScript, which supports it.) The special
> collection object was a way of getting them to be accessible automatically
> without having to go back and add new commands.****
>
> ** **
>
> ** **
>
> ** **
>
> >>* ** Either way, I don't think the new SDK docs really show what
> arguments are the ones returned*****
>
> ** **
>
> Perhaps not clearly, but they *do* show. For example:****
>
>
> http://download.autodesk.com/global/docs/softimage2013/en_us/sdkguide/si_cmds/PickElement.html
> ****
>
> ** **
>
> Note how in the 2nd paragraph they mention output arguments, then in the
> Parameters list, for "*PickedElement*", "*ButtonPressed*" and "*
> ModifierPressed*" the Description of the parameter reads *"Returns the..."
> *. That's how you know it's an *output argument*; because it's trying to
> return something.****
>
> ** **
>
> The Parameter name for the output argument is the key for the
> ISIVTCollection returned, so in this it might be something like *
> Application.PickElement(...)("PickedElement")* for example.****
>
> ** **
>
> ** **
>
> Cheers,****
>
> ** **
>
>    -- Alan****
>
> ** **
>
> ** **
>
> On Thu, Apr 25, 2013 at 9:10 AM, Eric Thivierge <[email protected]>
> wrote:****
>
> Yeah certain commands aren't, let's say, specifically compatible with
> Python or other scripting languages that don't support output arguments.
> That's an ugly explanation but is pretty much how I think of it. Either
> way, I don't think the new SDK docs really show what arguments are the ones
> returned so it may be a bit tough to know but if you take a look at the
> various code around and maybe some of the older docs you'll see how it
> works.
>
> This may help too in Python:
>
> http://download.autodesk.com/global/docs/softimage2013/en_us/sdkguide/index.html?url=files/ISIVTCollection.htm,topicNumber=d30e53970
> ****
>
>
>
> On 25/04/2013 7:57 AM, David Barosin wrote:****
>
> Look at these links - they help explain what ISIVTCollections are and when
> they are returned.
>
> http://download.autodesk.com/global/docs/softimage2013/en_us/sdkguide/index.html?url=files/outarg_bylang.htm,topicNumber=d30e53710
>
> http://download.autodesk.com/global/docs/softimage2013/en_us/sdkguide/index.html?url=files/ISIVTCollection.htm,topicNumber=d30e53970
> ****
>
> ** **
>
> ** **
>
> On Thu, Apr 25, 2013 at 7:36 AM, Martin <[email protected]> wrote:****
>
> Hi list, ****
>
> ** **
>
> I have a question about SIImportMatLib command. ****
>
> ** **
>
> I was trying to get the return value in jscript without success until I
> checked Eric's  ET_PassManager code where he is using****
>
> ** **
>
> oMatLib = xsi.SIImportMatLib(strMatLibPath)("Value")****
>
> ** **
>
> and the oMatLib gets the return value.****
>
> ** **
>
> It works (in jscript too) and I'm using it now, but why does it work?****
>
> I mean, where this ("Value") thing comes from? ****
>
> When should I use it?****
>
> Thanks****
>
> ** **
>
> ** **
>
> ** **
>
> ** **
>
> ** **
>
> M.Yara****
>
> ** **
>
> ** **
>
> ** **
>

Reply via email to