THCAD-10 + hypertherm 45 (nonXP)

More
8 years 5 months ago #110395 by bjames28
I have exactly the same situation with SheetCam and the produced g-code.

Attached please find the screenshot, all cuts start at different heights. Attached the relevant sample g-code program and touchoff subroutine.
The issue is, that LinuxCNC "assumes" that each probing with G38.2 Z-30 needs to go maximum depth of 30 machine units (mm in my case) therefore sooner or later, depending on your machine setup the Z height will be too small to accommodate all those probings.

This topic was raised on this forum, and other ones too, but I could not find any solution.

Please Log in to join the conversation.

More
8 years 5 months ago #110407 by islander261
Guys

I am running what I consider to be an Alpha prototype system to run my table, read not yet ready for production use. I am using a THCAD card to measure the arc voltage for torch height control. Look in the general section for Grotius's thread about the external offsets branch and you will find a description of my system. The other day I cut out 3 sheets of parts with 487 pierces per sheet and had none of the problems you are describing. I do have problems ( look in the Gmoccapy section) with the Gremlin preview screen but not what you are describing. I have to fish for the next 3 days and then weekend markets so I can't go into this in depth until this time next week. I will post example of working (but very complex to deal with my system) gcode with probing subroutine. I am surprised by how well it is apparently working at this point. I am sure there are bugs in there I just haven't found the right set of conditions yet. I will get together a simplified version of my probing code without all of the error checking and retries that will be much simpler to understand.

John

Please Log in to join the conversation.

More
8 years 5 months ago #110471 by andypugh

bjames28 wrote: I have exactly the same situation with SheetCam and the produced g-code.


You could try asking on the emc-users mailing list. The SheetCAM developer is subscribed to that (or was in January)

