Search results

  1. E

    Splitting a shell into two shells by a plane

    Hi, I am using BRepAlgoAPI_Splitter to split a shell by a plane. This is the code we are using: // Object TopTools_ListOfShape objectShapes = myShell; // Tools TopTools_ListOfShape toolShapes; gp_Pnt planePoint(pos.x, pos.y, pos.z); gp_Dir planeNormal(dir.x, dir.y...
  2. E

    Extending a shell 25mm

    Okay, I think I got what I need. This is the code I am using (with a few comments): // Get edge's first vertex position ShapeAnalysis_Edge edgeA = ShapeAnalysis_Edge(); gp_Pnt edgeVertex = BRep_Tool::Pnt(edgeA.FirstVertex(edge)); // Get edge normal on edgeVertex position Handle(Geom_Curve)...
  3. E

    Extending a shell 25mm

    I am using BRepFill_PipeShell now and it works really well. It is faster, does not give as many problems as calculating the intersection and I have more control over what is going on. So far it hasn't crashed or anything like that. Also, as far as the wire and the faces are continuous, the...
  4. E

    Extending a shell 25mm

    I was expecting this to be possible, but I could not find a class that allowed me to do it. Which class are you using to create the sweep? I might just sweep with a straight wire of 25mm length tangent to the surface. Of course, the resulting shape will be flat and not follow the curvature of...
  5. E

    Extending a shell 25mm

    I think I am going to try a new approach: Generate the extended surface Subtract the original surface to the extended surface Generate a solid pipe Generate a face by intersecting the solid pipe with the extended surface. EDIT: Just discovered that subtracting the original surface to the...
  6. E

    Extending a shell 25mm

    I just checked it. Depending on how I create the pipe it works for some shapes but not for others. I will have to further investigate what is going on.
  7. E

    Extending a shell 25mm

    Hi, I have tried reversing the circle, and sometimes helps, but all the time. What I have found out that seems to work is using BRepFill_Pipe with ForceApproxC1=true to create the pipe, but this has two problems: Even if it seems an improvement it still has issues with some shapes. I have...
  8. E

    Extending a shell 25mm

    I have removed the unnecessary wires, but now I am facing a really weird problem I do not know how to solve. I am using BRepAlgoAPI_Section to check the intersection between the pipe and the face. Sometimes it works, but others it does not: As you can see, instead of one continuous edge I am...
  9. E

    Extending a shell 25mm

    We might be up to something (don't mind the weird wires).
  10. E

    Extending a shell 25mm

    That's a good question. I don't think it is. I don't think I will find a general solution for this problem without a Ph.D. in maths. But it does not have to be perfect, it just needs to be good enough, so if I can detect problematic cases and solve them, it should be fine. For this to work...
  11. E

    Extending a shell 25mm

    Yes, the problem is that I have found no tool that allows me to offset the wire in the UV space of the face. A more wild approach that might also work is to create a circular pipe sweeping around the wire, then calculate the intersection between the pipe and the extended face. That should give...
  12. E

    Extending a shell 25mm

    Thanks Quaoar, that was the problem, I was not converting it to BSpline. Blobfish, I have tried BRepLib::ExtendFace and it works the same but with fewer lines, so unless there is a hidden difference I will stick with this one. Thanks. These suggestions solve half of my problem. Now I have an...
  13. E

    Extending a shell 25mm

    It happens with any step I try. This is one test I use, it just has one face. I don't care about the inner hole, I am just worried about an external extension. Also, this shape is flat, so I know I can compute the offset wire using BRepOffsetAPI_MakeOffset, but with more complex shapes it does...
  14. E

    Extending a shell 25mm

    I have been trying this but I need a Handle<Geom_BoundedSurface> and when I downcast the Handle<Geom_Surface> to get it returns null. This is the code I have tried: Handle(Geom_Surface) geomSurf = BRep_Tool::Surface(face); Handle(Geom_BoundedSurface) geomBoundSurf =...
  15. E

    Extending a shell 25mm

    Hi everybody, I just came across a problem I don't know how to solve (and believe me, I tried). I want to create an extension of an open shell, more or less something like this: Imagine the yellow line is the original shape and the blue line is the extension. My plan was to, given a face, edge...
Top