mirror of
https://github.com/NGSolve/netgen.git
synced 2024-12-25 05:20:34 +05:00
first version of Pipe with aux-spine
This commit is contained in:
parent
0b926bcbf4
commit
eda914281a
@ -1296,9 +1296,37 @@ DLL_HEADER void ExportNgOCCShapes(py::module &m)
|
|||||||
return BRepPrimAPI_MakeRevol (face, A, D*M_PI/180).Shape();
|
return BRepPrimAPI_MakeRevol (face, A, D*M_PI/180).Shape();
|
||||||
});
|
});
|
||||||
|
|
||||||
m.def("Pipe", [] (const TopoDS_Wire & spine, const TopoDS_Shape & profile) {
|
m.def("Pipe", [] (const TopoDS_Wire & spine, const TopoDS_Shape & profile,
|
||||||
return BRepOffsetAPI_MakePipe (spine, profile).Shape();
|
optional<tuple<gp_Pnt, double>> twist,
|
||||||
}, py::arg("spine"), py::arg("profile"));
|
optional<TopoDS_Wire> auxspine) {
|
||||||
|
if (twist)
|
||||||
|
{
|
||||||
|
auto [pnt, angle] = *twist;
|
||||||
|
|
||||||
|
/*
|
||||||
|
cyl = Cylinder((0,0,0), Z, r=1, h=1).faces[0]
|
||||||
|
heli = Edge(Segment((0,0), (2*math.pi, 1)), cyl)
|
||||||
|
auxspine = Wire( [heli] )
|
||||||
|
|
||||||
|
Handle(Geom_Surface) cyl = new Geom_CylindricalSurface (gp_Ax3(pnt, gp_Vec(0,0,1)), 1);
|
||||||
|
auto edge = BRepBuilderAPI_MakeEdge(curve2d, cyl).Edge();
|
||||||
|
BRepLib::BuildCurves3d(edge);
|
||||||
|
*/
|
||||||
|
throw Exception("twist not implemented");
|
||||||
|
}
|
||||||
|
if (auxspine)
|
||||||
|
{
|
||||||
|
BRepOffsetAPI_MakePipeShell builder(spine);
|
||||||
|
builder.SetMode (*auxspine, Standard_True);
|
||||||
|
for (TopExp_Explorer e(profile, TopAbs_WIRE); e.More(); e.Next())
|
||||||
|
builder.Add (TopoDS::Wire(e.Current()));
|
||||||
|
builder.Build();
|
||||||
|
builder.MakeSolid();
|
||||||
|
return builder.Shape();
|
||||||
|
}
|
||||||
|
|
||||||
|
return BRepOffsetAPI_MakePipe (spine, profile).Shape();
|
||||||
|
}, py::arg("spine"), py::arg("profile"), py::arg("twist")=nullopt, py::arg("auxspine")=nullopt);
|
||||||
|
|
||||||
m.def("PipeShell", [] (const TopoDS_Wire & spine, const TopoDS_Shape & profile, const TopoDS_Wire & auxspine) {
|
m.def("PipeShell", [] (const TopoDS_Wire & spine, const TopoDS_Shape & profile, const TopoDS_Wire & auxspine) {
|
||||||
try
|
try
|
||||||
|
Loading…
Reference in New Issue
Block a user