(That's the LinuxCNC mailing list, it still uses the old name). You can find the subscription information from the "Community" link on the main LinuxCNC web site. ( www.linuxcnc.org , link at the top of this page)

Please Log in to join the conversation.

More
8 years 5 months ago #110482 by islander261
Guys

SheetCam questions are usually dealt with promptly by Les (the SheetCam developer) on the SheetCam Forum. I know most of the questions there are focused on Mach3 and the CandCNC user base but with CommandCNC growing I am sure he is watch LinuxCNC users now.

John

Please Log in to join the conversation.

More
8 years 5 months ago #110483 by rodw
I have to agree with John. I have not had any problems either.

Why don't you comment out the part in your touch off that turns on the machine torch and waits for arcok and write a loop that calls it from the one X,Y position say 100 times and see if you run into problems. If you don't, it isn't a probing problem.

Please Log in to join the conversation.

More
8 years 5 months ago #110490 by islander261
Guys

Actually I think the problem is related to to the part origin and how you are setting the Z zero when probing . I just don't have time to look into it this week. There are a couple of significant differences between how I do the touch off and how you are doing it. More details to follow the beginning of next week. If your problem is following error (FERROR) at the end of the cut then you really need to consider using the external offsets branch and tracking the Z position inside the motion component ( there is a real kludgey solution that I have figured out but haven't tested that is very similar to how this is handled in CommandCNC with external THC hardware if you don't want to use the external offsets branch).Think about how you handle machine and part positions on a milling machine (LCNC likes milling machines not plasma cutters).

John.

Please Log in to join the conversation.

More
8 years 5 months ago #110493 by bjames28
Hello

Thanks all for the reply, I will raise this issue on SheetCam forum for sure.

@islander261: I agree with you, this should be more about how the probing is done and how the absolute& relative coordinates are put together. I just couldn't find out what exact line(s) of code should be written in different way. I'v reviewed and tried at least five touchoff routines posted on forums, but none of them seemed to solve the issue.

Please Log in to join the conversation.

More
8 years 5 months ago #110560 by islander261
Guys

Here is what I am doing. First I use two coordinate systems. The machine coordinates set against homing switches at startup and second the work piece set as G54 offsets. In the mainline Gcode I move the torch to what I call the W height from what it is called on my mill, I think the more universal term is safe Z. Then I call my probe_sheet3 sub routine. Next is a simplified version without all of the error checking and retries.
Code:
o<simple_sub> sub M64 P0 (enable probing power supply, relay) F#<probe_rate> G38.3 Z-[#<probe_dist>] ( probe down to material surface) G91 G01 Z-.005 ( push down a little to insure good contact, float switch provides compliance) G90 M66 P3 L0 Q0 (check for source of probing signal, contact or float switch) o106 if[#5399 EQ 1] (probe was triggered by z-min so we need to add switch offset) #<probe_source_flag> = 1 o106 else #<probe_source_flag> = 0 o106 endif F [#<probe_rate>/16] G38.5 Z1 (raise torch until contact is lost) o107 if [#<probe_source_flag> EQ 1] o108 if[EXISTS[#<_ini[axis_z]float_sw_offset>]] G92 Z -[#<_ini[axis_z]float_sw_offset>] o108 else G92 Z -.06 o108 endif o107 else (set part Z 0) G92 Z 0.0000 o107 endif M65 P0 (disable plate sensing) o<simple_sub> endsub

I then take care of moving to pierce height and firing the torch in the mainline Gcode. I hope this helps with the probing problems. The attached file does have unexplainable (to me) problems displaying in Gremlin preview. The o<endcut> subroutine does nothing at this point, it is just a place holder left over from an external THC or not using the external offsets branch. I have cut several sheets out using this code so I know it works.

The attached Gcode file produces copyrighted parts so please respect my IP, it is how I eat. I am providing it as an example to the community of a complex file that works.

I will post the SheetCam PP that produced this code later when I am on my design machine.

John

Please Log in to join the conversation.

More
8 years 5 months ago #110562 by islander261
Guys

Please find attached the SheetCam PP that produced the previous G code example. This is a work in progress so it will change.

John

Please Log in to join the conversation.

More
8 years 5 months ago #110571 by bjames28
Hi John,

Many thanks for the files you provided.
I went to the shop and quickly loaded the files to my plasma computer.

It worked!! (after some small tweaking, see my comments below). Now all cuts are on the same height level. Excellent. I had no time to analyze what do you do different, but in the evening Ill spend time on it.

I also installed the PP you sent.

There is one "inconsistency" with the multipleif..then..else nesting which originates from PP, and this caused an error when I wanted to load your gcode file to LinuxCNC. I found that one extra o010 else

Please find below the relevant part of gcode with added indents for better readability:
Code:
o020 if[ #<_firstTime> EQ 1 ] o010 if[ EXISTS[#<_hal[plasma_tab.use_control_params]>]] o011 if[#<_hal[plasma_tab.use_control_params]> EQ 1] o012 if[ EXISTS[#<_hal[plasma_tab.g0-gap]>]] #<_g0-gap> = #<_hal[plasma_tab.g0-gap]> o012 else #<_g0-gap> = 20.000 o012 endif o013 if[ EXISTS[#<_hal[plasma_tab.pierce-gap]>]] #<_pierce-gap> = #<_hal[plasma_tab.pierce-gap]> o013 else #<_pierce-gap> = 8.000 o013 endif o014 if[ EXISTS[#<_hal[plasma_tab.cut-gap]>]] #<_cut-gap> = #<_hal[plasma_tab.cut-gap]> o014 else #<_cut-gap> = 6.000 o014 endif o015 if[ EXISTS[#<_hal[plasma_tab.pierce-delay]>]] #<_pierce-delay> = #<_hal[plasma_tab.pierce-delay]> o015 else #<_pierce-delay> = 1.000 o015 endif o016 if[ EXISTS[#<_hal[plasma_tab.w-gap]>]] #<_w-gap> = #<_hal[plasma_tab.w-gap]> o016 else #<_w-gap> = 10.000 o016 endif ( __SUSPICIOUS extra line:__o010 else ) o011 else (Use values from SheetCam Below) #<_g0-gap> = 20.000 #<_pierce-gap> = 8.000 #<_cut-gap> = 6.000 #<_pierce-delay> = 1.000 #<_w-gap> = 10.000 o011 endif o010 endif #<_firstTime> = 0 o020 endif

I marked SUSPICIOUS the extra line.

I needed to create an empty endcut subroute, because there was a reference in your code. I don't know what is the purpose of this sub in your setup.

When I commented out the line 774 in PP file, the code is loadable without errors.

Thanks you very much for your help!

Regards
Janos

Please Log in to join the conversation.

Time to create page: 0.062 seconds
Powered by Kunena Forum