สร้างบ้านให้ได้อย่างใจฝัน Born to Be....Home... |
|||
การหาจุดกึ่งกลางของวงกลมจาก 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 ########################################### |
Thandagra
Rss Feed Smember ผู้ติดตามบล็อก : 65 คน [?] Group Blog All Blog Friends Blog
|
||
Pantip.com | PantipMarket.com | Pantown.com | © 2004 BlogGang.com allrights reserved. |