Hello Guest it is March 29, 2024, 02:50:33 AM

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Jeff_Birt

1
On motor tuning for spindle:

Steps per = 1000
Velocity = 60
Acceleration = 1000

These are the correct settings for the SmoothStepper, changing these to other settings than this will not help (apart form the acceleration setting). The Acceleration setting of 1 will give you a very long acceleration on the spindle speed. I would also suggest setting the minimum pulley speed setting to zero. When it is not zero Mach can do some strange scaling the PWM output. Your VFD is set to a minimum speed of 1500 anyhow.

When you are monitoring the square wave signal sent form the SmoothStepper to the G540 first try S9000. This should provide a 50% duty cycle square wave. If you then enter S18000 you should have a 100% duty cycle (flat line), entering an S0 would give you a flat line of other polarity. If you get the correct duty cycle at the DB25 pin of the plug connecting to the G540 then the fault is with the G540 itself.

2
Mach4 General Discussion / Re: Selectivly show toolpaths from subs
« on: December 08, 2016, 10:26:27 AM »
Using block skip/delete was the trick.

The GCode looks like below. The subroutines called have the sections of engraving code that is used in different combinations on different products. This works really slick and the GCode that needs to be written to support different products is trivial.

Code: [Select]
( Tony Pass, 500TS Engraving )
( T1 : 0.025 )
G20 G90 G91.1 G64 G40
( Start at tool change height)
G0 Z4.0
T1 M6
G17
M101 (Check if just starting)
( Engrave Position 1 )
/1 M98 P1000 (Tony Pass)
/1 M5
/1 G0 Z4.0
/1 M102
( Engrave Position 2 )
/2 M98 P1001 (500TS)
/2 M5
/2 G0 Z4.0
/2 M199 (Reset Block Skip)
(Done)
M30

There are three types of macros used. The first, M101, sets things up for the first pass through the code. that is, if it is the first pass through the code it sets the block skip levels to indicate that and prompts the user to locate the part at position 1 (Block skip 0 is cleared as a flag and clearing Block skip level 1 enable the first block of code) . The user would need to position the part, click OK and then click Start.

Code: [Select]
-- If this is the frist pass through the GCode,
-- prompt user to insert part at position 1
-- uses block skip/delete level 0 for first pass flag
function m101()
    local inst=mc.mcGetInstance();
    local val, rc = mc.mcCntlGetBlockDelete(inst, 0);
    if ( val == 1) then
        mc.mcCntlSetBlockDelete(inst, 0, false);
        mc.mcCntlSetBlockDelete(inst, 1, false);
    --mc.mcCntlSetBlockDelete(inst, 2, true);
    --mc.mcCntlSetBlockDelete(inst, 3, true);
    --mc.mcCntlSetBlockDelete(inst, 4, true);
    --mc.mcCntlSetBlockDelete(inst, 5, true);
    --mc.mcCntlSetBlockDelete(inst, 6, true);
    --mc.mcCntlSetBlockDelete(inst, 7, true);
    --mc.mcCntlSetBlockDelete(inst, 8, true);
    --mc.mcCntlSetBlockDelete(inst, 9, true);
        wx.wxMessageBox("Position 1, Press Start");
        mc.mcCntlCycleStop(inst);
        mc.mcCntlRewindFile(inst);
        mc.mcToolPathGenerate(inst);
    end
    --wx.wxMessageBox("M101 Skip");
end

if (mc.mcInEditor() == 1) then
    m101()
end

The next type of macro is the 'Rotate to position #n'
Code: [Select]
-- Prompts user to place part as position 2
function m102()
    local inst=mc.mcGetInstance();
    --mc.mcCntlSetBlockDelete(inst, 0, false);
    mc.mcCntlSetBlockDelete(inst, 1, true);
    mc.mcCntlSetBlockDelete(inst, 2, false);
    --mc.mcCntlSetBlockDelete(inst, 3, true);
    --mc.mcCntlSetBlockDelete(inst, 4, true);
    --mc.mcCntlSetBlockDelete(inst, 5, true);
    --mc.mcCntlSetBlockDelete(inst, 6, true);
    --mc.mcCntlSetBlockDelete(inst, 7, true);
    --mc.mcCntlSetBlockDelete(inst, 8, true);
    --mc.mcCntlSetBlockDelete(inst, 9, true);

    wx.wxMessageBox("Position 2, Press Start");
    mc.mcCntlCycleStop(inst);
    mc.mcCntlRewindFile(inst);
    mc.mcToolPathGenerate(inst);
end

if (mc.mcInEditor() == 1) then
    m102()
end

