SplineGUI for plugin



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 02/11/2012 at 02:35, xxxxxxxx wrote:

    I'm trying to create a python plugin (not a tag) with a SplineGui in it.
    The result is a small square, but nothing else.
    I'm not able to initialize it.

    Here is the code:

    import c4d
    import os
    from c4d import gui, plugins, bitmaps, utils, documents

    PLUGIN_ID = 10281843    #Test ID!
    MY_SPLINE       = 40001

    class SettingsDialog(gui.SubDialog) :

    def CreateLayout(self) :
     
          self.GroupBegin(id=1002, flags=c4d.BFH_FIT)
         
          self.splineBox = self.AddCustomGui(MY_SPLINE, c4d.CUSTOMGUI_SPLINE, "", c4d.BFH_SCALEFIT|c4d.BFV_SCALEFIT, 0, 0)

    self.GroupEnd()
          return True
     
      def InitValues(self) :
     
          self.sd = c4d.SplineData()
          self.sd.MakeLinearSplineBezier(3)

    #data = doc.GetDataInstance()       #BaseContainer for the tag - for plugin???
          #data.SetData(MY_SPLINE, self.sd)   #Execute the splineGUI changes from memory

    return True

    def Command(self, id, msg) :
          return True

    class ASSP(plugins.ToolData) :

    def __init__(self) :
          self.data = dict()                  #container
         
      def AllocSubDialog(self, bc) :
          return SettingsDialog(self.data)    #always return new instance(self.data)

    if __name__ == "__main__":
      bmp = bitmaps.BaseBitmap()
      dir, file = os.path.split(__file__)
      fn = os.path.join(dir, "res", "Icon.tif")
      bmp.InitWith(fn)
     
      okyn = plugins.RegisterToolPlugin(id=PLUGIN_ID, str="SplineControl",info=0, icon=bmp, help="Statusbar Text",dat=ASSP())
      if (okyn) : print "SplineControl Plugin V09 initialized."



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 02/11/2012 at 02:38, xxxxxxxx wrote:

    Note: I do not want to use a res file.



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 05/11/2012 at 03:35, xxxxxxxx wrote:

    Hi pgroof,
    Take a closer look at the documentation of GeDialog.AddCustomGui() :
    > GeDialog.AddCustomGui( id , pluginid , name , flags , minw , minh [, customdata ])
    The last argument, customdata, can be a container that contains parameters for the
    custom-gui that is being added. You can find the symbols for the container in the
    documentation for SplineCustomGui class. Here's an example:

    bc = c4d.BaseContainer()  
    bc[c4d.SPLINECONTROL_GRID_H] = True  
    bc[c4d.SPLINECONTROL_GRID_V] = True  
    bc[c4d.SPLINECONTROL_VALUE_EDIT_H] = True  
    bc[c4d.SPLINECONTROL_VALUE_EDIT_V] = True  
    bc[c4d.SPLINECONTROL_VALUE_LABELS_H] = True  
    bc[c4d.SPLINECONTROL_VALUE_LABELS_V] = True  
    bc[c4d.SPLINECONTROL_X_MIN] = 0  
    bc[c4d.SPLINECONTROL_X_MAX] = 1  
    bc[c4d.SPLINECONTROL_X_STEPS] = 0.1  
    bc[c4d.SPLINECONTROL_Y_MIN] = 0  
    bc[c4d.SPLINECONTROL_Y_MAX] = 1  
    bc[c4d.SPLINECONTROL_Y_STEPS] = 0.1  
    bc[c4d.SPLINECONTROL_PRESET_BTN] = True  
    bc[c4d.SPLINECONTROL_ROUND_SLIDER] = True  
    self.spline_gui = self.AddCustomGui(  
    MY_SPLINE, c4d.CUSTOMGUI_SPLINE, "Spline",  
    c4d.BFH_SCALEFIT|c4d.BFV_SCALEFIT, 0, 0, bc  
    )
    

    Best,
    Niklas



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 05/11/2012 at 05:30, xxxxxxxx wrote:

    Ah, thanks.
    I read about this solution here on the forum, but I thought that the post stated it did not work.
    For me it is working, thanks again.


Log in to reply