How to output model box point or origin location to header comments

How to output model box point or origin location to header comments

jackG933P
Contributor Contributor
582 Views
4 Replies
Message 1 of 5

How to output model box point or origin location to header comments

jackG933P
Contributor
Contributor

I would like to out put where the origin is relative to the part in the header comments. For example, the text would read something like "ORIGIN= MODEL BOX POINT LOCATION=BOTTOM LEFT FRONT CORNER". Is there a way to out put this info? The left/right, bottom/top, front/back location would be calculated based on if the X,Z,Y axis was positive towards the part or away from it. 

0 Likes
Accepted solutions (1)
583 Views
4 Replies
Replies (4)
Message 2 of 5

boopathi.sivakumar
Autodesk
Autodesk

Hi @jackG933P 

I think currently we don't have any direct way to get that information via post processing! maybe possible by some calculation on the stock cooridnates and part coordinate


Boopathi Sivakumar
Senior Technology Consultant

0 Likes
Message 3 of 5

thePostmaster
Enthusiast
Enthusiast

Hi @jackG933P 

 

I believe it should be possible to do this. If you are willing to pay a small consulting fee I will happy investigate it for you. You can email me at michael@thepostmaster.co.za. or reply here.

 

Michael 

0 Likes
Message 4 of 5

jackG933P
Contributor
Contributor
Accepted solution
Here is how I did it for those wondering:  
 
var workpiece = getWorkpiece();
  var delta = Vector.diff(workpiece.upper, workpiece.lower);
  writeComment("Stock Size X=" + xyzFormat.format(delta.x) + " Y=" + xyzFormat.format(delta.y) + " Z=" + xyzFormat.format(delta.z));
  writeComment("Approximate Origin Location=" + (Math.abs(workpiece.upper.z)<Math.abs(workpiece.lower.z)?" top":" bottom") + (Math.abs(workpiece.upper.x)>Math.abs(workpiece.lower.x)?" left":" right") + (Math.abs(workpiece.upper.y)>Math.abs(workpiece.lower.y)?" front":" back"));
0 Likes
Message 5 of 5

