I need a function like imprint.

“1” and “2” are open surface.

I want one operation to Boolean “1”+“2”=“A”+“B”+“C”

I can use Boolean difference+intersection

If any simple function?

How do I do?

Best Regard,

Vaker

I need a function like imprint.

“1” and “2” are open surface.

I want one operation to Boolean “1”+“2”=“A”+“B”+“C”

I can use Boolean difference+intersection

If any simple function?

How do I do?

Best Regard,

Vaker

Maybe something like.

- Dupborder both.
- Use the curves to split the other
- Now you have A, C and 2 times B. Delete 1 B and done.

Dont know if its easier xD

If the surfaces are in the same C-Plane you can use the command split. Split each surface from each other.

Andreas

There are two surfaces in the 3dm file

BooleanTest1.3dm (52.5 KB)

I use RhinoBooleanDifference and the result is ok

I use RhinoBooleanIntersection and the result is incorrect(like Boolean union result).

The tolerance of RhinoBooleanDifference and RhinoBooleanIntersection is the same tolerance=1e-2.

Why the RhinoBooleanIntersection result is incorrect?

```
ON_SimpleArray<const ON_Brep*> BrepArray1;
ON_SimpleArray<const ON_Brep*> BrepArray2;
BrepArray1.Append(pBrep1);
BrepArray2.Append(pBrep2);
bool bResult = false;
ON_SimpleArray<ON_Brep*> OutputBrepArray;
if ( !RhinoBooleanIntersection( BrepArray1, BrepArray2, 1e-2, &bResult, OutputBrepArray, false ) )
AfxMessageBox(_T("Intersection failed"));
int iCount = OutputBrepArray.Count();
for ( int i=0; i<iCount; i++ )
{
ON_Brep** pBrep = OutputBrepArray.At(i);
RhinoApp().ActiveDoc()->AddBrepObject(**pBrep);
};
```