<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Inventor HSM 2016 Post Processor documentation in HSM Forum</title>
    <link>https://forums.autodesk.com/t5/hsm-forum/inventor-hsm-2016-post-processor-documentation/m-p/6081100#M18000</link>
    <description>Got it. I though I'd share some code to do the listing I was talking about above. Not the best code in the world ( new to JS ), but gets the job done.&lt;BR /&gt;This is called from on open and lists the tool sequence with the underlying ops per tool with the minimum Z and cycle times.&lt;BR /&gt;&lt;BR /&gt;// formats the tool line in the header to display min Z and CycleTime&lt;BR /&gt;function entryFixup( entry, minZ, ct ) {&lt;BR /&gt;&amp;nbsp; &amp;nbsp; ct += 0.5;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; var d = new Date(1899, 11, 31, 0, 0, ct, 0);&lt;BR /&gt;&amp;nbsp; &amp;nbsp; var zCol = 42;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; var ctCol = 60;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &lt;BR /&gt;&amp;nbsp; &amp;nbsp; if ( entry.length &amp;lt; zCol ) {&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for( var i = entry.length; i &amp;lt; zCol; ++i ) {&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; entry += " ";&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;BR /&gt;&amp;nbsp; &amp;nbsp; }&lt;BR /&gt;&amp;nbsp; &amp;nbsp; entry += "Z : " +&amp;nbsp; zFormat.format( minZ )&lt;BR /&gt;&amp;nbsp; &amp;nbsp; if ( entry.length &amp;lt; ctCol ) {&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for( var i = entry.length; i &amp;lt; ctCol; ++i ) {&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; entry += " ";&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;BR /&gt;&amp;nbsp; &amp;nbsp; }&lt;BR /&gt;&amp;nbsp; &amp;nbsp; entry +=&amp;nbsp; "CT: " +&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; timeFormat.format( d.getHours( ) ) + ":" + &lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; timeFormat.format( d.getMinutes( ) ) + ":" +&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; timeFormat.format( d.getSeconds( ) );&lt;BR /&gt;&amp;nbsp; &amp;nbsp; return entry;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;/** writes the tool and op info. */&lt;BR /&gt;function writeToolInfo() {&lt;BR /&gt;&amp;nbsp; &amp;nbsp; var result = [];&lt;BR /&gt;&amp;nbsp; &amp;nbsp; var lastToolIndex;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; var _maxZ = 1000000;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; var minimumZ;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; var cycleTime;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; var tn_;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; var numberOfSections = getNumberOfSections();&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &lt;BR /&gt;&amp;nbsp; &amp;nbsp; &lt;BR /&gt;&amp;nbsp; &amp;nbsp; for (var i = 0; i &amp;lt; numberOfSections; ++i) {&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; var section = getSection(i);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // the next tool is up...&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (section.getTool().number != tn_) {&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // fix up the last tool entry...on the first iteration tn_ will be empty&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (tn_) {&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; result[ lastToolIndex ] = entryFixup( result[ lastToolIndex ], minimumZ, cycleTime );&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; cycleTime = 0;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; minimumZ = _maxZ;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; tn_ = section.getTool().number;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; lastToolIndex = result.length;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; result.push( new String( "-- tool: " + tn_ + " " + section.getTool().vendor + " " + section.getTool().description ) );&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ( is3D( ) ) {&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; minimumZ = Math.min(minimumZ, section.getGlobalZRange().getMinimum());&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; cycleTime += section.getCycleTime();&lt;BR /&gt;&lt;BR /&gt;//&amp;nbsp; &amp;nbsp; &amp;nbsp; if (properties.rapidFeed &amp;gt; 0) {&lt;BR /&gt;//&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; cycleTime += rapidDistance/properties.rapidFeed * 60;&lt;BR /&gt;//&amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; result.push( new String( "&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; op: " +&amp;nbsp; section.getParameter( "operation-comment" ) ) );&lt;BR /&gt;&amp;nbsp; &amp;nbsp; }&lt;BR /&gt;&amp;nbsp; &amp;nbsp; if ( result.length &amp;gt; 0 ) {&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; result[ lastToolIndex ] = entryFixup( result[ lastToolIndex ], minimumZ, cycleTime );&lt;BR /&gt;&amp;nbsp; &amp;nbsp; }&lt;BR /&gt;&amp;nbsp; &amp;nbsp; writeComment("Tool / Op list ...................................................")&lt;BR /&gt;&amp;nbsp; &amp;nbsp; for (var i = 0; i &amp;lt; result.length; ++i )&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; writeComment( result&lt;I&gt; );&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;output looks something like this...&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;; Tool / Op list ...................................................&lt;BR /&gt;; -- tool: 2&amp;nbsp; SVJBR12-3B&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Z : -0.02&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;  CT: 00:00:25&lt;BR /&gt;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;  op: face part&lt;BR /&gt;; -- tool: 20&amp;nbsp; #3 Center drill&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Z : -0.1258&amp;nbsp; &amp;nbsp; &amp;nbsp;  CT: 00:00:03&lt;BR /&gt;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;  op: center drill&lt;BR /&gt;; -- tool: 2&amp;nbsp; SVJBR12-3B&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Z : -1.9743&amp;nbsp; &amp;nbsp; &amp;nbsp;  CT: 00:06:12&lt;BR /&gt;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;  op: diameter roughing&lt;BR /&gt;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;  op: rear roughing&lt;BR /&gt;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;  op: finish profile&lt;BR /&gt;; -- tool: 15 Dorian Slot Grip&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Z : -1.858&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CT: 00:00:10&lt;BR /&gt;;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;  op: part-off&lt;BR /&gt;&lt;BR /&gt;I find this useful .. maybe someone else will&lt;/I&gt;</description>
    <pubDate>Fri, 19 Jun 2015 01:07:54 GMT</pubDate>
    <dc:creator>ubunibme</dc:creator>
    <dc:date>2015-06-19T01:07:54Z</dc:date>
  </channel>
</rss>