l.ebertT6379
Contributor
Contributor
 
 
Hello,
this is how I solved it.

    var workpiece = getWorkpiece();
    var delta = Vector.diff(workpiece.upper, workpiece.lower);
    if (delta.isNonZero()) {
      writeBlock("BLK FORM 0.1 Z X" + xyzFormat.format(workpiece.lower.x) + " Y" + xyzFormat.format(workpiece.lower.y) + " Z" + xyzFormat.format(workpiece.lower.z));
      writeBlock("BLK FORM 0.2 X" + xyzFormat.format(workpiece.upper.x) + " Y" + xyzFormat.format(workpiece.upper.y) + " Z" + xyzFormat.format(workpiece.upper.z));
      var xlow = getGlobalParameter("stock-lower-x");
      var xupp = getGlobalParameter("stock-upper-x");
      var ylow = getGlobalParameter("stock-lower-y");
      var yupp = getGlobalParameter("stock-upper-y");
      var zlow = getGlobalParameter("stock-lower-z");
      var zupp = getGlobalParameter("stock-upper-z");
      var pxlow = getGlobalParameter("part-lower-x");
      var pxupp = getGlobalParameter("part-upper-x");
      var pylow = getGlobalParameter("part-lower-y");
      var pyupp = getGlobalParameter("part-upper-y");
      var pzlow = getGlobalParameter("part-lower-z");
      var pzupp = getGlobalParameter("part-upper-z");
      var xmitte = (workpiece.upper.x + workpiece.lower.x  )
      var ymitte = (workpiece.upper.y + workpiece.lower.y )  
 
      writeBlock(";")
      writeBlock(";")
      if(pxlow <0 && pxupp ===0 && pylow <0 && pyupp ===0 || workpiece.upper.y ===0  && pzlow <0  )
       writeStructureComment("NULLPUNKT HINTEN RECHTS OBEN")
     // if(pxlow <0 && pxupp ===0 && pylow <0 && pyupp ===0 && pzlow <0  )
      // writeStructureComment("NULLPUNKT HINTEN RECHTS OBEN")
      if(pxlow <0 && pxupp ===0 && pylow <0 && pyupp ===0 && pzupp >0  )
        writeStructureComment("NULLPUNKT HINTEN RECHTS UNTEN")
      if(pxlow <0 && pxupp ===0 && pylow ===0 && pyupp >0 && pzlow <0  )
        writeStructureComment("NULLPUNKT VORNE RECHTS OBEN")
      if(pxlow <0 && pxupp ===0 && pylow ===0 && pyupp >0 && pzupp >0 )
        writeStructureComment("NULLPUNKT VORNE RECHTS UNTEN")
      if(pxlow ===0 && pxupp >0 && pylow <0 && pyupp ===0 && pzlow <0  )
        writeStructureComment("NULLPUNKT HINTEN LINKS OBEN")
      if(pxlow ===0 && pxupp >0 && pylow <0 && pyupp ===0 && pzupp >0  )
        writeStructureComment("NULLPUNKT HINTEN LINKS UNTEN")
      if(pxlow ===0 && pxupp >0 && pylow ===0 && pyupp >0 && pzlow <0 )
        writeStructureComment("NULLPUNKT VORNE LINKS OBEN")
      if(pxlow ===0 && pxupp >0 && pylow ===0 && pyupp >0 && pzupp >0  )
        writeStructureComment("NULLPUNKT VORNE LINKS UNTEN")
///////////////////////////////////////////////////////////////////////////////////////////////
      if(xmitte ===0  && pylow <0 && pyupp ===0 && pzlow <0  )
         writeStructureComment("NULLPUNKT HINTEN MITTE OBEN")
       if(xmitte ===0  && pylow <0 && pyupp ===0 && pzupp >0  )
         writeStructureComment("NULLPUNKT HINTEN MITTE UNTEN")
       if(xmitte ===0  && pylow ===0 && pyupp >0 && pzlow <0  )
         writeStructureComment("NULLPUNKT VORNE MITTE OBEN")
       if(xmitte ===0  && pylow ===0 && pyupp >0 && pzupp >0 )
         writeStructureComment("NULLPUNKT VORNE MITTE UNTEN")
       if(pxlow ===0 && pxupp >0 && ymitte ==0  && pzlow <0  )
         writeStructureComment("NULLPUNKT LINKS MITTE OBEN")
       if(pxlow ===0 && pxupp >0 && ymitte ==0 && pzupp >0  )
         writeStructureComment("NULLPUNKT LINKS MITTE UNTEN")
       if(pxlow <0 && pxupp ===0 && ymitte ==0 && pzlow <0 )
         writeStructureComment("NULLPUNKT RECHTS MITTE OBEN")
       if(pxlow <0 && pxupp ===0 && ymitte ==0 && pzupp >0  )
         writeStructureComment("NULLPUNKT RECHTS MITTE  UNTEN")
 ///////////////////////////////////////////////////////////////////////////////////////////  
      if(xmitte ===0  && ymitte === 0  && zupp ===0.5 )
        writeStructureComment("NULLPUNKT MITTE OBEN, Z +0.5mm")
      if(xmitte ===0  && ymitte === 0 && pzupp >0 && pzlow ===0 )
        writeStructureComment("NULLPUNKT MITTE UNTEN")
      if(xmitte !=0  && ymitte != 0 && pxlow !=0 && pxupp != 0 && pylow !=0 && pyupp !=0 && zupp !=0.5 )
        writeStructureComment("NULLPUNKT INDIVIDUELL! BITTE PRUEFEN!")
      if(xmitte ===0  && ymitte === 0 && pxlow === xlow && pylow === ylow && zupp ===0  )
        writeStructureComment("KEIN AUFMASS ! NULLPUNKT MITTE OBEN! Z +0mm!")
      writeBlock(";")

writeComment("Fertigteilmasse  "+xOutput.format(pxupp-pxlow)+" , "+yOutput.format(pyupp-pylow)+" , "+zOutput.format(pzupp-pzlow));
writeComment("Rohteilmasse  "+xOutput.format(xupp-xlow)+" , "+yOutput.format(yupp-ylow)+" , "+zOutput.format(zupp-zlow));
 
0 Likes