Extrude Cube

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

On 27/04/2008 at 07:52, xxxxxxxx wrote:

User Information:
Cinema 4D Version:    
Platform:      
Language(s) :

---------
Hi. I'm a complete newbie at coffee, and so I got a lot of questions, but here is my concrete problem:
I'm trying to write a script in coffee, which creates a cube and then extrudes one polygon. After a few hours of reading and testing I managed to write the following code:

var doc = GetActiveDocument();
     if (!doc) return;
     var wuerfel = new(PolygonObject);
     wuerfel = AllocObject(Ocube);
     doc->InsertObject(wuerfel,NULL,NULL);
     var datac = new(BaseContainer);
     doc->SetActiveObject(wuerfel);
     
     CallCommand(12187);               //Polygon-Modus
     
          
     
     wuerfel = SendModelingCommand(MCOMMAND_MAKEEDITABLE, doc, wuerfel, datac, MODIFY_ALL);
     
     println(typeof(wuerfel));
     
     CallCommand(13323);
          
     var bc=new(BaseContainer);
     bc->SetData(MDATA_EXTRUDE_OFFSET, 5);     
     
     
     SendModelingCommand(ID_MODELING_EXTRUDE_TOOL, doc, wuerfel, bc, MODIFY_POLYGONSELECTION);

GeEventAdd(REDRAW_ALL);

My questions are:
1. I think I made some things to complicated, or just not the best way. I would be pleased if you tell me, which things, as I'm a real newbie and thankful for every advise on that.

2. Creating the cube works fine, making it editable also, but nothing is extrude. What's wrong here?

3. How can I select a single polygon of the cube? I tried SetPolygonSelection on the cube, but either I did something wrong or you have to go another way with a cube.

Thanks so far
Basti

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

On 27/04/2008 at 10:18, xxxxxxxx wrote:

First, you are creating a PolygonObject and then a CubeObject - which is it then? Do the AllocObject(Ocube) only. The result of SendModelingCommand() will be a PolygonObject representation of the cube.

Don't go into Polygon mode before you Make Editable (this is an object-level command).

3. answers 2. You need to select polygons before you can extrude them. When you have the 'editable' PolygonObject, use its SetPolygons() command. You will need a BaseSelect to make the selection. Have fun figuring out which polygon is which in the array if that is necessary.

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

On 27/04/2008 at 13:43, xxxxxxxx wrote:

I did it this way:

var wuerfel = AllocObject(Ocube);
     doc->InsertObject(wuerfel,NULL,NULL);
        [..]
     var selection;
     wuerfel->SetPolygon(1, selection);
          
     var bc=new(BaseContainer);     
     bc->SetData(MDATA_EXTRUDE_OFFSET, 5);          
     SendModelingCommand(ID_MODELING_EXTRUDE_TOOL, doc, selection, bc, MODIFY_POLYGONSELECTION);

But I still got an error: (5) Incompatible values...INTEGER/OBJECT
and I don't know why.
Can you please give me an example how to do this?

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

On 27/04/2008 at 14:44, xxxxxxxx wrote:

wuerfel->SetPolygonSelection([BaseSelect]).

SetPolygon() literally sets a polygon (vertex indices) using the given polygon. It looks like SetPolygons() does the same but for the entire polygon array.