CNC মেশিনে মিলিং অপারেশানের প্রোগ্রাম কিভাবে লেখা হয়?
মিলিং অপারেশানে ওয়ার্ক পিস থেকে মেটেরিয়াল রিমুভ করার জন্য স্থির ওয়ার্ক পিসের তুলনায় কাটিং টুলের রোটেশান মুভমেন্ট করানো হয়। তাই মিলিং অপারেশানের প্রোগ্রামিংএ স্পিন্ডলে স্থিত কাটিং টুলের তুলনায় অ্যাক্সিসগুলির রিলেটিভ মুভমেন্টের কমান্ড দেওয়া হয়ে থাকে। অর্থাৎ যদি স্পিন্ডলে স্থিত কাটিং টুলের মুভমেন্ট “Z” অ্যাক্সিস বরাবর হয়, তবে মেটেরিয়াল রিমুভ করার জন্য “Z” অ্যাক্সিসকে একটি নির্দিষ্ট অবস্থানে নিয়ে এসে তারপর ‘X’ অথবা ‘Y’ অ্যাক্সিসের মুভমেন্ট কমান্ড দেওয়া হয়। কখনো শুধুমাত্র “Z” অ্যাক্সিসকে মুভমেন্ট করিয়েই কাটিং অপারেশান করা হয়। আবার প্রয়োজন অনুযায়ী কখনো দুটি অ্যাক্সিসকে একসাথে মুভমেন্ট করানো হয় (ইন্টারপোলেশানের ক্ষেত্রে)। CNC মেশিনে একটি সহজ মিলিং অপারেশানের প্রোগ্রামিং কিভাবে করা হয়, তা নিচে একটি উদাহরনের সাহায্যে ধাপে ধাপে দেখানো হয়েছে। এখানে নিচে বাঁদিকে একটি ওয়ার্ক পিসের ব্ল্যাঙ্কের (Blank) ছবি দেওয়া হয়েছে এবং ডানদিকে ঐ ব্ল্যাঙ্ক থেকে যে ওয়ার্ক পিসটি তৈরি করা হবে তার ছবি দেওয়া হয়েছে।
ওয়ার্ক পিসের 2D অর্থাৎ টু ডাইমেনশনাল ড্রয়িং তৈরি
উপরের ছবিতে যে ওয়ার্ক পিসটি দেখানো হয়েছে, প্রোগ্রাম শুরু করার পুর্বে তার একটি 2D অর্থাৎ টু ডাইমেনশনাল ড্রয়িং বানানো প্রয়োজন যাতে কিনা ওয়ার্ক পিসটির বিভিন্ন ডাইমেনশান প্রোগ্রামের মধ্যে সহজেই দেওয়া যায়। পুর্বে এই কাজের জন্য ড্রয়িং শিটের উপরেই টু ডাইমেনশনাল ড্রয়িং আঁকা হত। কিন্তু বর্তমানে এই কাজের জন্য “CAD” (Computer Aided Design) সফটওয়্যার ব্যাবহার করা হয়, যার সাহায্যে সহজেই এই ধরনের ড্রয়িং বানানো সম্ভব হয়ে থাকে। নিচে ওয়ার্ক পিসটির একটি টু ডাইমেনশনাল ড্রয়িং দেওয়া হল।
ওয়ার্ক পিসের কো-অর্ডিনেট সিস্টেমের সাথে সমন্নয় ও বিভিন্ন অফসেট
উপরের ছবি অনুসারে ওয়ার্ক পিসটির এক কোণায় একটি “P” পয়েন্ট ধরা হয়েছে, অর্থাৎ এই “P” পয়েন্টটি হল ওয়ার্ক পিসটির “ওয়ার্কপিস জিরো” পয়েন্ট। মেশিনিং এর জন্য প্রোগ্রামের সব অ্যাক্সিসের অবস্থান এই “P” পয়েন্টের সাপেক্ষেই নেওয়া হয়েছে। এরপর ঐ “P” পয়েন্টটি “মেশিন জিরো” অবস্থান থেকে কত দূরে অর্থাৎ মেশিনের অ্যাক্সিস গুলির “জিরো অফসেট” কি হবে এবং ওয়ার্ক পিসটি মেশিনের কো-অর্ডিনেট সিস্টেমের সাথে কিভাবে সমন্নয় করবে তা পরবর্তি ছবিতে দেখানো হয়েছে।
এতক্ষন যা অলোচনা
করা হল তা ওয়ার্ক পিসটির বিভিন্ন ডাইমেনশান কি হবে এবং সেটি
মেশিনের কো-অর্ডিনেট সিস্টেমের সাথে কিভাবে থাকবে ও কাটিং টুলের পথ কি হবে তার
সম্মন্ধে। এর পর ঠিক করতে হবে যে কাটিং টুলটি কি
ধরনের হবে এবং তার লেংথ ও ডায়ামিটার কি হবে। এখানে
ধরে নেওয়া যাক কাটিং টুলটি ‘এন্ডমিল কাটার’ (Endmill Cutter) টাইপ এবং তার লেংথ 50
mm ও
ডায়ামিটার 10 mm। CNC কন্ট্রোলারের টুল অফসেট ডাটা
পেজে এই দুটি ভ্যালু আগে থেকে দিয়ে রাখতে হবে এবং প্রোগ্রামের
মধ্যে যেখানে টুল অফসেট ডাটাকে (এক্ষেত্রে D1) ডাকা হয়েছে সেখানে “Z” অ্যাক্সিসের
অ্যাকচুয়াল মুভমেন্ট মেশিন জিরো অবস্থান থেকে ঐ টুল লেংথকে ধরে নিয়ে হবে (এক্ষেত্রে
50 mm)। আবার প্রোগ্রামে
যেখানে কাটার রেডিয়াস কম্পেন্সেশান কমান্ড দেওয়া আছে, অর্থাৎ G41 বা G42,
সেখানে ‘X’ এবং
‘Y’ অ্যাক্সিসের অ্যাকচুয়াল মুভমেন্ট ঐ টুল
ডায়ামিটারকে ধরে নিয়ে হবে (এক্ষেত্রে 10 mm)। আগের
ছবিতে ওয়ার্ক পিসটির সঠিক ডাইমেনশান পাওয়ার জন্য কাটার
রেডিয়াস কম্পেন্সেশান ধরে নিয়ে কাটিং টুলের পথ কি হবে তা ডটেড লাইনের
সাহায্যে দেখানো হয়েছে। যদিও প্রোগ্রামিং
এর ক্ষেত্রে কিন্তু অ্যাক্সিসের পজিশান মুভমেন্ট কমান্ড ওয়ার্ক পিসটির কো-অর্ডিনেট
সিস্টেমের সাথে রিলেটিভ দূরত্ব অনুসারেই হবে।
এর পরে ঠিক করতে হবে যে প্রোগ্রামটির ডাইমেনশানিং এর
জন্য কো-অর্ডিনেট সিস্টেম
কি হবে এবং মেজারিং সিস্টেম কি হবে। আমরা জানি প্রোগ্রামিং এর
জন্য দুই ধরনের কো-অর্ডিনেট হয়ে থাকে, কার্টেসিয়ান কো-অর্ডিনেট সিস্টেম
এবং পোলার কো-অর্ডিনেট সিস্টেম। এই
প্রোগ্রামে শুধুমাত্র কার্টেসিয়ান কো-অর্ডিনেট সিস্টেমই ব্যাবহার করে প্রোগ্রাম করা
হয়েছে এবং মেজারিং সিস্টেমের জন্য শুধুমাত্র অ্যাবসোলিউট মেজারিং
সিস্টেম ব্যাবহৃত হয়েছে। এছাড়াও
প্রোগ্রাম শুরু করার পূর্বে আরও একটি বিষয় মাথায় রাখতে হবে যে ওয়ার্ক পিসটিকে
মেশিনিং এর জন্য যে ফিক্সচারের (Fixture) উপর লাগানো হবে, তার ক্ল্যাম্পিং ব্যাবস্থা
বা ‘Clamping Attachment’ এমন হতে হবে যাতে কিনা সেগুলি কাটিং টুলের পথের
মধ্যে না পড়ে। এবং প্রয়োজনে ঐ মেশিনিং অপারেশানকে দুটি
বা তিনটি সেট-আপে (Set-Up) ভেঙ্গে সেই অনুযায়ী প্রোগ্রাম তৈরি করা হয়ে থাকে। এখানে
যদিও ওয়ার্ক পিসটির কোন ক্ল্যাম্পিং ব্যাবস্থা দেখানো হয়নি, তাই সম্পুর্ন
প্রোগ্রামটিকে বোঝার সুবিধার জন্য একই সঙ্গে লেখা হয়েছে।
ওয়ার্কপিস অনুসারে প্রোগ্রাম তৈরি (SIEMENS কন্ট্রোলার
অনুসারে)
এখানে
প্রদত্ত ওয়ার্ক পিসটির জন্য “%1234” একটি মিলিং প্রোগ্রাম করা হয়েছে
এবং পরে প্রোগ্রামের প্রতিটি ব্লক বা লাইনের অর্থ কি তা বোঝানো হয়েছে। নিচের ছবিতে
ওয়ার্ক পিসটির মধ্যে কোথায় কোন ব্লক প্রোগ্রাম অনুসারে কাজ করেছে তাও দেখানো হয়েছে।
%1234
(Test Workpiece)
N05 G21 G90 G94 LF
N10 T1 M06 LF
N15 M03 S1000 M07 LF
N20 G00 G54 D1 X-10 Y0 Z5 LF
N25 G01 Z-5.5 F150 LF
N26 G42 X0 Y0 LF
N30 X45 LF
N35 Y15 LF
N40 X75 LF
N45 Y0 LF
N50 X120 LF
N55 Y40 LF
N60 G03 X100 Y60 I-20 J0 F100 LF
N65 G01 X20 F150 LF
N70 G03 X0 Y40 I0 J-20 F100 LF
N75 G01 Y0 F150 LF
N80 Z5 LF
N85 G00 G40 G53 X0 Y0 Z0 M09 LF
N90 M30 LF
প্রোগ্রামটির প্রতিটি ব্লকের অর্থ
প্রোগ্রামের শুরুতেই “%1234” লেখার অর্থ
প্রোগ্রামটির নাম্বার %1234 এবং সেটি কোন ওয়ার্ক পিসের
প্রোগ্রাম তা বোঝানোর জন্য “Test workpiece” এই কথাটি পরের
লাইনে “(
)”
এর মধ্যে লেখা হয়েছে। প্রোগ্রামের
মধ্যের যে কোন লাইনকে ফার্স্ট ব্র্যাকেটের অর্থাৎ “(...)” মধ্যে লেখা হলে CNC
কন্ট্রোলার সেটি প্রোগ্রামের পার্ট হিসাবে গণ্য করে না, সেটি শুধুমাত্র
প্রোগ্রামের মধ্যের কোন ইনফর্মেশানের জন্যই ব্যাবহৃত হয়। বড়
বড় প্রোগ্রামের ক্ষেত্রে প্রোগ্রামের বিভিন্ন অপারেশান আলাদাভাবে বোঝার সুবিধার
জন্যও প্রোগ্রামের মধ্যেও এই ধরনের লাইন লেখা হয়ে থাকে।
N05 G21 G90 G94 - ব্লকটির
অর্থ পরবর্তী সকল মেজারমেন্ট মিলিমিটারে (G21),
ও
অ্যাবসোলিউট
মেজারিং সিস্টেমে (G90) এবং অ্যাক্সিসগুলির ফীড মুভমেন্ট
মিলিমিটার / মিনিটে (G94) হবে। প্রোগ্রামের
প্রতিটি লাইনের শেষে “LF” ওয়ার্ডটি লেখা হয়েছে যা দিয়ে “Line Finish” বোঝানো
হয়।
N10 T1 M06 -
ব্লকটির অর্থ T1 নাম্বার
টুলটিকে অটোমেটিক চেঞ্জ (M06) করে স্পিন্ডলে নিয়ে আসা হয়েছে।
N15 M03 S1000
M07 - ব্লকটির অর্থ স্পিন্ডলটিকে ক্লকওয়াইজ ডাইরেকশনে (M03)
1000rpm এ ঘোরানো হয়েছে (S1000)।
এবং এর সাথে কাটিং ফ্ল্যাশ কুল্যান্টকেও অন (M07) করা
হয়েছে।
N20 G00 G54
X-10 Y0 Z5 D1
– এই ব্লকে ‘মেশিন জিরো’ অবস্থান থেকে র্যাপিড ফীডে (G00) ওয়ার্ক
অফসেট (G54) ব্যাবহার করে X অ্যাক্সিসকে ওয়ার্ক পিস জিরো থেকে -10mm
দূরে থামানো হয়েছে (X-10) এবং
Y
অ্যাক্সিসকে ওয়ার্ক পিস জিরো অবস্থানে (Y0) ও
Z
অ্যাক্সিসকে ওয়ার্ক পিস জিরো অবস্থান থেকে 5mm উপরে নিয়ে আসা হয়েছে
(Z5)।
অ্যাক্সিসগুলির ওয়ার্ক পিস জিরো অবস্থানে আসার জন্য ওয়ার্ক
অফসেট G54 এর মান X= 50, Y= 25 এবং Z= 100 ও কাটিং
টুলের অফসেট (D1) অর্থাৎ রেডিয়াস 10mm এবং
লেংথ 50 mm ধরে নিয়ে মুভমেন্ট হয়েছে। ওয়ার্ক পিসকে
কাটিং শুরু করার পুর্বে Z অ্যাক্সিসকে সবসময় ওয়ার্ক পিস জিরো
অবস্থান থেকে একটু উপরে নিয়ে এসে থামানো হয় (এক্ষেত্রে 5mm উপরে),
যাতে কিনা কাটিং টুল এবং ওয়ার্ক পিসের মধ্যে সংঘর্ষ (collition) এড়ানো যায়।
এছাড়া X অ্যাক্সিসকে
-10mm
দূরে থামানো হয়েছে, যাতে পরবর্তীতে কাটার রেডিয়াস কম্পেন্সেশন নিয়ে X অ্যাক্সিসের
মুভমেন্টে কোন অসুবিধা না হয়।
N25 G01 Z-5.5 F150 -
এখানে লিনিয়ার মুভমেন্টে (G01)
শুধুমাত্র Z অ্যাক্সিসকে নেগেটিভ ডাইরেকশানে 10.5
mm মুভ করানো হয়েছে (Z-5.5)
কারন ওয়ার্ক পিসটির উচ্চতা বা Thickness, 5mm এবং ঐ ওয়ার্ক পিসের Thickness
যাতে সম্পুর্ণরুপে মেশিনিং হয়, তার জন্য Z অ্যাক্সিসকে 0.5 mm বেশী মুভ করানো হয়েছে। Z
অ্যাক্সিসটির পূর্বের অবস্থান ছিল Z5, এবং সেখান থেকে Z-5.5
পর্যন্ত যাওয়ার অর্থই হল 10.5 mm মুভমেন্ট। এবং Z
অ্যাক্সিসটির প্রোগ্রাম ফীড মুভমেন্ট হবে 150 mm / min (F150)। এই 150
mm / min প্রোগ্রাম ফীড মুভমেন্ট প্রোগ্রামের পরবর্তি অংশের
অ্যাক্সিসগুলির মুভমেন্টের জন্যও প্রযোজ্য হবে, এবং প্রোগ্রামের পরবর্তি অংশে
যতক্ষণ না পুনরায় কোন ফীড মুভমেন্ট কমান্ড দেওয়া হচ্ছে, ততক্ষন
অ্যাক্সিসগুলি এই ফীড মুভমেন্টেই চলবে, তার জন্য আলাদাভাবে আর ফীড মুভমেন্ট
কমান্ড দেওয়ার প্রয়োজন নেই।
N26 G42 X0 Y0 - G42 দিয়ে ‘কাটার রেডিয়াস
কম্পেন্সেশন’ রাইট ডাইরেকশানে হবে তা বোঝানো হয়েছে এবং এক্ষেত্রে X অ্যাক্সিসের
মুভমেন্ট পূর্বের অবস্থান (x-10) থেকে কাটার রেডিয়াস কম্পেন্সেশন নিয়ে ওয়ার্ক
পিস জিরো পর্যন্ত হবে (X 0)
N30 X45 – এই
ব্লক থেকেই ওয়ার্ক পিসটির অ্যাকচুয়াল মেটেরিয়াল কাটিং শুরু হয়েছে। এখানে
শুধুমাত্র ‘X’
অ্যাক্সিসকে ওয়ার্ক পিস জিরো অবস্থান থেকে ডান দিকে
অর্থাৎ পজিটিভ ডাইরেকশানে 45 mm নিয়ে যাওয়া হয়েছে। ফলে
সেখানে ‘X’ অ্যাক্সিসের অবস্থান হয়েছে ‘X45’
N35 Y15 – এই
ব্লকে ‘Y’
অ্যাক্সিসকে জিরো অবস্থান থেকে উপরের দিকে অর্থাৎ পজিটিভ ডাইরেকশানে 15 mm
নিয়ে যাওয়া হয়েছে (Y15)।
N40 X75 – এখানে ‘X’
অ্যাক্সিসকে পুনরায় পজিটিভ ডাইরেকশানে 30 mm নিয়ে যাওয়া হয়েছে,
ফলে সেখানে
X
অ্যাক্সিসের অবস্থান হয়েছে ‘X75’।
N45 Y0 – এখানে ‘Y’
অ্যাক্সিসকে নিচের দিকে অর্থাৎ নেগেটিভ ডাইরেকশানে 15 mm নামিয়ে পুনরায়
‘Y0’ অবস্থানে আনা হয়েছে।
N50 X120 – এই
ব্লকে ‘X’
অ্যাক্সিসকে পজিটিভ ডাইরেকশানে X75 অবস্থান থেকে X120 অবস্থানে
নিয়ে যাওয়া হয়েছে। অর্থাৎ X
অ্যাক্সিসকে 45mm মুভ করানো হয়েছে।
N55 Y40 - এই ব্লকে ‘Y’
অ্যাক্সিসকে জিরো অবস্থান থেকে উপরের দিকে অর্থাৎ পজিটিভ ডাইরেকশানে 40 mm
নিয়ে যাওয়া হয়েছে (Y40)।
N60 G03 X100 Y60 I-20 J0
F100
– এই ব্লকে X এবং Y অ্যাক্সিসকে
একসাথে অ্যান্টি-ক্লকওয়াইজ ডাইরেকশনে সার্কুলার ইন্টারপোলেশান (G03)
মুভমেন্ট দেওয়া হয়েছে। এই সার্কুলার
মুভমেন্টের জন্য অ্যাক্সিস দুটির পূর্ববর্তী অবস্থান (X120, Y40 - যা কিনা
আগের ব্লকে অ্যাক্সিস দুটির আবস্থান) থেকে অ্যাক্সিস দুটির
পরবর্তী অবস্থান X100, Y60 হবে। এবং
20 mm রেডিয়াসে এই সার্কুলার ইন্টারপোলেশান মুভমেন্টের জন্য “I”
ও “J” এর মান হবে I-20
এবং J0
(কিভাবে “I” ও “J” এর মান, নির্ণয় করা হয়, তা পূর্বে
আলোচনা করা হয়েছে)। এবং এক্ষেত্রে প্রোগ্রাম ফীড মুভমেন্ট
হবে 100 mm / min (F100)।
N65 G01 X20
F150
– আগের ব্লকে যেহেতু সার্কুলার ইন্টারপোলেশান মুভমেন্ট
কমান্ড G03
দেওয়া হয়েছে, তাই এই ব্লকে G01 কমান্ড
পুনরায় দিতে হবে X অ্যাক্সিসের লিনিয়ার মুভমেন্টের জন্য। এই
ব্লকে ‘X’
অ্যাক্সিসকে নেগেটিভ ডাইরেকশানে X100 অবস্থান থেকে X20
অবস্থানে নিয়ে যাওয়া হয়েছে।
অর্থাৎ X অ্যাক্সিসকে
এখানে 80mm মুভ করানো হয়েছে। এবং এখানে
প্রোগ্রাম ফীড মুভমেন্ট
হবে 150 mm / min (F150)।
N70 G03 X0 Y40 I0 J-20
F100
- এই ব্লক অনেকটা ‘N60’ ব্লকের মত। এখনেও
X
এবং Y
অ্যাক্সিসকে একসাথে অ্যান্টি-ক্লকওয়াইজ ডাইরেকশনে (G03)
সার্কুলার ইন্টারপোলেশান মুভমেন্ট দেওয়া হয়েছে। এই
সার্কুলার মুভমেন্টের জন্য অ্যাক্সিস দুটির পূর্ববর্তী অবস্থান (X20, Y60
- যা কিনা আগের ব্লকে অ্যাক্সিস দুটির আবস্থান) থেকে
অ্যাক্সিস দুটির পরবর্তী অবস্থান “X0, Y40”
হবে। এবং 20 mm
রেডিয়াসে এই সার্কুলার ইন্টারপোলেশান মুভমেন্টের জন্য “I”
ও “J” এর মান হবে যথাক্রমে
I0
এবং J-20। এবং
এক্ষেত্রেও প্রোগ্রাম ফীড মুভমেন্ট হবে 100 mm / min (F100)।
N75 G01 Y0
F150
– এখানে ‘Y’ অ্যাক্সিসকে লিনিয়ার মুভমেন্টে
(G01)
নিচের দিকে অর্থাৎ নেগেটিভ ডাইরেকশানে 40 mm
নামিয়ে পুনরায় ‘Y0’ অবস্থানে আনা হয়েছে। এবং
এখানে প্রোগ্রাম ফীড মুভমেন্ট হবে 150 mm / min (F150)।
N80 Z5 – এই
ব্লকে ‘Z’
অ্যাক্সিসকে পজিটিভ ডাইরেকশানে 10.5 mm মুভ করানো হয়েছে Z
অ্যাক্সিসের পূর্বের অবস্থান ‘Z-5.5’ থেকে পরবর্তী অবস্থান ‘Z5’
পর্যন্ত।
N85 G00 G40
G53 X0
Y0
Z0
M09 – এই ব্লকে X,
Y
এবং Z
অ্যাক্সিসকে ‘ওয়ার্ক পিস জিরো’ অবস্থান থেকে র্যাপিড
ফীডে (G00) ‘মেশিন জিরো’ অবস্থানে (X0 Y0
এবং Z0) আনা হয়েছে। সাথে সাথে ‘কাটার
রেডিয়াস কম্পেন্সেশন’ ক্যান্সেল (G40) করা হয়েছে এবং
ওয়ার্ক অফসেটও ক্যান্সেল
(G53) করা হয়েছে। এছাড়াও
‘M09’ দিয়ে কাটিং কুল্যান্টকেও অফ করা হয়েছে।
N90 M30 - এই
ব্লকে প্রোগ্রাম এন্ড কমান্ড ‘M30’ দেওয়া হয়েছে।
উপরের উদাহরনের সাহায্যে একটি CNC মেশিনের সহজ মিলিং অপারেশানের
প্রোগ্রাম কিভাবে লেখা হয়, তা বোঝানো হয়েছে। যদিও
অন্যান্য CNC মেশিনের কমপ্লেক্স বা জটিল মেশিনিং অপারেশানের এর ক্ষেত্রে
কখনো তিন বা তার অধিক অ্যাক্সিসকেও একসাথে মুভমেন্ট করার প্রয়োজন হয়। আবার
কিছু CNC মেশিনে একের অধিক স্পিন্ডলও থাকে, সেক্ষেত্রে প্রোগ্রামিং এর সময়
স্পিন্ডলগুলিকে আলাদাভাবে প্রোগ্রাম করার প্রয়োজন হয়।
কোন মন্তব্য নেই:
একটি মন্তব্য পোস্ট করুন