การหาจุดกึ่งกลางของวงกลมจาก Probe
ใช้ในกรณีมีการกัดงาน 2 หน้า โดยต้องการให้พิกัดตรงกันเป๊ะ...อันนี้ใช้วิธีเจาะรู ไว้ 1 รู ทะลุทั้ง 2 ด้านเอาไว้ใช้เป็นจุด Reference กัน โดยเจาะรูเล็กๆเอาไว้

ถ้าเอาง่ายๆ..ผมก็ใช้วิธีคือเมื่อกัดงาน หน้าแรกเสร็จ แล้วกลับหน้าชิ้นงานแล้ว...ผมก็ปิดเครื่อง CNC เลยครับ แล้วเปลี่ยนหัวกัดไปใส่ดอกนำร่อง(ทำจากดอกกัดที่หัก เจียร์ปลายแหลมเรียว ซึ่งขนาดของรู และดอกนำร่องต้องพอดีกันรูไม่ใหญ่เกินดอก)...จากนั้นก็เอามือเลื่อนหัวกัดแล้วขยับไปให้ดอกนำร่องหย่อนลงไปในรูอีกด้านที่เรากลับหน้ามาแล้ว...จากนั้นก็เปิดเครื่อง CNC แล้วมาที่ Mach3...กดปุ่ม Set X, Y ให้เป็น 0 ซะ แค่นี้ก็ได้ละ พิกัดเริ่มต้นจากรูที่ทำเอาไว้....

แต่ถ้าเอาไปใช้วัดรูที่มันกว้างกว่าดอกนำร่องล่ะเช่นจะทำรูเพิ่มเติมจากชิ้นงานอื่นๆที่เราไม่มีแบบตัวนั้นอยู่ แต่ต้องการเพิ่มส่วนประกอบเข้าไป (และด้วยความที่มันไม่ Hi-Tech เอาซะเลยด้วย อิอิอิ)....ไหนๆก็มี Probe ใช้แล้วก็น่าจะเอามาเล่นในงานนี้ด้วยซะเลย

ในส่วนนี้ว่าแค่เรื่อง Algorithm อย่างเดียวน่ะครับ เพราะมีหลายคนใช้โปรแกรมควบคุมต่างกันไป จะคุยกันไม่รู้เรื่องเปล่าๆ แล้วเอาแค่แนวคิดการ Code โปรแกรมให้ใช้งานในการหาจุดกึ่งกลางวงกลม แล้วจะได้ไปประยุกต์ใช้กันเอาเองตามแต่ละภาษาของโปรแกรม...ถือว่าแลกเปลี่ยนกันครับเพราะงานอย่างเดียวกันต่างกันที่ Algorithm ก็ทำงานอย่างเดียวกันได้แต่ความรวดเร็วมันต่างกัน ฉะนั้นผมเลยอยากทราบว่าท่านใดมีรูปแบบการค้นหาตำแหน่งแบบใดบ้าง...จะได้เอามาใช้ประโยชน์กับงานได้สูงสุด

เริ่มจากรูป วงกลมข้างล่างนี้ แบ่งขั้นตอนการหา เป็น 3 ส่วน(ตามสี)ดังนี้
1. (สีแดง หมายเลข 1) เมื่อจรดดอกกัดลงรูก็ให้เดินไปตามแกน X ในด้านใดด้านหนึ่ง เพื่อหาขอบ เมื่อชนขอบให้บันทึกตำแหน่งไว้ (A), จากนั้นก็เลื่อนไปแนวแกน X ในด้านตรงกันข้ามจนชนขอบก็ทำการบันทึกตำแหน่งไว้ (B)
2. นำตำแหน่ง A และ B มาหาระยะความยาวของเส้นตรง จากนั้น ก็หารด้วย 2 (หาจุดกึ่งกลางเส้นตรง)....แล้วทำการเลื่อนดอกกัดไปยังตำแหน่งนั้น
3. (สีน้ำเงิน หมายเลข 2)ให้ทำการเลื่อนไปในแนวแกน Y ไปจนชนขอบของชิ้นงาน แล้วบันทึกค่าเอาไว้ (C), แล้วเลื่อนไปในแนวแกน Y ในด้านตรงกันข้ามจนชนขอบของชิ้นงานแล้วทำการบันทึกค่าเอาไว้ (D)
4. นำตำแหน่ง C และ D มาหาระยะความยาวของเส้นตรง จากนั้นก็หารด้วย 2 (หาจุดกึ่งกลางเส้นตรง) ..แล้วทำการเลื่อนดอกกัดไปยังตำแหน่งนั้น.....เพียงเท่านี้เราก็ได้ตำแหน่งพิกัดตรงกลางของวงกลมแล้ว(สีชมพู หมายเลข 3)
5. ยกดอกกัดขึ้นให้พ้นรู (step ต่อจากนี้ จะมีหรือไม่มีก็ได้ แล้วแต่ว่าเมื่อได้พิกัดกลางวงกลมแล้วจะไปทำอะไรต่อ)

