Bevel Boolean object

On 17/03/2014 at 03:22, xxxxxxxx wrote:

User Information:
Cinema 4D Version:   R15 
Platform:   Windows  ;   
Language(s) :     C++  ;

---------
The result of a Boolean Object "A Subtract B" is an object with hard edges.
Is there a way, to for example Bevel these edges, make them more round?
When looking at oboole.h there is an option "BOOLEOBJECT_BEVEL", but I do not see it in the Object Manager?

enum
{
	BOOLEOBJECT_TYPE	= 1000, // LONG
		BOOLEOBJECT_TYPE_UNION     = 0,
		BOOLEOBJECT_TYPE_SUBTRACT  = 1,
		BOOLEOBJECT_TYPE_INTERSECT = 2,
		BOOLEOBJECT_TYPE_WITHOUT   = 3,
  
	BOOLEOBJECT_SINGLE_OBJECT   = 1001, // Bool
	BOOLEOBJECT_HIDE_NEW_EDGES  = 1002, // Bool
	BOOLEOBJECT_BREAK_CUT_EDGES = 1003, // Bool
	BOOLEOBJECT_SEL_CUT_EDGES   = 1004, // Bool
	BOOLEOBJECT_OPTIMIZE_LEVEL  = 1005, // REAL
	BOOLEOBJECT_HIGHQUALITY			= 1006, // BOOL
	BOOLEOBJECT_BEVEL           = 1007, // Bool
	//BOOLEOBJECT_BEVEL_INNER     = 1008, // Bool
	BOOLEOBJECT_BEVEL_WIDTH     = 1009, // Real
	BOOLEOBJECT_BEVEL_SUBDIVISION = 1010, // LONG
	BOOLEOBJECT_BEVEL_MODE      = 1011,
		BOOLEOBJECT_BEVEL_LINEAR  = 0,
		BOOLEOBJECT_BEVEL_OUTER_CIRCLE = 1,
		BOOLEOBJECT_BEVEL_INNER_CIRCLE = 2,
		BOOLEOBJECT_BEVEL_BEZIER       = 3,
  
	BOOLEOBJECT_
};

On 17/03/2014 at 15:56, xxxxxxxx wrote:

Best to check the oboole.res.  That file describes the descriptions actually used.  If BOOLEOBJECT_BEVEL isn't there, it probably hasn't been implemented.

On 18/03/2014 at 12:19, xxxxxxxx wrote:

Indeed, commented out.
Perhaps something for the future?
By the way, Modo is doing great with MeshFusion.

CONTAINER Oboole
{
	NAME Oboole;
	INCLUDE Obase;
  
	GROUP ID_OBJECTPROPERTIES
	{
		LONG BOOLEOBJECT_TYPE
		{
			CYCLE
			{
				BOOLEOBJECT_TYPE_UNION;
				BOOLEOBJECT_TYPE_SUBTRACT;
				BOOLEOBJECT_TYPE_INTERSECT;
				BOOLEOBJECT_TYPE_WITHOUT;
			}
		}
		BOOL BOOLEOBJECT_HIGHQUALITY { }
		BOOL BOOLEOBJECT_SINGLE_OBJECT { }
		BOOL BOOLEOBJECT_HIDE_NEW_EDGES { }
		BOOL BOOLEOBJECT_BREAK_CUT_EDGES { }
		BOOL BOOLEOBJECT_SEL_CUT_EDGES { }
		REAL BOOLEOBJECT_OPTIMIZE_LEVEL { UNIT METER; MIN 0.0001; STEP .001; }
		//BOOL BOOLEOBJECT_BEVEL { }
		//REAL BOOLEOBJECT_BEVEL_WIDTH { UNIT METER; MIN 0; }
		//LONG BOOLEOBJECT_BEVEL_SUBDIVISION { MIN 0; }
		//LONG BOOLEOBJECT_BEVEL_MODE
		//{
		//	CYCLE
		//	{
		//		BOOLEOBJECT_BEVEL_LINEAR;
		//		BOOLEOBJECT_BEVEL_OUTER_CIRCLE;
		//		BOOLEOBJECT_BEVEL_INNER_CIRCLE;
		//		BOOLEOBJECT_BEVEL_BEZIER;
		//	}
		//}
	}
}

On 23/03/2014 at 20:48, xxxxxxxx wrote:

The parameters that are commented out are not implemented. You could convert the Bool generator
to Polygon Objects and compute the shared edges of the two resulting meshes. This edge selection
can be piped into a bevel modeling command.

Best,
-Niklas

On 24/03/2014 at 06:13, xxxxxxxx wrote:

Thanks, but I like it to be non-destructive. Thus keeping booles and not meshes.

On 24/03/2014 at 16:01, xxxxxxxx wrote:

Have you considered your own Boolean Object (plugin)?  First, the C4D Boolean object doesn't have the most pleasant results (unless they have reworked it recently).  Secondly, you could implement your own beveling on the Boolean result and pass that from GetVirtualObjects().  A bit much ado but it may signify something. 🙂

On 25/03/2014 at 04:56, xxxxxxxx wrote:

Originally posted by xxxxxxxx

Have you considered your own Boolean Object (plugin)?  First, the C4D Boolean object doesn't have the most pleasant results (unless they have reworked it recently).  Secondly, you could implement your own beveling on the Boolean result and pass that from GetVirtualObjects().  A bit much ado but it may signify something. 🙂

I thought about it, but implementing boolean algorithms is above my skills.
If anyone has some straight forward boolean algorithms or a library I could and will give it a try.
I still think that cinema 4d could benefit from something like Modo's MeshFusion.