include Oextrude

On 09/03/2015 at 10:53, xxxxxxxx wrote:

Hello guys. Sorry if this is confusing, there's lots of stuff going on.

Any ways, I am creating a c4d.OBJECT_GENERATOR with VirtualObject;

In the User Interface I want to have controls that are available in Extrude Nurbs object (Movement, Subdivisions, Caps etc) + my custom controls. So my res file looks like this:

  
CONTAINER Omyplugin   
{   
    NAME Omyplugin;   
    INCLUDE Obase;   
  
    GROUP ID_OBJECTPROPERTIES   
    {   
        INCLUDE Oextrude;           # <------- This is where I add Extrude Nurbs controls   
    }   
  
    GROUP GROUP_MESH        # <---------- My custom controls are in new tab   
    {   
     LINK LINK_PROFILESPLINE { ACCEPT { Ospline; Osplinecircle; Osplineprofile; Osplinecontour; Osplinerectangle;   
      Osplinestar; Osplinecogwheel; Osplineflower; Osplinetext; Ospline4side; Osplinenside; 440000054; 1019396; } }   
     REAL MY_NUMBER { MIN 2; MAX 10000; STEP 1; UNIT REAL; }   
.. etc   
  
    }   
}   

.h file is like this:

  
#ifndef _Omyplugin_H_   
#define _Omyplugin_H_   
  
enum   
{        
    GROUP_MESH               = 9000,     # <------ Tab name   
    LINK_PROFILESPLINE          = 1000,     # <------- Instance object   
    MY_NUMBER     = 1001,   
...etc   
};   
#endif   

.str file:

  
STRINGTABLE Omyplugin   
{   
    Omyplugin "Spline Object";   
  
    GROUP_MESH "Generate";   
        LINK_PROFILESPLINE      "Spline Object";   
        MY_NUMBER     "Number of Slices";   
..etc   

Then in .pyp file right after "import c4d" and other imports I declare my controls "LINK_PROFILESPLINE = 1000, MY_NUMBER = 1001" etc and set default value for them like this

  
class MYPLUGIN(plugins.ObjectData) :   
    def __init__(self) :   
        self.SetOptimizeCache(True)   
  
    def Init(self, op) :   
        # Set default values   
        op[MY_NUMBER]   = 10    # <---------- Set 10 as default value   
        ...etc   

NOW THE PROBLEM is that MY NUMBER values updates when changing values in SUBDIVISIONS and vice versa. I DON"T WANT IT!!!
I probably missed something, didn't initiate Oextrude controls or something - but I have no idea how to do that. What am I missing?

Thank you

On 09/03/2015 at 11:40, xxxxxxxx wrote:

Apparently problem goes away once I change MY_NUMBER = 1001 ID to something else in H and PYP files.
Looks like default ID forc4d.EXTRUDEOBJECT_SUB is also 1001, that's why my values are get messed up.

However, I'd like to know if I could assign another ID for c4d.EXTRUDEOBJECT_SUB and mess up with my ID that I set for MY_NUMBER.

Is it doable? Any ideas?

On 09/03/2015 at 12:37, xxxxxxxx wrote:

I keep answering my own questions:)
Apparently it's not possible to override default ID's. Had to find it out the hard way. Here's a topic that talks about Ospline, witch is similar to what I need.
http://forums.cgsociety.org/archive/index.php/t-1044085.html