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.

Options

tangent extruded hole fails

david_macmillan98994david_macmillan98994 OS Professional Posts: 6 PRO
This is a followup to a question I posted yesterday about circular patterns of a feature:
https://forum.onshape.com/discussion/6002/circular-pattern-of-a-feature-creates-extra-parts-if-instance-count-exceeds-29
In that question, I had improperly defined my feature (which was supposed to be a small slot on the periphery of a ring) in such a way that I was instead "blind broaching" a square hole two edges of which were tangent to the ring.  That failed.  John McClary spotted the problem, and his solution fixed it (thanks again!)

But on thinking about it, I'm still puzzled as to why Onshape handled it as it did (patterning the misdefined feature correctly 29 times but handling it differently from instance 30 onward).  While the part as I mistakenly defined it originally didn't model what I had wanted to do, it was still a valid piece of geometry.  So this morning I put together a simpler test case.  This just increased my confusion, though, because it appears that I cannot successfully extrude-remove a hole which is tangent to the edge of a disk.  Here is this test model:
https://cad.onshape.com/documents/76e44c6e2ac6de35281a904e/w/05c3d6f07f9509106d4ac2ca/e/2e4cb40ae03e7d81f7296cdb
(Document name: "dmm - test tangent hole")  Look at the first tab, "holes in disk".

In this model I define a simple disk and then try to sketch and extrude four small cylindrical holes:
1. A hole near the edge, but entirely within the disk - this works fine (I get a hole).
2. A hole clearly straddling the edge of the disk - this also works fine (I get a slot on the edge).
3. A hole the sketch for which is tangent to the edge - THIS FAILS to regenerate on the extrude.
4. A hole similar to No. 3, but defined entirely geometrically on a construction line - this also fails to regenerate on the extrude.

Thinking that this might be due to Onshape handling a curved feature such as either the disk or hole as faceted (vs. a theoretical curve), I tried this on a flat plate (look at the second tab in the model, "holes in plate").  But this failed too:  first on a circular hole (extrude-remove) tangent to the edge of a square plate and second on a triangular hole one vertex of which was tangent to the edge.

Is this behavior characteristic of 3-D geometry, or just of Onshape?  After all, I could make these parts in my shop - why can't I model them?

Thanks,
David M.

Best Answer

Answers

  • Options
    david_macmillan98994david_macmillan98994 OS Professional Posts: 6 PRO
    Thanks for the answer.  It makes sense, and it's good to know that this is intended behavior rather than a bug.

    But there are still two things which trouble me.  I think I'm getting into "flogging a dead horse" territory here, so most folks will just want to skip this.  I should also emphasize that I *really* like Onshape, and am offering this only in the spirit of the most constructive criticism.

    First, going back to my original faulty example, graduating a dial:
    https://cad.onshape.com/documents/58c4dba75d5a5d0f770a6a23/w/769aa3905589201d5761985f/e/870b274737de26a6d5a4b751
    the original extrusion created two lines each of which is equivalent to the triangular example here.  Here this failed.  There the extrusion succeeded (but as I now understand it should have failed).  Then (in the original example) I patterned this feature.  It should have failed from the start (because the feature should have failed), but instead succeeded first in one way (for 29 instances) and then in another way (from instance 30 on).  Depending on how you look at it, there are between one and three bugs here.  Consistency in failure is important.

    Second, and more theoretically, let's say that for some crazy reason I really did want to define a part with holes just as close to the edge as I could make them.  Not a sensible part, I know, but certainly a comprehensible one.  Doing this the old-fashioned way on paper, I'd draw the circles representing the holes as tangent to the edge of the part, and then call out whatever tolerances I might determine to make this part buildable.  My "model" (the 2-d paper drawing) would represent Euclidean perfection, and reality would enter in via the dimensioning and tolerancing.  The same would be true of any other aspect of this part.  I can never really make a 2" disk, but I model it as perfect and tolerance it for the real world.

    But to do this in a system where the underlying geometrical engine prohibits this means that to model it I must introduce some tiny little offset in the model itself to make this modelable, and then tolerance the drawing I make out of this model in some way (which may or may not be the same as the offset in the model).  So the disk and the hole in it are modeled in two completely different ways:  the disk is modeled as theoretically perfect, while the hole must be modeled by taking into account some kind of deliberate imperfection.

    The part of me which was trained as a programmer dislikes finding situations where there was something I could have done trivially on paper which I cannot do at all on the computer.

    But this is a boundary condition that probably isn't worth spending any time on.  Time instead to get back to modeling a 40 year old mechanical inch/metric conversion dial that is completely obsolete in this age of the DRO.

    Regards,
    David M.
  • Options
    john_mcclaryjohn_mcclary Member, Developers Posts: 3,902 PRO
    edited March 2017
    I played with your model, I changed the sketch constraints a bit. I made the top line tangent to the outer diameter. And I've gotten 200+ graduations without a bug.

    https://cad.onshape.com/documents/58c5da1bf3b7fe0f7f18d852/w/156fea49672cf1619110145a/e/8fbd7753999c6d6550b51855

    Perhaps it has something to do with floating point precision errors? Maybe using tangent would guarantee higher accuracy in a circle?
    Wild guesses into the back door of the system. But my be a start.



    Second note: I'm not sure what your finial design intent is. But you can save yourself a step by using the cylinder face as the axis of rotation. Rather than sketching a center line. When I first started, I used the face as the center and it fixed it for the 36 graduations you had. but failed again around 100. Maybe there is precision loss between sketches as well..


  • Options
    david_macmillan98994david_macmillan98994 OS Professional Posts: 6 PRO
    Thanks for the tip - I wouldn't have thought of using the face.
    As to the design intent, here's a composite photograph of the object I'm modeling.  It's a handwheel dial from a 1970s vintage Colchester lathe (in this case the dial on the compound slide).  I'm looking to build a model for the purposes of illustrating it (vs. building it), as it's just clever enough that it is hard to describe its operation (it does inch/metric conversion such that full rotations of each dial work out to reasonable numbers in either system, though dial and handwheel rotations correspond only in the inch system).  So showing the graduations is important because it gives a visual sign of the function of each of the dial rings.  The top two views show it in each of the two systems (you rotate a ring to make visible or mask one system or the other); the bottom view shows the dial cartridge partially disassembled.


Sign In or Register to comment.