For all issues regarding the Forums use, please, refer to the Forum Rules.

Our Solutions

Need professional assistance?
Consider our:

Support Offerings

 

Need to speed up your development?
Have a look at our:

Samples & Tools

 

Need some functionality extending standard OCCT capabilities?
Check out our:

Adv. Components

Related pages

How to imprint the face of a solid on the face of another one!

Giovanni Pennisi's picture
Forums: 

Hello,

I have two solids that are tangent, they have at least a face in touch. The faces in touch of the two solids have different areas:  the face of one solid (the vertical one) has a bigger area than the face of the other solid. I would like to imprint the smaller face on the bigger one, so that the original solid(the vertical one) must be modified, it should have new edges and\or faces. The resulting solid should not be a compound. What is the best way to do such operation? Can you give me any suggestion?

Attachments: 
Benjamin Bihler's picture

If you have a wire around one face you can split a shell (or face?) like that at the wire:

BOPAlgo_Builder generalFuseBuilder;
generalFuseBuilder.AddArgument(shell);

TopoDS_Wire orderedBorderWire = orderWire(boundingWire);

generalFuseBuilder.AddArgument(orderedBorderWire);
generalFuseBuilder.Perform();
const TopoDS_Shape& fusedShape = generalFuseBuilder.Shape();

orderWire() uses ShapeFix_Wire::FixReorder to order the edges of a wire. This is only one part of your task, but I hope that it helps you.