Reversing CreatePipe Function
Posted: Thu Jan 30, 2025 7:39 am
I want to use the CreatePipe function to sweep a circle over a 270-degree range.
With the code below, I can achieve a 90-degree sweep, but I don't know how to extend it to 270 degrees.
I am testing this by copying it into "InterfaceTests" > "IEntityTest.cs" from the sample.
With the code below, I can achieve a 90-degree sweep, but I don't know how to extend it to 270 degrees.
I am testing this by copying it into "InterfaceTests" > "IEntityTest.cs" from the sample.
Code: Select all
public void Test()
{
IBRepWire_DG iWire;
{
IBRepBuilder_DG iBuilder = m_gen.Create<IBRepBuilder_DG>();
IPlane_DG iPlane = m_gen.Create<IPlane_DG>();
IBRepFace_DG iFace = iBuilder.CreateFace(iPlane);
ICircle_DG circle1 = m_gen.Create<ICircle_DG>();
circle1.Center = new PointDg(0, 0, 0);
circle1.Radius = 200;
IBRepEdge_DG edge1 = iBuilder.CreateEdge(circle1);
iWire = iFace.AddNewWire();
iWire.AddEdge(edge1);
}
IBRepShape_DG iShapePipe;
{
IBRepBuilderEx_DG iBuilderEx = m_gen.Create<IBRepBuilderEx_DG>();
ICircle_DG circle1 = m_gen.Create<ICircle_DG>();
circle1.Init(new PointDg(0, 0, 0), new PointDg(1000, 0, 1000), new PointDg(2000, 0, 0));
ICurve_DG curve1 = circle1.As<ICurve_DG>();
curve1.SlideEndPoint(0, new PointDg(0, 0, 0));
curve1.SlideEndPoint(1, new PointDg(1000, 0, 1000));
IBRepWire_DG iWire_R = m_gen.Create<IBRepWire_DG>();
IBRepEdge_DG edge1 = m_gen.Create<IBRepEdge_DG>(curve1);
iWire_R.AddEdge(edge1);
IBRepShape_DG iShape = m_gen.Create<IBRepFace_DG>(iWire).As<IBRepShape_DG>();
iShapePipe = iBuilderEx.CreatePipe(iWire_R, iShape);
}
IEntity_DG iEntity = m_iModel.AddBRepShape(iShapePipe);
this.Display(iEntity);
}