hexagon logo

Constructed Width Error

I am measuring two planes PLN3 and PLN4, both in Z+. I would like to create a constructed width. I create a reverse plane from my top plane so it has normal Z-. Below it I have a plane with normal Z+. Constructed Width - 3D - In tells me "Math failed. Make sure that the areas of the inputs overlap." Any ideas?

PLN3       =FEAT/PLANE,CARTESIAN,TRIANGLE
            THEO/<0.0077,3.6373,-0.4381>,<0,0,1>
            ACTL/<0.0077,3.6373,-0.4381>,<0,0,1>
            MEAS/PLANE,12
              HIT/BASIC,NORMAL,<0.7345,2.8009,-0.4393>,<0,0,1>,<0.7345,2.8009,-0.4393>,USE THEO=YES
              HIT/BASIC,NORMAL,<1.1372,3.1103,-0.4394>,<0,0,1>,<1.1372,3.1103,-0.4394>,USE THEO=YES
              HIT/BASIC,NORMAL,<0.8622,3.3907,-0.4389>,<0,0,1>,<0.8622,3.3907,-0.4389>,USE THEO=YES
              HIT/BASIC,NORMAL,<0.8744,3.8481,-0.439>,<0,0,1>,<0.8744,3.8481,-0.439>,USE THEO=YES
              HIT/BASIC,NORMAL,<1.1022,4.2159,-0.4393>,<0,0,1>,<1.1022,4.2159,-0.4393>,USE THEO=YES
              HIT/BASIC,NORMAL,<0.7284,4.4898,-0.439>,<0,0,1>,<0.7284,4.4898,-0.439>,USE THEO=YES
              MOVE/POINT,NORMAL,<0.7301,4.4901,0.4984>
              MOVE/POINT,NORMAL,<-0.6193,4.4784,0.5005>
              HIT/BASIC,NORMAL,<-0.6868,4.4312,-0.4385>,<0,0,1>,<-0.6868,4.4312,-0.4385>,USE THEO=YES
              HIT/BASIC,NORMAL,<-1.0599,4.351,-0.4382>,<0,0,1>,<-1.0599,4.351,-0.4382>,USE THEO=YES
              HIT/BASIC,NORMAL,<-0.9681,3.7784,-0.4381>,<0,0,1>,<-0.9681,3.7784,-0.4381>,USE THEO=YES
              HIT/BASIC,NORMAL,<-0.8811,3.429,-0.4355>,<0,0,1>,<-0.8811,3.429,-0.4355>,USE THEO=YES
              HIT/BASIC,NORMAL,<-1.0716,3.0342,-0.4355>,<0,0,1>,<-1.0716,3.0342,-0.4355>,USE THEO=YES
              HIT/BASIC,NORMAL,<-0.6783,2.7679,-0.4362>,<0,0,1>,<-0.6783,2.7679,-0.4362>,USE THEO=YES
            ENDMEAS/
            MOVE/POINT,NORMAL,<-0.6767,2.7682,0.4246>
PLN4       =FEAT/PLANE,CARTESIAN,TRIANGLE
            THEO/<0.0229,3.6141,0>,<0,0,1>
            ACTL/<0.0229,3.6141,0>,<0,0,1>
            MEAS/PLANE,8
              HIT/BASIC,NORMAL,<-0.3579,3.0653,0>,<0,0,1>,<-0.3579,3.0653,0>,USE THEO=YES
              HIT/BASIC,NORMAL,<-0.6069,3.6415,0>,<0,0,1>,<-0.6069,3.6415,0>,USE THEO=YES
              HIT/BASIC,NORMAL,<-0.4311,4.0664,0>,<0,0,1>,<-0.4311,4.0664,0>,USE THEO=YES
              HIT/BASIC,NORMAL,<0.0132,4.2275,0>,<0,0,1>,<0.0132,4.2275,0>,USE THEO=YES
              HIT/BASIC,NORMAL,<0.4672,4.042,0>,<0,0,1>,<0.4672,4.042,0>,USE THEO=YES
              HIT/BASIC,NORMAL,<0.6088,3.666,0>,<0,0,1>,<0.6088,3.666,0>,USE THEO=YES
              HIT/BASIC,NORMAL,<0.4477,3.1581,0>,<0,0,1>,<0.4477,3.1581,0>,USE THEO=YES
              HIT/BASIC,NORMAL,<0.0425,3.0458,0>,<0,0,1>,<0.0425,3.0458,0>,USE THEO=YES
            ENDMEAS/
