ในการทำงานในชีวิตประจำวัน ของผู้ใช Software Computer ที่เป็นโปรแกรมสำเร็จรูปต่าง ๆ อาจมีข้อจำกัดที่ยังต้องการปรับแต่งให้เหมาะสมกับงานนั้น ๆ ผู้ผลิต หรือ ผู้เขียน Software จะนิยมเปิดช่องทางให้ผู้ใช้เข้าถึงการปรับแต่ง Software นั้น ๆได้ที่เรารู้จักคือ การเขียน macro program ซึ่งที่แท้ควรจะเรียกเป็น Scripting Programมากกว่า ในงาน CAD CAM หรือ CNC เราาจะรู้จัก Auto LISP ซึ่งคือ Scripting Program ของ Autocad ที่เราสามารถนำมาปรับแต่ง โปรแกรม Autocad ให้เหมาะกับการใช้งานของผู้ใช้งาน
ยกตัวอย่างการใช้งานสำหรับการใช้ CNC Controller ควบคุมเครื่องจักรที่มีความสามารถมากกว่า CNC
โปรแกรมจำพวก CAD
1.Autocad โปรแกรม Script คือ Autolisp
2.Sketchup โปรแกรม Script คือ Ruby Script
3.Inkscape 2D โปรแกรม Script คือ Python
4.Blender 3D โปรแกรม Script คือ Python
CNC Controller
1.Mach3 โปรแกรม Script คือ VB Script
2.LinuxCNC โปรแกรม Script คือ Python Script , TCL Script,
และ ออกแบบ User Interface ด้วย Glade Screen
จากข้างต้น บางท่านอาจไม่เข้าใจว่า มันทำงานอย่างไร
ขอยกตัวอย่าง ในงานออกแบบ CAD
ใน Inkscapeเราอยาก ออกแบบ เกียร์ ลักษณะของเกียร์ที่ขบกัน จะต้องมีลักษณะทาง วิศวกรรม ยกตัวอย่างตาม Link นี้เลยครับ มันคงวุ่นวายที่ต้องมานั่งคำนวน หากใช้การเขียน Script ถามตอบมันคงสะดวกดี เราก็ใช้ PYTHON Script เขียนโปรแกรม ถามตอบ แล้วสร้าง แบบ ให้ออกมาตามต้องการได้
หรือ ใน 3D Blenderเราอยากรับสัญญานการเขียนงานเป็นตำแหน่งการเคลื่อนที่ของมือศิลปินแล้วไปสร้างเป็นชิ้นงาน โดยผ่านการ Interface ด้วย Python แล้วนำไป แปลข้อมูลเป็น 3D ก็ทำได้ครับ มันน่าสนุกครับ
http://wiring.org.co/learning/tutorials/blender/index.html
แล้วเราจะเรียนรู้กันอย่างไร
1.เรียนภาษาอะไรก็ได้ สัก 1 ภาษา ภาษาถัดไปก็ไม่ใช่เรื่องยากครับ
2.ติดตาม อ่านคู่มือ จากผู้สร้าง Programming Script นั้น ๆ ครับ
ยกตัวอย่างตามนี้ครับ
1. การหาแผ่นคลี่ของกรวยใน Inkscape
และ Blender3D
เรามาดูที่ CNC Controller กันบ้างครับ
ยกตัวอย่าง Mach3 CNC Controller อยากทำให้มันมีความสามารถ พิเศษเช่น Auto Zero Z หรือ การหา Center ของ วงกลม หรืการหาขอบชิ้นงาน ก็สามารถเขียนโปรแกรมผ่าน VB Script ของ Mach3 ได้
1.Mach3
ตัวอย่าง Auto Zero Z VBScript จาก http://www.instructables.com/id/Mach3-Zero-Probe-Tool/
This VB Source code for the Probing Tool.
'VB Code Start
'-------------------
CurrentFeed = GetOemDRO(818)
DoSpinStop()
ZMove = 20.00 'Total lenght of Probe to move before Stop or no Contact Made.
ZOffset = 1.60 ' Plate Hight
ZSal = ZOffset + 2.00 '+ Free Hight, Will possition the Proble 2 MM over the Material.
StopZmove = 0
If GetOemLed (825)=0 Then
DoOEMButton (1010)
Code "G4 P2.5"
Code "G31 Z-"& ZMove & "F25"
While IsMoving()
Sleep(200)
Wend
Probepos = GetVar(2002)
If Probepos = - ZMove Then
responce = MsgBox ("**ERROR** " , 4 , "Probe **ERROR**" )
Code "G0 Z10"
StopZmove = 1
Code "F"&CurrentFeed
End If
If StopZmove = 0 Then
Code "G0 Z"& Probepos
While IsMoving ()
Sleep (200)
Wend
Call SetDro (2, ZOffset)
Code "G4 P1"
Code "G0 Z"& ZSal
Code "(Z zeroed)"
Code "F"&CurrentFeed
End If
Else
Code "(Check Ground Probe)"
End If
Exit Sub
'-------------------
'VB Code Stop
2.Linuxcnc
ตัวอย่าง การเขียน Python Script จาก http://wiki.linuxcnc.org/cgi-bin/wiki.pl?G12-13
ยกตัวอย่างการใช้งานสำหรับการใช้ CNC Controller ควบคุมเครื่องจักรที่มีความสามารถมากกว่า CNC
โปรแกรมจำพวก CAD
1.Autocad โปรแกรม Script คือ Autolisp
2.Sketchup โปรแกรม Script คือ Ruby Script
3.Inkscape 2D โปรแกรม Script คือ Python
4.Blender 3D โปรแกรม Script คือ Python
CNC Controller
1.Mach3 โปรแกรม Script คือ VB Script
2.LinuxCNC โปรแกรม Script คือ Python Script , TCL Script,
และ ออกแบบ User Interface ด้วย Glade Screen
จากข้างต้น บางท่านอาจไม่เข้าใจว่า มันทำงานอย่างไร
ขอยกตัวอย่าง ในงานออกแบบ CAD
ใน Inkscapeเราอยาก ออกแบบ เกียร์ ลักษณะของเกียร์ที่ขบกัน จะต้องมีลักษณะทาง วิศวกรรม ยกตัวอย่างตาม Link นี้เลยครับ มันคงวุ่นวายที่ต้องมานั่งคำนวน หากใช้การเขียน Script ถามตอบมันคงสะดวกดี เราก็ใช้ PYTHON Script เขียนโปรแกรม ถามตอบ แล้วสร้าง แบบ ให้ออกมาตามต้องการได้
หรือ ใน 3D Blenderเราอยากรับสัญญานการเขียนงานเป็นตำแหน่งการเคลื่อนที่ของมือศิลปินแล้วไปสร้างเป็นชิ้นงาน โดยผ่านการ Interface ด้วย Python แล้วนำไป แปลข้อมูลเป็น 3D ก็ทำได้ครับ มันน่าสนุกครับ
http://wiring.org.co/learning/tutorials/blender/index.html
แล้วเราจะเรียนรู้กันอย่างไร
1.เรียนภาษาอะไรก็ได้ สัก 1 ภาษา ภาษาถัดไปก็ไม่ใช่เรื่องยากครับ
2.ติดตาม อ่านคู่มือ จากผู้สร้าง Programming Script นั้น ๆ ครับ
ยกตัวอย่างตามนี้ครับ
1. การหาแผ่นคลี่ของกรวยใน Inkscape
และ Blender3D
เรามาดูที่ CNC Controller กันบ้างครับ
ยกตัวอย่าง Mach3 CNC Controller อยากทำให้มันมีความสามารถ พิเศษเช่น Auto Zero Z หรือ การหา Center ของ วงกลม หรืการหาขอบชิ้นงาน ก็สามารถเขียนโปรแกรมผ่าน VB Script ของ Mach3 ได้
1.Mach3
ตัวอย่าง Auto Zero Z VBScript จาก http://www.instructables.com/id/Mach3-Zero-Probe-Tool/
This VB Source code for the Probing Tool.
'VB Code Start
'-------------------
CurrentFeed = GetOemDRO(818)
DoSpinStop()
ZMove = 20.00 'Total lenght of Probe to move before Stop or no Contact Made.
ZOffset = 1.60 ' Plate Hight
ZSal = ZOffset + 2.00 '+ Free Hight, Will possition the Proble 2 MM over the Material.
StopZmove = 0
If GetOemLed (825)=0 Then
DoOEMButton (1010)
Code "G4 P2.5"
Code "G31 Z-"& ZMove & "F25"
While IsMoving()
Sleep(200)
Wend
Probepos = GetVar(2002)
If Probepos = - ZMove Then
responce = MsgBox ("**ERROR** " , 4 , "Probe **ERROR**" )
Code "G0 Z10"
StopZmove = 1
Code "F"&CurrentFeed
End If
If StopZmove = 0 Then
Code "G0 Z"& Probepos
While IsMoving ()
Sleep (200)
Wend
Call SetDro (2, ZOffset)
Code "G4 P1"
Code "G0 Z"& ZSal
Code "(Z zeroed)"
Code "F"&CurrentFeed
End If
Else
Code "(Check Ground Probe)"
End If
Exit Sub
'-------------------
'VB Code Stop
2.Linuxcnc
ตัวอย่าง การเขียน Python Script จาก http://wiki.linuxcnc.org/cgi-bin/wiki.pl?G12-13
ในคราวต่อไปผู้เขียนจะพยายามเจาะลึกการเขียน Script ในโปแกรมต่าง ๆ มาเล่าสู่กันอีก