Hello Guest it is April 19, 2024, 07:47:43 PM

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.


Topics - sunmix

Pages: 1 2 »
1
I was about to convert a traditional mill into a Mach3 CNC based Drill, very identical to Mach3's User Manual Cover picture. Although I've been successfully operating a plasma cutter with Mach3, plasma cutter does not require 4 decimal accuracy. So I did a simple test, after each G-Code positioning occurs there will be a M990 macro that saves the current X and current Y axis value.

On the G-code side, ive written:

X4.0000 Y4.0000
M990
X104.0000
M990
X204.0000
M990
X304.0000
M990

With the saved values, they all end up as:
X3.9878 Y3.9879
X103.9878 Y3.9878
X203.9878 Y3.9878
X303.9878 Y3.9878

With positioning error of 0.0122 (4-3.9878), how can I achieve the correct positioning accuracy? Are there any special techniques for configuring Mach3 to achieve 4.0000?

Thank you in advance for guidance.

2
Tangent Corner / Happy New Year 2010!
« on: December 31, 2009, 11:07:35 PM »
Happy new year to all the guests and members of Machsupport forum, and I wish you the best of 2010, where everything will go smoothly throughout the year! :D\

Charles

3
I'm sure many of you have experience this, during a g-code cycle process, be it Plasma, Router, Laser, Mill, or anything, at one point of time the CNC may face into accidental danger, and you may need to E-Stop Mach3.

I'm using steppers for plasma cutting, and everytime I e-stop, a thump at all 3 axis immediately brakes, and when i want to perform a recut, most probably I will not be at the exact stop of where I would like to continue or restart the cutting at.

Any ideas to remove the sudden shock-stop at my motor? thanks.

Charles

4
Hello everyone,

I know that everyone can get the printer port address easily from Device Manager, by reading the top-left hex address.

But there are certain issues with certain PCI printer port cards, where they will randomly change the printer port address.

For example, today the LPT2 is 0fff, so i configured 0fff on Mach3. And it works flawlessly.

But out of random timing, the LPT2 will change to some other hex address, like ec00, or whatever it is.

So i was wondering if Brian can bringing a new approach for setting printer port address:

Mach3 detects the available LPT Cards, eg. LPT1, LPT2, LPT3 and lists them in a combo list box, then the user will just have to select which LPT to use.

Again as i've said, its easy for people to lookup for the hex address relative to the Printer Port Card in Device Manager, but, doing this will simplify the process, and also prevents the problem of random hex addresses from PCI Printer Port Cards.
(Note: I have proven this fact of wasting PCI cards, because I live in an area where unluckly, there are many thunder storms and lightings. The storm travels through the phone line, busts my modem, which is also connect to my computer through a RJ-45 Ethernet Cable. I have already changed more than a dozen of PCI ethernet cards and yet my motherboard is okay.)

I find External PCI Printer Port Cards produce better signals, eg - 5V signals, because embedded printer ports are mostly 3.3V.

Yes, breakout board with optocoupler or buffer will do, but if there is any electronic malfunction, where an current shocks and destroy the motherboard? I feel it better to waste the external PCI printer port card better than wasting a motherboard.

Thanks for reading this post, and I hope you guys will stand up for my request!

Thanks!!!

Regards

Charles

5
Machscreen Screen Designer / How do I edit the VB?
« on: June 26, 2009, 12:27:13 PM »
Yep, but I don't know how to change the VB Scripts. The DRO fonts are kind of fatter then the original. Other then that, perfect!

6
VB and the development of wizards / Problem with Do Until Loop
« on: October 21, 2008, 06:22:47 PM »
Hi guys,

I have written a untrue Timer System for my Oxy Dwell. Oxy is critical during dwelling and I need to Extend the delay times if its not enough. So I have written a macro here, which is used in M03:

Sub Main()
Dim Delay, RT, ET, TStop, TSet, TExtend
TStop = 0.2
TSet = getUserLED(821)
TExtend = getUserLED(822)

Delay = getUserDRO(1051)
RT = Delay
ET = 0
ActivateSignal(Output1)

