Welcome to the Onshape forum! Ask questions and join in the discussions about everything Onshape.

First time visiting? Here are some places to start:
  1. Looking for a certain topic? Check out the categories filter or use Search (upper right).
  2. Need support? Ask a question to our Community Support category.
  3. Please submit support tickets for bugs but you can request improvements in the Product Feedback category.
  4. Be respectful, on topic and if you see a problem, Flag it.

If you would like to contact our Community Manager personally, feel free to send a private message or an email.


Is there a way to sweep an object through space while performing a boolean?

kenn_sebesta167kenn_sebesta167 Member Posts: 53 ✭✭
edited January 21 in Using Onshape
I'm having fun trying to design a scroll pump and realize that the easiest way to do this would be to design one half of the scroll pump, i.e. a thickened spiral, and then to constrain that spiral to the desired mechanical movement in an assembly and *then* to use that movement to carve out the material from the other side.

From what I've learned so far, it looks like the general optimal shape for a scroll pump of infinitely thin walls might be (is?) an involute spiral, but the wall thickness forces a deviation from the optimal math, and furthermore the part near the center output port is not described by an involute.

So I figure it's worth doing a numerically optimal way.

Is there a straightforward way to do this with OnShape? (That is to say: create a solid, define a motion for that solid, and then cut anything contacting the moving solid so that the space swept by the solid is clear.)

The best I can think of so far is to manually do this as an assembly in context, but that seems extremely high effort for a relatively low resolution. I'm hoping there's a better way.

(For reference, here's a video of a scroll compressor. Imagine the moving scroll carving out from the fixed scroll side, almost like a broach.)


  • Options
    Konst_ShKonst_Sh Member Posts: 42 PRO
    I guess you don't need something like tool sweep for this. If I'm not wrong you can model stator and rotor profile as spiral and equidistant curve to that spiral. In this example I'm using curve pattern of the spiral curve around circle trajectory with constant orientation to simulate its eccentric oscillation, you can see that the equidistant profile is the envelope of this motion, so this should work for you.

  • Options
    kenn_sebesta167kenn_sebesta167 Member Posts: 53 ✭✭
    edited January 28
    @Konst_Sh, thanks for your input on how to make a variant, I'll look into it. It's neat how you approached the problem, but I think it's similar to how I approached it. (I built a cone, used a helix on the cone surface, and then projected the helix onto 2D, which you did much more simply with the curve generator!) In both cases, it seems to fail at the center, and care has to be taken with the non-zero width of the scroll wall. You can see this very clearly in your model at about 12-o'clock on the last turn, when the constant-width gap starts necking down, tapering to 0-width at about the 4-o'clock position, right when it reaches the yellow disc.

    However, let me point out that this is not an XY question: I am not looking for a solution to the specific scroll pump problem, but instead for a general solution of how to move a tool through space and perform a boolean with all places the tool contacts. This is broadly useful for resolving collisions between moving parts. It would solve the above problem as well as many more I can imagine.

    P.S. Wow, looking at your feature scripts. Thanks so much for taking the time to get involved in this question, your page is awesome! I can definitely see how I could use your path pattern tool to come really close to accomplishing the goal, the only challenge that remains is to have a smooth CAD surface  instead of the discretized visual surface described by the instances.
  • Options
    Konst_ShKonst_Sh Member Posts: 42 PRO
    I had also been interested in this topic - envelope generation for relative motion of tool body around the workpiece, and made some features for certain cases. But I found that each time it is pretty exploratory process, and there is no generic solution - either the performance or the quality of the result will require certain optimization or simplification of your model.
    Generally there are two steps here:
    1. Define the motion of tool
    2. Generate the envelope using number of tool instances in their spatial positions

    Here are the feature that I made for this:
    Syncro rotator - just Idea checker and a basic example for something more useful:
    Envelope feature - mostly use it for gears generation, works pretty good for that purpose:
    Body sweep - the most generic approach to that problem, but not for every shape of the tool.
Sign In or Register to comment.