ถ้ามีว่างเว้นงานก็จะมาทำล่ะครับตอนนี้อยากได้ algorithm ที่รวดเร็ว...หากท่านใดมีข้อแนะนำช่วยชี้แนะด้วยน่ะครับ



ส่วนการเขียน Code เพื่อใช้ใน Algorithm นี้ใน March3 กฌตามนี้ครับ

###########################################
'Center of Circle by Thanya Boonsiri.

CurrentFeed = GetOemDRO(818) 'Get the current feedrate.
ProbeFeed = 20 'You could put a probing feedrate here instead.

Code "G90 F" &ProbeFeed

If GetOemLed (825)=0 Then
Code "G4 P2" 'Time to get to the X-- border
Code "G31X-10 F" &ProbeFeed
While IsMoving()
Wend
Code "G4 P0.25"
XProbePosA = GetVar(2000)
Code "G4 P0.5" 'Time to get to the X-- border value
Code "G0 X0" 'Move to zero quickly
Code "G31X10 F" &ProbeFeed
While IsMoving()
Wend
Code "G4 P0.25"
XProbePosB = GetVar(2000)
Code "G4 P0.5" 'Time to get to the X++ border value
CenterX = (ABS(XProbePosA) + XProbePosB) / 2
Code "G91 F" &ProbeFeed 'Set relative position start from here
Code "G4 P0.5"
Code "G0 X-" &CenterX 'Move to center of X axis
While IsMoving()
Wend
Code "G4 P0.5" 'Time to get to the Y-- border
Code "G31Y-10 F" &ProbeFeed
While IsMoving()
Wend
Code "G4 P0.25"
YProbePosA = GetVar(2001)
Code "G4 P0.5" 'Time to get to the Y++ border
Code "G0 Y0" 'Move to zero quickly
Code "G31Y10 F" &ProbeFeed
While IsMoving()
Wend
Code "G4 P0.25"
YProbePosB = GetVar(2001)
CenterY = (ABS(YProbePosA) + YProbePosB) / 2
Code "G91 F" &ProbeFeed 'Set relative position start from here
Code "G4 P0.5"
Code "G0 Y-" &CenterY 'Move to center of Y axis
While IsMoving()
Wend
Code "G92 X0" 'Set axis X to zero.
Code "G4 P0.25" 'Pause for Dro to update on axis X.
Code "G92 Y0" 'Set axis Y to zero.
Code "G4 P0.25" 'Pause for Dro to update on Axis Y.
Code "G0 Z30.0" 'Change the Z retract height here
Code "(X,Y axis is now center of the circle)"
Code "F" &CurrentFeed
Else
Code "(Check Probe connection and try again)"
Exit Sub
End If
###########################################



Create Date : 17 มีนาคม 2553
Last Update : 17 มีนาคม 2553 12:38:28 น.
Counter : 1796 Pageviews.

0 comments
ชื่อ : * blog นี้ comment ได้เฉพาะสมาชิก
Comment :
 *ส่วน comment ไม่สามารถใช้ javascript และ style sheet
 

Thandagra
Location :
กรุงเทพฯ  Thailand

[ดู Profile ทั้งหมด]
 ฝากข้อความหลังไมค์
 Rss Feed
 Smember
 ผู้ติดตามบล็อก : 65 คน [?]




มีนาคม 2553

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
18
19
20
21
22
23
24
25
26
27
28
29
30
31