Welcome to the Onshape forum! Ask questions and join in the discussions about everything Onshape.
First time visiting? Here are some places to start:- Looking for a certain topic? Check out the categories filter or use Search (upper right).
- Need support? Ask a question to our Community Support category.
- Please submit support tickets for bugs but you can request improvements in the Product Feedback category.
- 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.
Project/Convert line into point onto perpendicular plane not possible
DavidvanderMeer
Member Posts: 15 ✭✭
Hi all,
I'm trying the apply a seemingly simple concept in my sketches, but have run into a frustrating limitation.
Say I have a horizontal line on Sketch 1, and a line-angle plane onto which I place Sketch 2 parallel (0deg) to Sketch 1. Using the convert edge command on that line in Sketch 1 will give you a line of exactly the same length on sketch 2. So far so good.
Dial in an increasing rotation of the plane with Sketch 2 around a vertical axis, and the projected line gets increasingly shorter. Until you get to 89.999 degrees rotation, so that this sketch is almost perpendicular, and the converted/projected line has become a very tiny line segment, which you can just see if you zoom in far enough.
Now dial in 89.9999 or 90 degrees, and the projected edge fails; external references are missing. So basically, you cannot project a line onto a perpendicular plane and expect it to generate a single point as a result. Looking closer, it seems that the original projected line results in 3 'projected' constraints, one for the line itself and one for each end point of the line, which is perhaps why the perpendicular situation fails? Still, for all the complex shapes that Onshape can handle, a line projected into a point on a perpendicular sketch wouldn't seem all that hard to handle.
I have raised this before through support, and the suggestion was to use the 'pierce' constraint. This can work to an extent, but only works when the line on sketch 1 passes through sketch 2, which often isn't the case for me. I want to use this projected line elsewhere, as a point, to use as a handle to constrain to and build relationships between sketches. (A technique I'm very accustomed to in Inventor)
As a workaround I could use additional construction lines, that do pass through the sketch I require the relationship on (and use pierce constraint then), but this leads to a lot of extra clutter in the sketch.
Easy to fix?
Thanks or reading.
I'm trying the apply a seemingly simple concept in my sketches, but have run into a frustrating limitation.
Say I have a horizontal line on Sketch 1, and a line-angle plane onto which I place Sketch 2 parallel (0deg) to Sketch 1. Using the convert edge command on that line in Sketch 1 will give you a line of exactly the same length on sketch 2. So far so good.
Dial in an increasing rotation of the plane with Sketch 2 around a vertical axis, and the projected line gets increasingly shorter. Until you get to 89.999 degrees rotation, so that this sketch is almost perpendicular, and the converted/projected line has become a very tiny line segment, which you can just see if you zoom in far enough.
Now dial in 89.9999 or 90 degrees, and the projected edge fails; external references are missing. So basically, you cannot project a line onto a perpendicular plane and expect it to generate a single point as a result. Looking closer, it seems that the original projected line results in 3 'projected' constraints, one for the line itself and one for each end point of the line, which is perhaps why the perpendicular situation fails? Still, for all the complex shapes that Onshape can handle, a line projected into a point on a perpendicular sketch wouldn't seem all that hard to handle.
I have raised this before through support, and the suggestion was to use the 'pierce' constraint. This can work to an extent, but only works when the line on sketch 1 passes through sketch 2, which often isn't the case for me. I want to use this projected line elsewhere, as a point, to use as a handle to constrain to and build relationships between sketches. (A technique I'm very accustomed to in Inventor)
As a workaround I could use additional construction lines, that do pass through the sketch I require the relationship on (and use pierce constraint then), but this leads to a lot of extra clutter in the sketch.
Easy to fix?
Thanks or reading.
Tagged:
0
Comments
While I’m definitely a fan of M.C. Escher, I didn’t think this particular scenario would pose an Escher-esque challenge for Onshape’s geometry kernel.
If you draw a horizontal line in Onshape, then rotate your view 90 degrees, you still see a dot where that line used to be. Perhaps someone cheated the system rather defied physics to make this happen, but it would be spectacularly unhelpful if that line would have disappeared from view like you suggest it should have.
In the scenario I described originally, if I were to do that in Inventor, and project the line onto a parallel sketch, it will happily let me rotate that sketch the full 360 degrees, never once complaining about not resolving the projected line. At the 90 deg and 270 deg perpendicular positions, the line renders as a dot, one that remains adaptive to the original line, and one that I can constrain my other sketch elements to.
On the other hand, if I project this line at the perpendicular (90 and 270 deg) position, projecting into a point, then when I rotate the sketch back to the parallel positions, it does not render back into a line; it picked one of the endpoints of the line, but the point will remain a point (but associated to the source); Inventor can’t defy physics all the time I suppose.
So it’s not that it is physically impossible, it’s just that it’s a limitation of how Onshape (and Solidworks) handles this geometry. (projected line = projection of line and its two end points, whereas Inventor just projects a line)
I don’t mean to turn this into a purely academic discussion though, I was basically after a means to connect sketch element between two different sketches. I was applying my Inventor way of thinking to the Onshape environment, which is where I went wrong.
Turns out in Onshape I can pick two points from two different sketches on different planes, and apply a relationship; In Inventor you can only build relationships between points on the same sketch, meaning I would have to first project a point (or any geometry) from my source sketch to my target, before I could define a relationship.
It didn’t even occur to me that Onshape didn’t have this limitation, and went straight to trying to project my line onto my target sketch. I also didn’t realise that the ‘pierce’ constraint doesn’t have to physically intersect my target sketch; it constrains to the virtual intersection, which is enough for my needs.
To still explain my line of thought of what I was trying to achieve, see the concept in this public document, ‘simple concept’. What you see there is what my design would look like in Inventor, except without the construction lines; these represent the lines to be projected into points, points which I would then constrain to. So in Inventor you would see the end-point of that construction line, which would be adaptive to the original projected line. This I then use for new/intersect extrusions to build my geometry.
https://cad.onshape.com/documents/4882498b70392856fef69270/w/4d58d09e687064f4a029f9e2/e/3190f1cca02374ba99d2cba5
In the document ‘pierce constraint’ you can see my desired outcome, this time using the pierce constraint. The rectangle on Sketch 3 is entirely defined through it’s connections to the rectangles on Sketch 1 and Sketch 2.
In the final tab ‘Advanced concept’ I use this method to drive a bit more than just a simple plate.
In any case, I've got my solution, so for now Onshape can continue to not be able to defy physics.
Thanks for reading!
I see where the confusion lies (I couldn't understand why you would modify a plane angle until the line went zero length) - I would have just selected the endpoints (one from your current sketch and one from the other sketch) and used the vertical constraint. Plus, I don't think it's good practice to have your sketches floating in mid-air like that - would be better if the vertices from each sketch were touching, then you could just use the coincident constraint.
Anyway as long as the model works, that's the main thing. You can always put in a "defy physics" enhancement request...