Inventor HSM 2016 Post Processor documentation

Inventor HSM 2016 Post Processor documentation

ubunibme
Enthusiast Enthusiast
1,999 Views
8 Replies
Message 1 of 9

Inventor HSM 2016 Post Processor documentation

ubunibme
Enthusiast
Enthusiast
I'm in the process of writing a PP for the Tormach SlantPRO, which is a simple XZ, single spindle lathe.
A couple of questions:

1) Is there any documentation for some of the background objects, such as 'machineConfiguration', or the 'operations' collection, or tool properties?

2) Is there a source level debugging environment available?
0 Likes
2,000 Views
8 Replies
Replies (8)
Message 2 of 9

Laurens-3DTechDraw
Mentor
Mentor
I wrote up some info on editing a post processor here: https://camforum.autodesk.com/index.php?topic=6138.msg24305#msg24305

Laurens Wijnschenk
3DTechDraw

AutoDesk CAM user & Post editor.
René for Legend.


0 Likes
Message 3 of 9

ubunibme
Enthusiast
Enthusiast
I read that documentation, it's more of a tutorial on the event structure and doesn't give any detail of the inner objects. What I've done in other PPs is write a header in the output gcode, that lists tools and ops under that tool, plus the amount of time the op takes and the minimum Z level that is reached. I'm in a situation where I do a lot CAD/CAM and setups for short run, and find this header to be a good reality check. I'll try to enumerate the properties and see what's there.
0 Likes
Message 4 of 9

Laurens-3DTechDraw
Mentor
Mentor
adamvs99 wrote:

I read that documentation, it's more of a tutorial on the event structure and doesn't give any detail of the inner objects. What I've done in other PPs is write a header in the output gcode, that lists tools and ops under that tool, plus the amount of time the op takes and the minimum Z level that is reached. I'm in a situation where I do a lot CAD/CAM and setups for short run, and find this header to be a good reality check. I'll try to enumerate the properties and see what's there.


In the help file that is included with that post you can find all the actions you can call. I'm not sure what else you might need. Also have a look at the setup sheet post processors since they already output everything you want.

Laurens Wijnschenk
3DTechDraw

AutoDesk CAM user & Post editor.
René for Legend.


0 Likes
Message 5 of 9

ArjanDijk
Advisor
Advisor
Also have a look at the setup sheet postprocessor. You see a good example where all this data is outputted.

Inventor HSM and Fusion 360 CAM trainer and postprocessor builder in the Netherlands and Belgium.


0 Likes
Message 6 of 9

Laurens-3DTechDraw
Mentor
Mentor
Arjan wrote:

Also have a look at the setup sheet postprocessor. You see a good example where all this data is outputted.

That's what I said above.  8)

Laurens Wijnschenk
3DTechDraw

AutoDesk CAM user & Post editor.
René for Legend.


0 Likes
Message 7 of 9

ubunibme
Enthusiast
Enthusiast
Laurens, thanks for the tip .. looks good. Your help file however, comes up in a help browser just fine, but none of info is displayable in the pane to the right. Can you post a new one? Or is that file available with the HSM Inventor download?
Also: The Tormach lathe uses a convention for G96 as thus: G96 S70 D1000 M3, where 'S' is the CSS value and 'D' is the max RPM. What is the property for the setting: 'op'/Tool/Feed & Speed/Maximum Spindle Speed?
0 Likes
Message 8 of 9

ubunibme
Enthusiast
Enthusiast
Ignore that last question .. got it!
0 Likes
Message 9 of 9

ubunibme
Enthusiast
Enthusiast
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.
This is called from on open and lists the tool sequence with the underlying ops per tool with the minimum Z and cycle times.

// formats the tool line in the header to display min Z and CycleTime
function entryFixup( entry, minZ, ct ) {
    ct += 0.5;
    var d = new Date(1899, 11, 31, 0, 0, ct, 0);
    var zCol = 42;
    var ctCol = 60;
   
    if ( entry.length < zCol ) {
        for( var i = entry.length; i < zCol; ++i ) {
            entry += " ";
        }
    }
    entry += "Z : " +  zFormat.format( minZ )
    if ( entry.length < ctCol ) {
        for( var i = entry.length; i < ctCol; ++i ) {
            entry += " ";
        }
    }
    entry +=  "CT: " +
                timeFormat.format( d.getHours( ) ) + ":" +
                timeFormat.format( d.getMinutes( ) ) + ":" +
                timeFormat.format( d.getSeconds( ) );
    return entry;
}

/** writes the tool and op info. */
function writeToolInfo() {
    var result = [];
    var lastToolIndex;
    var _maxZ = 1000000;
    var minimumZ;
    var cycleTime;
    var tn_;
    var numberOfSections = getNumberOfSections();
   
   
    for (var i = 0; i < numberOfSections; ++i) {
        var section = getSection(i);

        // the next tool is up...
        if (section.getTool().number != tn_) {
            // fix up the last tool entry...on the first iteration tn_ will be empty
            if (tn_) {
                result[ lastToolIndex ] = entryFixup( result[ lastToolIndex ], minimumZ, cycleTime );
            }
            cycleTime = 0;
            minimumZ = _maxZ;
            tn_ = section.getTool().number;
            lastToolIndex = result.length;
            result.push( new String( "-- tool: " + tn_ + " " + section.getTool().vendor + " " + section.getTool().description ) );
        }

        if ( is3D( ) ) {
            minimumZ = Math.min(minimumZ, section.getGlobalZRange().getMinimum());
        }
        cycleTime += section.getCycleTime();

//      if (properties.rapidFeed > 0) {
//          cycleTime += rapidDistance/properties.rapidFeed * 60;
//      }
       
        result.push( new String( "          op: " +  section.getParameter( "operation-comment" ) ) );
    }
    if ( result.length > 0 ) {
        result[ lastToolIndex ] = entryFixup( result[ lastToolIndex ], minimumZ, cycleTime );
    }
    writeComment("Tool / Op list ...................................................")
    for (var i = 0; i < result.length; ++i )
        writeComment( result );
}


output looks something like this...


; Tool / Op list ...................................................
; -- tool: 2  SVJBR12-3B                    Z : -0.02        CT: 00:00:25
;          op: face part
; -- tool: 20  #3 Center drill              Z : -0.1258      CT: 00:00:03
;          op: center drill
; -- tool: 2  SVJBR12-3B                    Z : -1.9743      CT: 00:06:12
;          op: diameter roughing
;          op: rear roughing
;          op: finish profile
; -- tool: 15 Dorian Slot Grip              Z : -1.858        CT: 00:00:10
;          op: part-off

I find this useful .. maybe someone else will
0 Likes