Skip to main content

What does "Unknown sketch plane" mean?[solved]



  • Jacant

    It seems to me that you need to put the [radius] inside the 'Square Brackets'. you will then have another box with the parameters.

  • Me Here

    The reference diameter is 100mm. ie 100 teeth module 1.

    The calculation that derives the required offset  for the involute, and the start & end values for t, are distinctly non-trivial. Here is the javascript version (with an error -- the start value should not always (or possibly ever) be set to zero.)

    function Calculate()

    var nModule = Number(document.forms['calc'].module.value);
    var nPressureAngle = Number(document.forms['calc'].pressureangle.value);
    var nTeeth = Number(document.forms['calc'].teeth.value);
    var fProfileShift = Number(document.forms['calc'].shift.value);

    var nRefDiameter = nModule * nTeeth;
    var fBaseDiameter = nRefDiameter * Math.cos( nPressureAngle * Math.PI / 180 );
    var fBaseRadius = fBaseDiameter / 2;
    var fTipDiameter = nRefDiameter + 2 * nModule * (1 + fProfileShift);
    var fTipRadius = fTipDiameter / 2;
    var fTipPressureAngle = Math.acos(fBaseDiameter / fTipDiameter) * 180 / Math.PI;
    var fInvAlpha = Math.tan(nPressureAngle * Math.PI / 180) - nPressureAngle * Math.PI / 180;
    var fInvAlphaA = Math.tan(fTipPressureAngle * Math.PI / 180) - fTipPressureAngle * Math.PI / 180;
    var fTopThickness = Math.PI / (2 * nTeeth) + (2 * fProfileShift * Math.tan(nPressureAngle * Math.PI / 180)) / nTeeth + fInvAlpha - fInvAlphaA;
    var fTopThicknessDegrees = fTopThickness * 180 / Math.PI;
    var fCrestWidth = fTipDiameter * fTopThickness;

    document.forms['calc'].refdiameter.value = nRefDiameter;
    document.forms['calc'].basediameter.value = fBaseDiameter.toFixed(4);
    document.forms['calc'].baseradius.value = fBaseRadius.toFixed(4);
    document.forms['calc'].tipdiameter.value = fTipDiameter;

    document.forms['calc'].xuv.value = fBaseRadius.toFixed(4) + " * (cos(u) + u * sin(u))";
    document.forms['calc'].yuv.value = fBaseRadius.toFixed(4) + " * (sin(u) - u * cos(u))";
    document.forms['calc'].zuv.value = "0";

    document.forms['calc'].umin.value = "0";
    document.forms['calc'].umax.value = Math.sqrt( fTipRadius * fTipRadius / fBaseRadius / fBaseRadius - 1).toFixed(4); // sqrt( R^2/r^2 - 1)
    document.forms['calc'].ustep.value = "10";

    // V is not used
    document.forms['calc'].vmin.value = "0";
    document.forms['calc'].vmax.value = "0";
    document.forms['calc'].vstep.value = "1";

    // Calculate angular tooth width along the base diameter.
    var x1, x2, y1, y2;
    var umax = Math.sqrt( fTipRadius * fTipRadius / fBaseRadius / fBaseRadius - 1);
    x1 = fBaseRadius;
    y1 = 0;
    x2 = fBaseRadius * ( Math.cos( umax ) + umax * Math.sin( umax ) );
    y2 = fBaseRadius * ( Math.sin( umax ) - umax * Math.cos( umax ) );

    // distance between beginning and end of the involute curve
    var d = Math.sqrt( ( x1 - x2 ) * ( x1 - x2 ) + ( y1 - y2 ) * ( y1 - y2 ) );
    var cosx = (fBaseRadius * fBaseRadius + fTipRadius * fTipRadius - d * d) / 2 / fBaseRadius / fTipRadius;

    var basetooththickness = 2 * fTopThicknessDegrees + 2 * Math.acos(cosx) * 180 / Math.PI;
    document.forms['calc'].basetooththickness.value = basetooththickness.toFixed( 4 );

    As equations cannot have local variables, I'm struggling to see how to fit all this into a single equation.

    If I did, the parameters would be: Z=no of teeth, M=module; P=pressure angle; and Xm=profile shift.

    And even then, it would only produce one side of one tooth; everything else would need to be done manually.

    Far easier to write a python script to create the entire gear (pair) in Blender and the export it to STEP. for import.

  • Jacant


    Selecting the involute shows the start is at 0.0003

    Far easier to write a python script to create the entire gear (pair) in Blender and the export it to STEP. for import

    Even easier to use Freecad

  • Me Here

    Yes. That's the error I mentioned above " (with an error -- the start value should not always (or possibly ever) be set to zero.)".

    Also, the freecad generated profiles are not the best. Try downloading/converting the dxf using 'fine' resolution, generated by this site: https:// 

  • Jacant

    I don't know if you are aware of this site. The link is for a 'bevel' gear, many more to choose from.

    This also has the option of showing the 'Python' script' 

    It was very straight forward creating the gear in DSM. A very smooth face compared with the parameters from the other site. However it needs a fillet on the inside of the teeth otherwise the 'Surface' will not 'Pull' I did a 3 point circle selecting both curves and typed in 0.75. 

  • Me Here

    Yes. That's where the javascript originates from. Unfortunately his code has bugs, including the start value bug. His problem is that he is generating the involute starting all the way  from the Base circle when it should start at the Dedendum circle.

    I was in contact with him a few months ago (Feb 2020) and I pointed out that when I used his generated values (and video method) to create a 100Tx1 gear in Blender, that the valleys were way too deep, his response was

    This looks pretty cool. Did you test the gears in rigid body physics engine for compatibility?

    The teeth do look pretty deep and I think it's because there are so many of them (100), our calculator is not very good at creating nicely looking outlines when there are so many gears. You can manually modify the areas between the teeth, though. Make them more flat than round.

    O.T. Vinta

    Which is when I went looking for something more accurate.

    A very smooth face compared with the parameters from the other site.

    That's because the equation generates a spline rather than the 45 straight line segements per face (9000+ in total) that you end up with when you convert DXF to STEP and then import.

    I get around that by loading the STEP, and then tracing over a single tooth profile using two splines for the flanks and lines for the tip and root, then discarding the STEP, and Pattern the tooth myself. It only takes a minute or so to do, and it greatly speeds up all subsequent operations as each tooth consists of 4 curve segments rather than 90+. The results are also nice and smooth:

    I'm also skeptical of the accuracy of the involute otvinta generates. I the following image the slected surface is from the me-bac site, the two lines are Equation generated using the values from otvitna:

    If you rotate the mirrored involute by the amount calculated it looks as if the tooth is the right width, but is offset from the grid:

    It was very straight forward creating the gear in DSM.

    It's simple enough for straight cut gears. (Accurate) Helical gears are somewhat more complicated.

    Bevel gear pairs are much, much morecomplicated See my last post in this thread from a year ago: for the gory details.

    The trouble with this stuff is not just finding the information on line, but understanding it enough to recognise what is good and what not. The depth of the teeth on the 100T stands out like a sore thumb, but because the Addendum/Dedendum are sized in terms of the module -- not the diameter -- with smaller gears the error is not obvious at all.

    The downside of the me-bac site is that it generates gears one at a time, which means that whilst it can apply profile shifting, and even tells you the maximium and minimum shifts allowed for any gear it generates, it cannot tell you if profile shifting is required.

    The otvitna calculator does pairs of gears and detects if the is an overlap between the two (see the red text warning)

    It tells you to "apply a positive shift", but it doesn't tell you how much, nor to which of the two it should be applied. It also doesn't mention that if you apply a positive shift to one, you have to apply the corresponding negative shift to the other.

    Looking at the code, I'm also not sure how accurate it detection method is.

    And that bring me back to roughly where I had got to before v2 stopped working. That forced me to chase AMD so that I could finally start making real use of my "new" (its nearly 2 years old now") machine; and thus install something later than v2. I went to get v4 and discovered v5 had been released in my absence from this place.

    This thread started because I (as mentioned elsewhere) am forcing myself to use v5 for a week (or maybe longer) to see if I can rekindle the joy. It is definitely a nicer place to be than Blender or freecad, but is does have distinct limitations compared to those other two.

    1. Scriptability; (albeit in Python :)
    2. Interoperability; courtesy of a pletherer of profession standard import and export options.
    3. They won't stop working or force me to upgrade if I decide to stick with what I know.

    As my 'big project' involves generating and testing (FEA) many sets of bevel gears, of different tooth number combinations and face cone angles to determine the best combinations, finding a way to automate their accurate generation, and then being able to upload the assemblies (to parasolid format) without loosing accuracy in the conversion process is key to success.



Please sign in to leave a comment.