Mailing List
Home
Forum Home
Softimage
Carrara
trueSpace
Dir3d-l
Maya - a powerful 3D animation and visual effects software
Macromedia Flash Development
Subjects
Cameras
scaleDown command
black out solved
Aircraft Tutorial
Mathematical XYZ ?
Its done This vs That
Its done first week
recommendations for screen video captures?
3DExplorer "Oddity "
New Director
ProTeam renewals
Fuel 's new websites (X post)
Blue peter create a make toy
targeting groups question
XPost: Shockwave 3D game ( sort of )
RES: RES: RES: Fish Modeling
Emitting particles from object intersection
Fuel 's new websites (X post)
Texturing
Big Break Contest Videos
New Plugins
Models and Texture on my updated site
Error Installing Patch tS6 6
Plasma?
Looking for Inspiration
Weird EMail Q
It 's done first week ?
Cherry not cranberry
New game
Camera Animation Problem
Particle plugins?
 
PPG logic

PPG logic

2005-06-07       - By Bernard Lebel

 Back
Reply:     1     2     3     4     5     6     7     8     9     10     >>  

Okay, I have been messing with this for hours now, and I can't still
my head around it.

So I want a custom property page with a few logic. Logic does not need
to persist, the ppg is inspected in siModal mode and deleted after
that.

Following the example in the doc as well as reading the mailing list
archive (this thread:
http://www.softimage.com/community/xsi/discuss/archives/xsi.archive.0409
/msg00616.htm),
it seems I can't get it to work. All I want is a combo box that when
it is set to the first choice, it reveals another parameter.




So I create the cpset, add a bunch of parameters:

# Create combo box content
oElementType = oProp.addparameter3( 'ElementTypeCombo', c.siString,
'-- --- Create new' )
aElementTypes = [ '-- --- Create new', '-- --- Create new',
  'ENVIRONMENT', 'ENVIRONMENT',
  'CHARACTERS', 'CHARACTERS',
  'PROPS', 'PROPS',
  'CAMERA_RIG', 'CAMERA_RIG',
  'LIGHT_RIG', 'LIGHT_RIG' ]

# Create text field for new element
oNewElementType = oProp.addparameter3( 'NewElementType', c.siString, '' )





Then move on to the layout/logic part:

oLayout = oProp.ppglayout
oLayout.Logic = OnInit()
oLayout.Language = "Python ActiveX Scripting Engine"





So here is how my logic/layout functions are setup, following the
example from the scripting reference:

def OnInit():
  ElementTypeCombo_OnChanged()
 
def ElementTypeCombo_OnChanged():
  CreateLayout( oProp.ElementTypeCombo.value )
  #oProp.Refresh()


def CreateLayout( sValue ):
  oLayout = oProp.PPGLayout
  oLayout.Clear()
   
  oLayout.AddGroup( "Element type" )
  oLayout.AddEnumcontrol( "ElementTypeCombo", aElementTypes, "Element
type", "siControlCombo" )
  if oProp.parameters( 'ElementTypeCombo' ).value == "-- --- Create new":
    oLayout.AddString( "NewElementType", "New element type", False )
  oLayout.EndGroup()




Now, whenever I run this, I get a type mismatch error:

#    oLayout.Logic = OnInit()
#  File "C:\Python24\Lib\site-packages\win32com\client\dynamic.py",
line 527, in __setattr__
#    self._oleobj_.Invoke(entry.dispid, 0, invoke_type, 0, value)
#COM Error: Type mismatch. (0x-7ffdfffb) - [line 97]



pointing to the line

oLayout.Logic = OnInit()




Any help would be great, as I have to admit I more or less don't have
a clue what I'm doing here.
Bernard

---
Unsubscribe? Mail Majordomo@(protected) with the following text in body:
unsubscribe xsi