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.

Sketch > Linear Pattern - Distribute, Relative Spacing, Add Elements, Mirroring

karl_mochelkarl_mochel Member Posts: 38 ✭✭
- Distribute where user sets a number of objects and a total distance along which objects will be distributed. Have needed of 3 of the 5 projects I've created so far.
- Relative spacing - instead of distance from start, distance between element groups.
- Add Elements - ability to add elements to LP after pattern is created. Having to destroy a pattern and recreate is extremely painful.
- Mirroring - every other element group flipped so you can build symmetrical repeating patterns easily

I'd build it myself in FS but Sketch's don't allow FS...

Comments

  • steve_shubinsteve_shubin Member Posts: 1,066 ✭✭✭✭
    @karl_mochel

    I don't know if this is the best wording, but with Onshape, a person would typically try to keep the sketches more on the lean side, and rather, do at least some of what you are asking for, on the modeling side of the program.

    The folks here in the forum are quite a helpful group. If you were to post the URL to your document, or if you simply posted a picture or hand drawn sketch of what it is that you are trying to make, well you may end up with a number of folk, showing various ways to approach your project. Doing so could save you a lot of time in getting up to speed with the program

  • karl_mochelkarl_mochel Member Posts: 38 ✭✭
    Watched it, but don't think it works because while you can change the pattern number if the sketch elements are attached via constraints (vs independent like holes) it can't cope with updating constraints.
  • karl_mochelkarl_mochel Member Posts: 38 ✭✭
    @karl_mochel

    I don't know if this is the best wording, but with Onshape, a person would typically try to keep the sketches more on the lean side, and rather, do at least some of what you are asking for, on the modeling side of the program.

    The folks here in the forum are quite a helpful group. If you were to post the URL to your document, or if you simply posted a picture or hand drawn sketch of what it is that you are trying to make, well you may end up with a number of folk, showing various ways to approach your project. Doing so could save you a lot of time in getting up to speed with the program

    Thanks Steve, I appreciate that about the commmunity.

    Here is the design: https://cad.onshape.com/documents/aa2d86bd4dd4b1f47d7d872c/w/cd62c457ab8d264ec0015982/e/cd2576df1958a319f2f36b3a?renderMode=0&uiState=627474c483af625d01090371

    I am trying to create a different Rear Curve from the Front Curve but using the same spacing from the Mid Curve_ConLines sketch.

    I am trying to keep the sketches on the lean side - that's why I have a sketch which is my construction lines and others that have the sketch entities. To make sketches reusable.

    While I might be able to do mirroring by modeling I don't want to have to leave the sketch, do modeling, create a new sketch and use the results. If I can build what I need in a single sketch I'd prefer that, as it is a more streamlined workflow. 
  • steve_shubinsteve_shubin Member Posts: 1,066 ✭✭✭✭
    edited May 2022
    @karl_mochel



    https://cad.onshape.com/documents/34ec367f90737f8e8dffdb5b/w/ea43db7393518974cb5f9425/e/ab17fef133563d3a260ff455

    So I took a look at your document. Here’s what I’m seeing

    The way the troughs and the berms or ridges of your sketches were laid out — meant that I was probably going to have to make a Y shaped trough to get your basic sketches to work. That is — to get the water to drain out

    In essence your front and your rear sketches were inversions of one another

    On your plan, you wanted the wide troughs to be at the low point. And you wanted the narrow troughs to be at the High Point. Problem is, they just weren’t in line with each other.

    So I came up with a design where all of the troughs were in line front to back. And we’re all the berms or ridges were in line

    But I believe I kept one of the core concepts of your design. And that was — to have wider ridges at one end  — and to have wider troughs at the other end

    Now as far as the sketches you have — well to me that was a time-consuming way to go about it. Because it’s easier to modify a small sketch where the following feature will usually automatically update by itself, rather the change one curve in a sketch and then have to redo that pattern within the sketch manually

    Myself, I try to avoid patterns within sketches if I can. I’d much rather do patterning within the features, that is, within the 3-D part of the program. It’s a whole lot easier to modify later on. And you can instantly see the results if you click on the little FINAL button within your dialog boxes

    Also note the extra steps made to make sure that all the low points for the troughs, were the same distance from the bottom of the part, that is, where the trough met one of the vertical sides. It certainly took some extra steps to make that happen


  • steve_shubinsteve_shubin Member Posts: 1,066 ✭✭✭✭
    edited May 2022
    @karl_mochel

    What does FEATURE patterning allow you to do ?

    Look at the three GIFs below, and then the four pictures, then scroll down to the bottom where you could read the text

    https://cad.onshape.com/documents/479e7ba8380e638d788f081f/w/cd1ad8a1f32c6c7a4e8996ac/e/2b2c8b62db81e7110468b5d3















    I’ve made a soap dish more like what you modeled so far. And mind you, it can be adjusted to be exactly what you have

    Observe the two main sketches

    There’s not a whole lot to them. There is NO patterning within the sketches

    Patterning within sketches does not allow me to experiment and QUICKLY try different scenarios

    Since my patterning was done within the features or the 3-D side of the program, I can get instant visual feedback once I edit or change a number.

    The way this document is set up, is that everything can be adjusted and should be adjusted FROM WITHIN THE VARIABLES. Because Sketch 2 in particular, well everything in that is a variable plugged into one of the dimensions. And you don’t want to alter what has been entered into those dimensions, within that sketch. Anything you see within Sketch 2, and the dimension you see within Sketch 1, should be modified from within the variables in the feature list

    here’s what the variables do —

    #diagonal - will change the overall size of the part. Once you alter this, go down the features list to where you see #side and that will give you the length of one of the sides

    #top - gives you the distance from the uphill trough, to the top of the part

    #bottom - gives you the distance from the downhill trough to the bottom of the part

    #wave - gives you the wave length that you see in Sketch 2. That is, the width of that curve you see in Sketch 2

    #upridge - gives you the width of the ridge or how pointed the ridge is, at the uphill side of the part

    #uptrough - gives you the width of the trough at the uphill side of the part

    #dnridge - gives you the width of the ridge at the downhill side of the part

    #dntrough - gives you the width of the trough at the downhill side of the part

    You can go into any of these items within the features list and change them to some figure that’s within reason. If you use too big of a number, it’s gonna blow out the part. Things will fall apart

    In this document, the number of instances of the pattern, will adjust automatically depending upon the size of the part that you set using #diagonal, or depending upon the size of the wave that you set using #wave, to where the wave will NOT run off the left or the right edge. In other words, you’re always going to get full size waves in each instance of the pattern

    I should make a note here ——

    In Onshape, I’m assuming that rounding works in the following manner …

    @Evan_Reese gave me the floor() and ceil() functions below and I plugged floor() into the above document

    I also added an additional variable for the overall thickness of the part, that being #thick


  • Evan_ReeseEvan_Reese Member Posts: 2,060 PRO
    @steve_shubin
    I still don't understand how you're that good on mobile 🤯.

    I don't have enough time to really dig into this one, but wanted to drop a few things that may or may not help:

    the round() function will just round to the closest value and I think you're right that 0.5 rounds up. You can also use ceil() to always round up or floor() to always round down if that's handy.

    Since we're looking at patterning and controlling the spacing have a look at my Linear Pattern Plus feature, which I wrote to solve some of the challenges with distributing instances that are present in the standard tool (assuming I'm understanding the issues right). https://ovyl.onshape.com/documents/1196579d97167d7a348652a9/w/90798a0a9e5fb98821d253c4/e/3e9783cad47053c2abb99ce0


    Evan Reese / Principal and Industrial Designer with Ovyl
    Website: ovyl.io
  • steve_shubinsteve_shubin Member Posts: 1,066 ✭✭✭✭
    edited May 2022
    @Evan_Reese

    Evan — thank you, thank you, thank you for the help about rounding. I had no idea if there was or wasn’t such functions as ceil() or floor()

    And I will study your Linear Pattern Plus

    Thanks again. Your help is very much appreciated


  • steve_shubinsteve_shubin Member Posts: 1,066 ✭✭✭✭
    edited May 2022
    @karl_mochel

    @Evan_Reese

    Karl, there’s a video that you can access when you go to Evans Linear Pattern Plus tool. You should look at this video. I believe this is going to take care of a lot of what you were looking for in your original post above

    https://m.youtube.com/watch?v=tQbTv60SVL4&feature=youtu.be

    Evan, that was a great presentation !!


  • karl_mochelkarl_mochel Member Posts: 38 ✭✭
    @steve_shubin
    I still don't understand how you're that good on mobile 🤯.

    I don't have enough time to really dig into this one, but wanted to drop a few things that may or may not help:

    the round() function will just round to the closest value and I think you're right that 0.5 rounds up. You can also use ceil() to always round up or floor() to always round down if that's handy.

    Since we're looking at patterning and controlling the spacing have a look at my Linear Pattern Plus feature, which I wrote to solve some of the challenges with distributing instances that are present in the standard tool (assuming I'm understanding the issues right). https://ovyl.onshape.com/documents/1196579d97167d7a348652a9/w/90798a0a9e5fb98821d253c4/e/3e9783cad47053c2abb99ce0


    I can't seem to get to that link. It looks like its on a dif instance of Onshape - ie Ovyl...so my login does not work.
  • karl_mochelkarl_mochel Member Posts: 38 ✭✭
    @karl_mochel

    What does FEATURE patterning allow you to do ?

    Look at the three GIFs below, and then the four pictures, then scroll down to the bottom where you could read the text

    https://cad.onshape.com/documents/479e7ba8380e638d788f081f/w/cd1ad8a1f32c6c7a4e8996ac/e/2b2c8b62db81e7110468b5d3















    I’ve made a soap dish more like what you modeled so far. And mind you, it can be adjusted to be exactly what you have

    Observe the two main sketches

    There’s not a whole lot to them. There is NO patterning within the sketches

    Patterning within sketches does not allow me to experiment and QUICKLY try different scenarios

    Since my patterning was done within the features or the 3-D side of the program, I can get instant visual feedback once I edit or change a number.

    The way this document is set up, is that everything can be adjusted and should be adjusted FROM WITHIN THE VARIABLES. Because Sketch 2 in particular, well everything in that is a variable plugged into one of the dimensions. And you don’t want to alter what has been entered into those dimensions, within that sketch. Anything you see within Sketch 2, and the dimension you see within Sketch 1, should be modified from within the variables in the feature list

    here’s what the variables do —

    #diagonal - will change the overall size of the part. Once you alter this, go down the features list to where you see #side and that will give you the length of one of the sides

    #top - gives you the distance from the uphill trough, to the top of the part

    #bottom - gives you the distance from the downhill trough to the bottom of the part

    #wave - gives you the wave length that you see in Sketch 2. That is, the width of that curve you see in Sketch 2

    #upridge - gives you the width of the ridge or how pointed the ridge is, at the uphill side of the part

    #uptrough - gives you the width of the trough at the uphill side of the part

    #dnridge - gives you the width of the ridge at the downhill side of the part

    #dntrough - gives you the width of the trough at the downhill side of the part

    You can go into any of these items within the features list and change them to some figure that’s within reason. If you use too big of a number, it’s gonna blow out the part. Things will fall apart

    In this document, the number of instances of the pattern, will adjust automatically depending upon the size of the part that you set using #diagonal, or depending upon the size of the wave that you set using #wave, to where the wave will NOT run off the left or the right edge. In other words, you’re always going to get full size waves in each instance of the pattern

    I should make a note here ——

    In Onshape, I’m assuming that rounding works in the following manner …

    @Evan_Reese gave me the floor() and ceil() functions below and I plugged floor() into the above document

    I also added an additional variable for the overall thickness of the part, that being #thick



    @steve_shubin
    I still don't understand how you're that good on mobile 🤯.

    I don't have enough time to really dig into this one, but wanted to drop a few things that may or may not help:

    the round() function will just round to the closest value and I think you're right that 0.5 rounds up. You can also use ceil() to always round up or floor() to always round down if that's handy.

    Since we're looking at patterning and controlling the spacing have a look at my Linear Pattern Plus feature, which I wrote to solve some of the challenges with distributing instances that are present in the standard tool (assuming I'm understanding the issues right). https://ovyl.onshape.com/documents/1196579d97167d7a348652a9/w/90798a0a9e5fb98821d253c4/e/3e9783cad47053c2abb99ce0


    I will try this. Will take a while to figure out...but thanks for so much explanation.
  • karl_mochelkarl_mochel Member Posts: 38 ✭✭
    So...I did get what I wanted manually. 

    I will now try to replicate using @steve_shubin's feature patterning method. 

    I love Evan's Linear Patterning update. Really helps me a lot.

    Thank you all for great suggestions and help.

    - Karl


  • steve_shubinsteve_shubin Member Posts: 1,066 ✭✭✭✭
    edited May 2022
    @karl_mochel

    https://cad.onshape.com/documents/065906ede14e5470393b0725/w/5e7a3425e42c24a697855953/e/76458943607f1641e179d008

    I viewed a more recent version of your soapdish a few days back. I see that you’ve got it down to a handful of features, which is great

    If you’re pretty settled on this design and don’t think you’re going to be doing much in the way of modification, then that’s a great way to go

    On the other hand, if you do think you’re going to be tweaking this a bit, then here is a document showing how to get the same results as you have now, and also allowing you to modify it quickly in many ways.

    There are nine variables at the start of the features list that allow for a lot of quick experimentation

    You can quickly end up with a number of different designs within the same document by duplicating Part Studio 1 or 2, and then modifying the variables of each duplicate with different settings 

    A few thoughts on your current design

    I wouldn’t make the troughs too narrow. Because I’m guessing you’re going to mount this in a corner of the shower to where it’s probably going to be glued to the tile. As such, it’s going to take a little bit to get the soap residue out of those narrow grooves. Myself, I probably wouldn’t make those grooves any narrower than about a half an inch from peak to peak. And even in that case, you’ll probably have to use something like a toothbrush to get in there to clean those grooves or troughs out when residue builds up. Making those grooves too narrow is just going to make it harder to get a brush in there

    Also, the far right and the far left troughs, I probably would eliminate those. They are ‘too different looking’ compared to the other troughs. And they really don’t serve a purpose as you’re never going to get soap into the far right or far left corners. Look at Part Studio 1 in the above document

    When looking at the ridges of your model from overhead and from the very front, the ridges closest to the front give the appearance of being wider than the ridges in the back where the troughs are highest. So that’s something you might want to play with.

    Lastly, when mirroring, I wouldn’t mirror the feature but rather I would mirror the part. Because if you notice, the mirrored half on the left now has lines along each of the ridges. Now these lines probably won’t matter (I would think) if this thing is 3-D printed. But there really is no reason to have those when you can simply mirror the part instead of the feature. But to do that, you’re going to start with a part that is triangular shaped, upon which you make your grooves on the right side. And then you’ll mirror that whole extruded triangular part to the left


  • karl_mochelkarl_mochel Member Posts: 38 ✭✭
    @karl_mochel

    https://cad.onshape.com/documents/065906ede14e5470393b0725/w/5e7a3425e42c24a697855953/e/76458943607f1641e179d008

    I viewed a more recent version of your soapdish a few days back. I see that you’ve got it down to a handful of features, which is great

    If you’re pretty settled on this design and don’t think you’re going to be doing much in the way of modification, then that’s a great way to go

    On the other hand, if you do think you’re going to be tweaking this a bit, then here is a document showing how to get the same results as you have now, and also allowing you to modify it quickly in many ways.

    There are nine variables at the start of the features list that allow for a lot of quick experimentation

    You can quickly end up with a number of different designs within the same document by duplicating Part Studio 1 or 2, and then modifying the variables of each duplicate with different settings 

    A few thoughts on your current design

    I wouldn’t make the troughs too narrow. Because I’m guessing you’re going to mount this in a corner of the shower to where it’s probably going to be glued to the tile. As such, it’s going to take a little bit to get the soap residue out of those narrow grooves. Myself, I probably wouldn’t make those grooves any narrower than about a half an inch from peak to peak. And even in that case, you’ll probably have to use something like a toothbrush to get in there to clean those grooves or troughs out when residue builds up. Making those grooves too narrow is just going to make it harder to get a brush in there

    Also, the far right and the far left troughs, I probably would eliminate those. They are ‘too different looking’ compared to the other troughs. And they really don’t serve a purpose as you’re never going to get soap into the far right or far left corners. Look at Part Studio 1 in the above document

    When looking at the ridges of your model from overhead and from the very front, the ridges closest to the front give the appearance of being wider than the ridges in the back where the troughs are highest. So that’s something you might want to play with.

    Lastly, when mirroring, I wouldn’t mirror the feature but rather I would mirror the part. Because if you notice, the mirrored half on the left now has lines along each of the ridges. Now these lines probably won’t matter (I would think) if this thing is 3-D printed. But there really is no reason to have those when you can simply mirror the part instead of the feature. But to do that, you’re going to start with a part that is triangular shaped, upon which you make your grooves on the right side. And then you’ll mirror that whole extruded triangular part to the left


    Thank you for the example file (have made my own instance to learn from) and all of the tips.
  • karl_mochelkarl_mochel Member Posts: 38 ✭✭
    Had to go through and name the features so I could understand them.

  • steve_shubinsteve_shubin Member Posts: 1,066 ✭✭✭✭
    Had to go through and name the features so I could understand them.


    Good idea !!

Sign In or Register to comment.