+ TopoDS_Wire aPathWire = TopoDS::Wire(aGuideLine->GetShape3D());
+ if(aPathWire.IsNull())
+ return;
+ TopoDS_Wire aProfileWire = TopoDS::Wire( aProfile->GetShape3D() );
+ if(aProfileWire.IsNull())
+ return;
+
+ BRepOffsetAPI_MakePipeShell aMkSweep(aPathWire);
+ aMkSweep.Add(aProfileWire,Standard_True, Standard_True);
+ aMkSweep.SetTransitionMode(BRepBuilderAPI_RightCorner);
+ aMkSweep.SetMode(Standard_True);
+ aMkSweep.Build();
+ if(aMkSweep.IsDone()) {
+ const TopoDS_Shape& aChannel = aMkSweep.Shape();
+ BRepCheck_Analyzer aCheck(aChannel);
+ if(aCheck.IsValid())
+ {
+ //BRepTools::Write(aChannel, "ChanV.brep");
+ SetShape3D( aMkSweep.Shape());
+ } else {
+#ifdef DEB_CHANNEL
+ cout <<"NOT VALID" <<endl;
+ BRepTools::Write(aChannel, "ChanNV.brep");
+#endif
+ }
+ }