When done M199 is called to clean things up
Code: [Select]
-- Part remove prompt, reset block skip/delete
function m199()
    local inst=mc.mcGetInstance();
    local val, rc = mc.mcCntlGetBlockDelete(inst, 0);
    if ( val == 0) then
        wx.wxMessageBox("Part done, Remove!");
    end
   
    mc.mcCntlSetBlockDelete(inst, 0, true);
    mc.mcCntlSetBlockDelete(inst, 1, true);
    mc.mcCntlSetBlockDelete(inst, 2, true);
    mc.mcCntlSetBlockDelete(inst, 3, true);
    mc.mcCntlSetBlockDelete(inst, 4, true);
    mc.mcCntlSetBlockDelete(inst, 5, true);
    mc.mcCntlSetBlockDelete(inst, 6, true);
    mc.mcCntlSetBlockDelete(inst, 7, true);
    mc.mcCntlSetBlockDelete(inst, 8, true);
    mc.mcCntlSetBlockDelete(inst, 9, true);

    mc.mcCntlCycleStop(inst);
    mc.mcCntlRewindFile(inst);
    mc.mcToolPathGenerate(inst);
end

if (mc.mcInEditor() == 1) then
    m199()
end

3
Mach4 General Discussion / Re: Selectivly show toolpaths from subs
« on: December 07, 2016, 10:55:33 AM »
Or, you could generate the main G code file that calls the subs on the fly.  It would be easy to do in LUA.  Generate a main file and load it with a push button or something.  

Steve

So, maybe an  M code that loads a file, it will be run, then the next M code loads the next file?

That might work, it would let me just use the output from the CAM program directly and just have one  custom M code per file.

I'll give that a whirl. it will be a nice change after spending a few hours trying to fix what happens when you drive your Z axis at full speed down over your tool change carousel :(

4
Mach4 General Discussion / Selectivly show toolpaths from subs
« on: November 30, 2016, 12:28:04 PM »
I have a set of 20 or so subroutines in separate files. I have a custom M code that pops up a message box to reposition a part and then the next subroutine is called. Different products use different combinations of the code in these subroutines to this set up makes it very easy to call what subs are needed for an individual product. This would also allow the code for one subroutine to be updated at some future time without having to rewrite the code for each product.

The gcode for one product might look like:
Code: [Select]
G20 G90 G91.1 G64 G40
( Start at tool change height)
G0 Z4.0
T1 M6
G17
( Engrave Position 1 )
M101
M98 P1000
M5
G0 Z4.0
( Engrave Position 2 )
M101
M98 P1001
M5
G0 Z4.0
(Done)
M30

This set up works well except that the toolpath is generated for the gcode in all subs. The code in each sub is centered around (0,0) as the part is repositioned before each sub is called. This means that all the toolpaths for each sub are drawn over each other which does not hurt anything but looks messy.

I have been looking for a way to selectively show the toolpath for each sub but have not found anything that works.

Any thoughts or ideas? Thanks!

5
Alex can you resend please? I installed a new spam filter due to the large amount of spam I am getting and your email must have gotten caught. Please put MPG in subject line.

6
Promote and discuss your product / About 250 tubes for 1/4' bits
« on: September 24, 2016, 05:15:59 PM »
I have about 250 plastic tubes for 1/4" end mills. You could also use them for holding other small things. You can see pictures on this page: http://www.soigeneris.com/set_of_10_bit_tube__1_4-details.aspx . I want to sell the remaining 250+ tubes for one lump sum to get rid of them so $20 + shipping. To give you an idea of the volume they fill up a USPS large flat rate box which is $18.75 but it might be a few dollars cheaper to not go flat rate. If you are interested send me an email: birt_j@soigeneris.com with your shipping address so I can calculate the shipping cost.

7
Promote and discuss your product / A2Z clearence sale
« on: September 24, 2016, 04:56:57 PM »
I'm sure most have you have read my warning about buying from A2Z from the Yahoo mailing lists. If you have not A2Z changed hands last year and a few months ago the new owner decided to keep taking orders and just not ship products out. He tried to rip me off, I only received about half of hat I ordered but I filed a PayPal dispute and got my money back. If you have ordered form them and not received what you paid for file a dispute with PayPal or your credit card company. I heard form someone else this week who got stung by them as well so I know they are still ripping folks off.

As I can no longer buy A2Z products I am clearing out what I have left. I just did an inventory and updated the website with the stock levels. If you use coupon code A2Z20 when you checkout you will get 20% off A2Z products. This applies to A2Z products only and only those things I have in stock. If there is an issue with something not being in stock I will let you know. www.soigeneris.com

In particular I have two quick change tool posts for the Taig which come with 4 tool holders each and 3-4 other random tool holders. These may be the last ones you will find available so if you have wanted one please don't wait.

8
General Mach Discussion / Re: Hall of shame
« on: May 05, 2016, 09:38:47 AM »
Good rule to live by - if you see a cheap Chinese board on EBay that says it comes with a Mach3 license assume it is a pirated copy.

9
, firewall down, defender,

Do not turn the Windows Firewall off, you want to allow Mach 3 through both public and private networks. If you turn the firewall off Defender might still block it. As Rob says debounce as nothing to do with communications.

10
You can have multiple network adapter on any versions of Windows. What can happen is that the internal routing tables in the PC prevent windows from using the correct adapter. Rebooting the PC will usually fix this but on some occasions you may need to do a 'TCP/IP' reset. I use the built in WiFi to connect to my home network and the Ethernet adapter for the ESS have done this for years.