cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Community Tip - Visit the PTCooler (the community lounge) to get to know your fellow community members and check out some of Dale's Friday Humor posts! X

G-Post FIL Help

JasonPensack
7-Bedrock

G-Post FIL Help

After many years of dealing with minor edits to my G-Code, I am trying to put some final touches on my Posts. Does anyone have any ideas on how to get the posts to for out both the X and Y moves after it calls out the Work Offset? We have had issues with changing work offsets but the actual X or Y number is the same as the previous offset. This usual happens when we are running multiples of the same part.

I am also trying to come up with a way to have the post retract every time there is a rotation (both on 3+2 trunnions and on Horizontals). We currently manually put a Go Delta move in at the last toolpath before an index but depending on where the CSYS is for the next work offset the Post processor sometimes uses Retract Logic instead of Approach Logic. Which causes the Z to move into the part before the tombstone rotates. I am thinking that I would like the post to output a G0G90G53Z0. before every rotation but I want to make sure that it knows after the rotation where it is positioned.

Any ideas are greatly appreciated...

Thanks!


This thread is inactive and closed by the PTC Community Management Team. If you would like to provide a reply and re-open this thread, please notify the moderator and reference the thread. You may also use "Start a topic" button to ask a new question. Please be sure to include what version of the PTC product you are using so another community member knowledgeable about your version may be able to assist.
13 REPLIES 13

You can catch an offset setting and process it to add other things via something like the following:

$$

$$ This is my code to output the G54 to G59 that is valid for our machines.

$$

CIMFIL/ ON, SET, OFSETL

  OFSTYP = POSTF ( 6, 5 )

  OFSREG = POSTF ( 7, 5 )

  IF ( OFSTYP .EQ. 1 ) THEN

    IF ( OFSREG.GE.54.AND.OFSREG.LE.59.AND.CURREG.NE.OFSREG ) THEN

      CURREG = OFSREG

      OFSCMD = TEXT/ 'G', CONVI, OFSREG, 2, '$'

      INSERT/ OFSCMD

    ENDIF

  ENDIF

CIMFIL/ OFF

You could add some other "INSRT/" statements to put, for example, a G00 motion. Unfortunately, I can't seem to find any POSTF register that keeps track of the current X, Y, and Z coordinates (plus B and C, I suppose if you're on a higher degree-of-freedom machine). But if, like me, you handle every "GOTO", you could have a variable that stores the last X, Y, and Z that were seen. So you could then use those stored values to write a G00 or G01 or whatever to the output.

You could do something similar, I suppose, if there is a specific FIL code that is in the CL file to signal a rotation. I do something like this for tool changes (bring the machine home, orient the spindle, then get the tool and for safety, an optional stop, etc.)

Insert a retract line as Kenneth advised then read ahead to get your next move values and create lines for the next move. We handle B values for indexing in the w/o register and a spherical clearance zone for 5axis. This is part of what I use for verticals and horizontals-

    DMY=POSTF(15,0,1)  $$SAVE POINTER LOCATION AND SEE WHAT HAPPENS AFTER W/O CHANGE
    DO/RAH2,RH2=1,10,1
    RH2=1   $$RESET LOOP VAR
    DMY=POSTF(14)  $$GET NEXT RECORD
    TPSRCH=POSTF(7,2)  $$GET 2ND WORD
    GTSRCH=POSTF(7,3)  $$GET 3RD WORD
    IF (TPSRCH.EQ.14000.OR.GTSRCH.EQ.(ICODEF(LOADTL)))THEN    $$END LOOP AT FINI-LOADTL                

     RH2=11
    ENDIF
    IF (TPSRCH.EQ.5000)THEN     $$VERIFY AND CREATE NEXT XYZ MOVES AND END LOOP
     XPOS=POSTF(7,6)
     YPOS=POSTF(7,7)
     ZPOS=POSTF(7,8)
     PREFUN/0,NEXT       $$MOVE TO NEXT X Y
     POSTN/OUT,X,XPOS,Y,YPOS
     REPEAT/Z,G,43
     REPEAT/Z,H,TLADJ                $$PICK UP TOOL L OFFSET - TLADJ IS SET AT LOADTL
     POSTN/OUT,Z,ZPOS   $$MOVE TO NEXT Z
     RH2=11
    ENDIF
    RAH2)CONTIN
    DMY=POSTF(15,0,2)

Josh

That's some good looking FIL code Josh.  You must have been paying attention in the G-Post class. 

Fred

Fred that's the nicest thing anyone has said to me all day!

Josh,

When using the spherical clearance zone, how do you remove all of the unnecessary moves that it makes when indexing? I've tried playing with the Tolerance but I still get a couple of extra X,Y,A,&B moves mixed in.

Thanks!

Haven't had a chance to figure that out yet (just starting to program for the 5-axis). But it eliminated over-travels and simulated well enough I was confident of not crashing - at the expense of extra and jerky movements.

I don't know if there is a way to fix this in creo but if I come up with a post solution I will add it here.

Josh

You can set the Tool Axis Vector Tolerance in the post Option File.  It is on the Machine Tool Type -> Types, Specs & Axes -> Specs tab in the lower right corner.  I would start with .0001 in the IJK Toolaxis Tolerance and see what that does for you.

Fred

Jason was referring to clearance moves around the part-machine volume. Using the strategy mentioned above, Creo will create a minimum number of points to move to and remain clear of the established  zone. Example, for a 90deg A rotation, 2-3 intermediate seemed to be typical.  Does the Tool Axis Vector Setting affect this?

Josh

The vector tolerance in the post would not affect move like this as they are fairly large.  It is meant to skip very small rotary moves.

Fred

Here's a sample where the part was faced at A0C0 and is indexing to A-90C0 :

N14G0Z14.4675

N15X6.6029Y-8.3624A-44.904

N16Z11.9361

N17X6.1271Y-13.5225A-89.904

N18Z5.9666

N19X6.125Y-13.5286A-90.

N20Z5.955

So instead of a smooth transition around the part you get kind of a jerky movement, runs fine otherwise though. I am just getting familiar with this machine - variaxis - so it may just be reclamping or something else causing it. 

Joshua,

you can eliminate unwanted jerky A-axis movements by setting value of the TOLERANCE (in Operation Clearance tab) to a very high value, e.g. to 2500.

This value (estimated) depends on the dimension of the cylindrical retract surface.

Then, you can see only one tool transition movement, in toolpath simulation and subsequently in the NC program.

Rostislav

Rostislav,

No matter how high I set the tolerance I still can not get rid of the last 2 intermediate motions.

Capture.PNG

Capture2.PNG

******* EDIT ......... I just noticed that you said cylinder in your comment so I tried it and it worked like you had said. The only issue for me is that I can control my B-Axis rotations using that but not my A-Axis or vice versa but not both at the same time. Why can't sphere work like cylinder in regards to the tolerance?!?!!? Just like everything else in CREO - hasn't changed since WildFire 2 *******

Ken / Josh,

Thank you for the information... I will try these methods as soon as I can!

Announcements


Top Tags