Do Until (RT <= (TStop)) Or (TSet = 1)
   RT = RT - 0.2
   ET = ET + 0.2
   Call SetUserDRO( 1055, RT )
   Call SetUserDRO( 1056, ET )
   code "G4 P0.1"
   While IsMoving()
   Wend
Loop

If (TExtend = 1 And TStop = 0.2)Then

   ET = ET + 0.2
   Call SetUserDRO( 1055, 0 )
   Call SetUserDRO( 1056, ET )
   code "G4 P0.1"
   While IsMoving()
   Wend
End If

If (TSet = 1)Then

   ET = ET + 0.2
   Call SetUserDRO( 1056, ET )
End If

End Sub         

1051 Recieves a Delay Value from a Custom DRO.
RT stands for Remaining Time, which is used on Custom DRO 1055.
ET stands for Elapsed Time, which is used on Custom DRO 1056.

getUserLED(821) represents Input #1.
getUserLED(822) represents Input #2.

What it does:

TStop is a value that I should Stop Counting from.
TSet is hooked up to Input 1.
TExtend is hooked up to Input 2.

Ive configured a time delay, for instance - 10 seconds, on DRO 1051.
When the M03 runs, Remaining Time will start displaying 10 seconds, Elapsed will display 0 seconds.

As it goes, RT will be minus by 0.2, and ET will be added by 0.2.

SetUserDRO 1055 and 1056 will put a new figure unto Elapsed and Remaining Time.

To make it more realistic, a 100ms delay is added unto the script.

The whole script repeats until TStop reaches 0.2, or Tset = 1(Input1 is triggered).

Set and Extend features is:

While the Timer is counting, If I press Set, the value on the Elapsed Time counted halfway will replace the old Delay Time.
If the Timer has finished counting, If I press Extend, Elapsed Time will continue to count Until I press set and the New Elapsed Time will replace the Old Delay Time.
If the Timer has finished counting, and a second delay has passed, the VB will ignore the signals from Elapsed Time and continue the next VB instruction.

I have been experimenting for weeks, argh, I still fail. Anyone can help me out?

I say thank you a zillion times in advance.

Charles

7
General Mach Discussion / Circles aint Round
« on: February 19, 2008, 11:58:15 PM »
Hello Guys,

I'm not sure whether it's the right place to post this, but i am facing this problem..
 
I have 2 units of 1800 oz/in KelingInc 8.8Amp stepper motor configuration, with the combination of G203V.

This is hooked and together controlled with Mach3.

I am getting a very weird response from the g-codes being run.

I used SheetCAM and generated a g-code of a circle in a diameter of 500mm. I send it over to Mach3, fitted a pen (as a CNC plotter) and start plotting in the paper. The result was unexpected. The circle seemed to be flat when reaching the edge of the circles, as it there was a shaft with 4 keyways milled on it. A picture is posted to reflect the explanation.

When I program Mach3 to plot is slowly, the CNC seems to be ignoring slower pulses. If fast, the circle will look better. If too slow, the motors doesnt move at all. minimum speed that can be run is 700mm/min or higher. At 700mm/min, the circles are just like rectangles O.O

In conclusion, I feel that the steps are rough. Can anyone help me out? Thanks in advance.

Charles

8
VB and the development of wizards / Can I Make OEMDRO Count?
« on: May 10, 2007, 12:07:45 PM »
Hi guys, i want to make a DRO count, let say from 100 count to the value of X, i've no idea what seems the problem 0.0, can you help me out? thanks!

Option Explicit
Declare Sub Sleep Lib "Kernel32" (ByVal dwMilliseconds As Long)
Dim X As Integer
Dim C
Sub main ()

X = getOEMDRO(1005)
For C = 100 To X
SetOEMDRO(1006,C)
Next C

End Sub

PS: As in i can see the moves from 100 to x, and i can see it reducing to x?

9
Hi everyone, i'm facing this problem now,this is my 1st time writing a wizard and I've no idea what i'm lacking of. Don't know where to trace the mistake, as it really makes me confusing. This VB wizard does the profiling of a circle, with a arc lead-in function, for a plasma cutting system. I've done the lead-in, and plan to do the lead-out after i've solved this problem. Can someone help me out?