PLN5       =FEAT/PLANE,CARTESIAN,TRIANGLE,NO
            THEO/<0.0229,3.6141,0>,<0,0,-1>
            ACTL/<0.0229,3.6141,0>,<0,0,-1>
            CONSTR/PLANE,REV,PLN4

  • As already has been said, a WIDTH can only be constructed from opposing planes, containing hits. The idea from Sora5 is interesting, and might work, but you risk getting the position of the width wrong if you use BFRE in the construction. Also, I have noted problems now and the when mixing 'real hits' and 'constructed hits' in the same construction command.
  • Construct Width won't work on anything that doesn't contain points such as construct reverse plane. You can try to do a workaround by constructing generic points and plugging in the xyzijk of your leveling plane but add in a *-1 on the vector to flip it then construct plane using those generic points. This will allow the construct width feature to work.

    DISCLAIMER: I actually haven't done any live testing of the above method. Haven't had the need. Only tried it in an offline theoretical situation. So triple check your results!


    The Idea from Sora5 is interesting indeed. Creating generic points and tying them to the actuals of the measured points and mathing the vectors. Have any of you ever tried this ? Will a width work with planes constructed from generic points like this ? do those count as "measured" points ?

    How would one efficiently do this with scan data ? I can think of a way with reference variables and a loop, but that seems tedious. Can anyone think of more elegant method of accomplishing this task ?
  • Since this comment was written, have you any more experience with mixing measured and constructed points in constructions? Did it just not work, and if so, why do you think that is?
  • I know this is a super old thread but I have found a way that works pretty well actually two different ways,

    1.)Take your plane that you want to reverse the vector points and construct plane out of it use num.hits then manually change the vector and update actual, then construct the width from this and the lets say top plane.

    2.) same thing take the plane you want to reverse the vector on and point cloud this feature then construct plane out of that point cloud, then manually flip the vector and update actual this works also


    PLN1 =FEAT/CONTACT/PLANE/DEFAULT,CARTESIAN,TRIANGLE,LEAST_SQR
    THEO/<-2.7325,-1.507,-0.03>,<0,0,1>
    ACTL/<-2.7325,-1.507,-0.03>,<0,0,1>
    TARG/<-2.7325,-1.507,-0.03>,<0,0,1>
    ANGLE VEC=<1,0,0>,SQUARE
    SHOW FEATURE PARAMETERS=NO
    SHOW CONTACT PARAMETERS=NO

    PLN2 =FEAT/CONTACT/PLANE/DEFAULT,CARTESIAN,TRIANGLE,LEAST_SQR
    THEO/<-3.5873,-1.7536,-3.375>,<0,0,1>
    ACTL/<-3.5873,-1.7536,-3.375>,<0,0,1>
    TARG/<-3.5873,-1.7536,-3.375>,<0,0,1>
    ANGLE VEC=<1,0,0>,SQUARE
    SHOW FEATURE PARAMETERS=NO
    SHOW CONTACT PARAMETERS=NO

    PLN4 =FEAT/PLANE,CARTESIAN,TRIANGLE,YES,LEAST_SQR
    THEO/<-3.5873,-1.7536,-3.375>,<0,0,-1>
    ACTL/<-3.5873,-1.7536,-3.375>,<0,0,-1>
    CONSTR/PLANE,BF,PLN2.HIT[1..PLN2.NUMHITS],,
    OUTLIER_REMOVAL/OFF,3
    FILTER/OFF,WAVELENGTH=0

    COP1 =COP/DATA,TOTAL SIZE=9,REDUCED SIZE=9,
    FINDNOMS=NO,REF=PLN2,,

    PLN3 =FEAT/PLANE,CARTESIAN,TRIANGLE,YES,LEAST_SQR
    THEO/<-3.5873,-1.7536,-3.375>,<0,0,-1>
    ACTL/<-3.5873,-1.7536,-3.375>,<0,0,-1>
    CONSTR/PLANE,BF,COP1,,
    OUTLIER_REMOVAL/OFF,3
    FILTER/OFF,WAVELENGTH=0

    WIDTH1 =FEAT/WIDTH,CARTESIAN,OUT,LEAST_SQR,NO
    THEO/<-3.1599,-1.6303,-1.7025>,<0,0,-1>,3.345
    MEAS/<-3.1599,-1.6303,-1.7025>,<0,0,-1>,3.345
    CONSTR/WIDTH,BF,PLN1,PLN3

    WIDTH2 =FEAT/WIDTH,CARTESIAN,OUT,LEAST_SQR,NO
    THEO/<-3.1599,-1.6303,-1.7025>,<0,0,-1>,3.345
    MEAS/<-3.1599,-1.6303,-1.7025>,<0,0,-1>,3.345
    CONSTR/WIDTH,BF,PLN1,PLN4​