Menu

Extrude on an arc route

Help
2008-08-14
2013-04-22
  • EveryNet Federico

    Extrusion is powerfull but:
    How can I extude a sketch on a circular route ?
    I use it for meccanical objects as curve crossbeam
    Sorry for my poor Englis.
    Thanks, Federico

     
    • Sean Morrison

      Sean Morrison - 2008-08-14

      There is not presently a way to do that directly using sketches and extrude.  There is a project to add a 'sweep' primitive that would do what you want, but it doesn't presently exist.

      That said, depending on the exact shape, you may be able to approximate the shape using other primitives and/or boolean operations.  Example, a simple "C" that looks like a circularly swept circle can be constructed using just a torus with a subtraction.  Similarly, I could get a similar shape with sharp edges (e.g. a circularly swept square) using a cylinder (rcc) with a subtracted inner cylinder (rcc) and box (arb8).

      Depending on your shape, there are lots of other options available usually.

      Cheers!
      Sean

       
    • EveryNet Federico

      Thank you for your reply !

      My sketch is:

      /--+  +--\
      |  |  |  |
      |  +--+  |
      |        |
      \--+  +--/
         |  |
      /--+  +--\
      |        |
      |  +--+  |
      |  |  |  |
      \--+  +--/

      and is quite easy to build the solid starting from this and extruding on a line or on a curve.
      With boolean operations can be very hard...

      any idea ?
      Thanks, Federico.

       
    • David Loman

      David Loman - 2008-08-18

      Like Sean said, revolve doesn't exist.... yet.  But when it comes to 'revolving' a shape around an axis, then having a base shape that is rather Square is a very good thing.  For your problem, try coping/pasting this into a new MGED db:

      title {DaveLs Solution To Federicos Revolve Extrude Problem}
      units mm
      attr set {_GLOBAL}
      put {main.r} comb region yes tree {- {- {- {- {l main.c} {l cut01.c}} {l cut02.c}} {l cut03.c}} {l cut04.c}}
      attr set {main.r} {region} {R} {region_id} {1000} {material_id} {1} {los} {100}
      put {main.c} comb region no tree {- {l cyl01.s} {l cyl02.s}}
      put {cyl09.s} tgc V {0 0 -1000} H {0 0 100} A {300 0 0} B {0 300 0} C {300 0 0} D {0 300 0}
      put {cyl08.s} tgc V {0 0 -1000} H {0 0 100} A {400 0 0} B {0 400 0} C {400 0 0} D {0 400 0}
      put {cyl07.s} tgc V {0 0 -600} H {0 0 100} A {300 0 0} B {0 300 0} C {300 0 0} D {0 300 0}
      put {cyl06.s} tgc V {0 0 -600} H {0 0 100} A {400 0 0} B {0 400 0} C {400 0 0} D {0 400 0}
      put {cyl05.s} tgc V {0 0 -800} H {0 0 100} A {300 0 0} B {0 300 0} C {300 0 0} D {0 300 0}
      put {cyl04.s} tgc V {0 0 -800} H {0 0 100} A {400 0 0} B {0 400 0} C {400 0 0} D {0 400 0}
      put {cyl03.s} tgc V {0 0 -800} H {0 0 100} A {500 0 0} B {0 500 0} C {500 0 0} D {0 500 0}
      put {cyl02.s} tgc V {0 0 -1000} H {0 0 500} A {200 0 0} B {0 200 0} C {200 0 0} D {0 200 0}
      put {cyl01.s} tgc V {0 0 -1000} H {0 0 500} A {500 0 0} B {0 500 0} C {500 0 0} D {0 500 0}
      put {cut04.c} comb region no tree {- {l cyl08.s} {l cyl09.s}}
      put {cut03.c} comb region no tree {- {l cyl06.s} {l cyl07.s}}
      put {cut02.c} comb region no tree {l cyl05.s}
      put {cut01.c} comb region no tree {- {l cyl03.s} {l cyl04.s}}

       
      • Sean Morrison

        Sean Morrison - 2008-08-22

        Neat!  I think he wanted rounded edges, which would require a few more torii be tossed into the mix but it seems like a fairly simple shape even for CSG implicit primitives.  That said, revolve is already working for shapes that are simple as the one he had in mind -- arcs and straight lines work, arbitrary curves do not.  Course, it's still not vetted for production use just yet, but it's getting pretty darn close.

         
    • EveryNet Federico

      Do you know when could be possible using revolve ?
      Thank you all very much.
      Federico

       
      • Sean Morrison

        Sean Morrison - 2008-10-07

        You could try to motivate pacman87 to work on that for you since he's the guy that implemented the revolve primitive.  That said, without his help, sweeping a sketch along an arc path would be possible but is probably a ways off.  There's nobody actively working on that at the moment that I'm aware of and other developers are all tied up with other projects.

        Your best bet outside of getting pacman87's help is to utilize a different modeling approach for that same shape.  If you have any other developer friends that could help implement this, feel free to encourage them to contribute.   :-)

        Cheers!
        Sean

         
      • Daniel Roßberg

        Daniel Roßberg - 2008-10-07

        I created an example revolve from your shape: http://brlcad.org/~rossberg/revolve.g  You can test the current capabilities of BRL-CAD with this file.

        Daniel

         

Log in to post a comment.