there are 3 inputs, a lead in arc radius, the circle diameter, and a kerf nozzle width.

Dim LeadInArcRad, XLeadInCenter, YLeadInCenter, StartArcAngle, IncArcAngle, EndArcAngle, CircleDiameter, XStartPoint, YStartPoint, XCircleCenter, YCircleCenter, CircleRad, KerfNoz, KerfTool, KerfExtraCompensation

DoOEM Button (169)
PI = 3.1415926535898

Rem Lead-In Arc Circle 90 Degree Variable Radius
LeadInArcRad = Abs(GetOEMDRO (1050))
XLeadInCenter = -1 * (LeadInArcRad + KerfTool + KerfExtraCompensation)
YLeadInCenter = CircleRad
StartArcAngle = (PI / 180) * 0
IncArcAngle = (PI / 180) * 90
EndArcAngle = StartArcAngle + IncArcAngle

Rem Circle 360 Degree Variable Diameter
CircleDiameter=GetOEMDRO (1051)
XStartPoint = -1 * (KerfTool + KerfExtraCompensation)
YStartPoint = CircleRad
XCircleCentre = LeadInArcRad + KerfTool + KerfExtraCompensation
YCircleCentre = 0
CircleRad = CircleDiameter / 2

Rem Nozzle Kerf Compensation
KerfNoz=GetOEMDRO (1052)
KerfTool= KerfNoz / 2
KerfExtraCompensation= 0.05

If LeadInArcRad = 0 Then
setTicker 20, "How big do you want the lead-in radius arc to be?"
Exit Sub
End If

If CircleDiameter = 0 Then
setTicker 20, "I think you have forgotten to fill in the Circle Diameter!"
Exit Sub
End If

If KerfNoz = 0 Then
setTicker 20, "Hmm, what's the kerf nozzle width?"
Exit Sub
End If

Rem ******************End of If Here And If  There******************

StartX =  Round ((LeadInArcRad + KerfTool)*(Cos (StartArcAngle)) , 4)
StartY =  Round ((LeadInArcRad + KerfTool)*(Sin (StartArcAngle)) , 4)
EndX =  Round ((LeadInArcRad + KerfTool)*(Cos (EndArcAngle)) , 4)
EndY =  Round ((LeadInArcRad + KerfTool)*(Sin (EndArcAngle)) , 4)
If IncArcAngle > 0 Then
 G2_3 = "G3"
Else
 G2_3 = "G2"
End If

If GetIJMode() Then
ArcLeadInXCenterPOS= XLeadInCenter - (XLeadInCenter + StartX)
ArcLeadInYCenterPOS = YLeadInCenter - (YLeadInCenter + StartY)
Else
ArcLeadInXCenterPOS= XLeadInCenter
ArcLeadInYCenterPOS = YLeadInCenter
End If


OpenTeachFile "CutArc.tap"

If GetUserLED(1003) Then
Code "G20 (Inch)"
Else
Code "G21 (mm)"
End If
Code " G53 G90 G40 F3000 M04 "
Code " F25 "

Nc = 1

Counter = 1
Do
     
     CODE "M03"
     CODE " X" & XLeadInCenter + StartX & " Y" & YLeadInCenter + StartY
     CODE g2_3 & " X" & XLeadInCenter + EndX & " Y" & YLeadInCenter + EndY & " I" & ArcLeadInXCenterPOS  & " J" & ArcLeadInYCenterPOS
     CODE g2_3 & " X" & XStartPoint & " Y" & YStartPoint & " I" & XCircleCenter  & " J" & YCircleCenter
          Nc=Nc+1

Code "M05"
Code "G00 Z20"
Code "G00 X0.0000 Y0.0000"
Code "M30"

CloseTeachFile
Call LoadTeachFile()



10
VB and the development of wizards / VB and RS232
« on: November 14, 2006, 09:19:14 PM »
Hi, is there any websites that can explain how to link Rs-232 and VB together? There's an instrument that feedback signals from 0- 200 and I need the VB to detect it so that I can do program what I want to control.

Pages: 1 2 »