技術(shù)前沿

您的位置:主頁 / 客戶案例

Think3的GPL說話 開辟 擠壓模模孔線割主動(dòng) 化法式 設(shè)計(jì)與運(yùn)用

發(fā)布日期:2021-07-18 19:07:19瀏覽次數(shù): 810 金屬3D打印服務(wù)

 Think3的GPL說話
開辟
擠壓模模孔線割主動(dòng)
化法式
設(shè)計(jì)與運(yùn)用

摘 要:簡(jiǎn)述經(jīng)由過程 Think3的GPL說話 ,使用曲線偏移的功能發(fā)生 鋁型材擠壓模模孔線割刀路及對(duì)應(yīng)G代碼的進(jìn)程 ,并對(duì)??走M(jìn)行主動(dòng) 相切查抄。

關(guān)頭詞:擠壓模線切割; G代碼; 偏移; 暫停點(diǎn)

作者來自亞洲鋁廠

  在擠壓模建造 進(jìn)程 中,線切割加工是極度主要 的一個(gè)環(huán)節(jié)。??纵喞|(zhì)量將直接影響擠出鋁型材的輪廓質(zhì)量。 我司對(duì)該環(huán)節(jié)一貫 極度正視 ,率先引進(jìn)高精度慢走絲對(duì)模孔進(jìn)行加工,極年夜 的提高了模具輪廓質(zhì)量。跟著 公司營業(yè) 的擴(kuò)年夜 及對(duì)制造精度的不懈尋求 ,對(duì)線割編程的要求也愈來愈 高。

  因?yàn)?現(xiàn)有線割編程軟件參數(shù)設(shè)置繁瑣, 發(fā)生 的NC代碼與機(jī)床機(jī)能 不完全匹配,需再次查抄及更改,分歧 機(jī)床須劃分處置。而在擠壓模線割編程編程中,加工參數(shù)相對(duì)固定,為減輕線割編程員勞動(dòng)強(qiáng)度,下降 新人培訓(xùn)周期,遂提出經(jīng)由過程 CAD軟件Think3的GPL說話 ,使用曲線偏移的功能發(fā)生 擠壓模??拙€割刀路及對(duì)應(yīng)G代碼的進(jìn)程 ,并對(duì)??走M(jìn)行主動(dòng) 相切查抄的假想 。

  具體流程以下 :

  1.輸入待割型材選擇集,要包管 糾合首尾挨次相接。若所選肇端 點(diǎn)或標(biāo)的目的不適合 可經(jīng)由過程 肇端 點(diǎn)前移/后移及反相進(jìn)行調(diào)動(dòng)。

2.看待 割鋁型材選擇集進(jìn)行主動(dòng) 查抄,以包管 過渡油滑 。

  具體方式 為:由法式 對(duì)相鄰兩圖素進(jìn)行查抄:

  (1)若為直線和圓弧,經(jīng)由過程 求直線兩頭 點(diǎn)與圓弧出發(fā)點(diǎn) 和終點(diǎn)距離獲得 交點(diǎn),再判決絕 點(diǎn)與圓心所成直線與直線夾角,若非90度則剖斷 直線和圓弧非相切關(guān)系,在交點(diǎn)處按指定圖層及色彩 繪點(diǎn)提示 此處需更正;

  (2)若為圓弧和圓弧,判定 圓心距離是不是 等于半徑和或差,若不等剖斷 圓弧和圓弧非相切關(guān)系,在交點(diǎn)處按指定圖層及色彩 繪點(diǎn)提示 此處需更正;

  (3)若為直線和直線,直接在交點(diǎn)處按指定圖層及色彩 繪點(diǎn)提示 編程員查抄。

3.界說 加工參數(shù),入絲點(diǎn):

  主要輸入切割厚度,入絲點(diǎn),精加工次數(shù)。

4.用偏移功能發(fā)生 加工軌跡線:

  依加工參數(shù)肯定 偏移距離,使用CAD軟件的偏移功能發(fā)生 偏移線(將偏移線第一刀放到999層,即粗割軌跡線;其余順次 放到998、997...層),對(duì)輸入待割型材的總長(zhǎng)與新發(fā)生 軌跡線總長(zhǎng)比對(duì),軌跡線總終年 夜 于待割型材的總長(zhǎng)則將其刪除,調(diào)動(dòng)偏移標(biāo)的目的,從頭發(fā)生 軌跡線。具體GPL法式 代碼以下 :

  #procedure SelsOfst(IDS,offsetDist,InOut) !No005將給定圖素偏移指定距離 若相等則掉 敗不發(fā)生 偏移圖素[自ek_confw.prbs]W::->WrTp::

  *保存原始情況 WrTp::SelsOfst(ek_prese(1),0.2,1) //SelsOfst(ek_prese(1),0.2,1)

  currCol:=$PG(EP_COL) ekpar EP_COL 60 !EP_COL

  currLTYPE:=$PG(EP_LTYPE) ekpar EP_LEV 999 !EP_LTYPE

  currWIDTH:=$PG(EP_WIDTH) ekpar EP_WIDTH 2 !EP_WIDTH

  currLEV:=$PG(EP_LEV) ekpar EP_LEV 999 !EP_LEV

TmpTPth_IDS

  TmpTPth_IDS::=0#0

  ekpar EP_CVOF_DIST 1 !DIST/point

Sids::=IDS !保存待處置糾合

exitflag::=0

m(IDS,"IDS")

Sperim::=WrTp::GetLensBySels(IDS)

lastEnt::=$lastent

m($lastent,"$lastent Prv")

  WrTp::SelsHIGHZYYSXS(Sids,20,1)

AAG_2021::SelByIds(Sids)

  ekpar EP_CVOF_DIST 1 !DIST/point

ekpar EP_OFFSET_N offsetDist !0.2/-0.2 offsetDist

ekpar EP_OFF_OPTMC 0 !copy 0/Move 1 -》ekpar EP_OFF_OPTMC 1

  * ekpar EP_CVOF_NUMOF ek_num_edit

ekpar EP_CVOF_NUMOF 1 !層數(shù)UNDO

ekpar EP_CVOF_TRFL 1 !Extended0/1Fillet是不是 倒圓

  user::ek_offset_onpln !履行 發(fā)生 偏移線

eos

Halt

if($lastent.eq.lastEnt) ek_w_m('最后確立的[$lastent為空 請(qǐng)查證!'//m(IDS)) goto('e0') ! exit

  m($lastent,"$lastent Nxt")

OfstIds::=(lastEnt+1):$lastent !初次 發(fā)生 的偏移線

Dperim::=WrTp::GetLensBySels(WrTp::OfstIds)

*

if((WrTp::Dperim.lt.WrTp::Sperim).and.(InOut.eq.1)) then !方針周長(zhǎng)小于源+InOut=1 ->exitflag::=1

m('SelsOfst ok in',IDS,offsetDist,InOut,OfstIds)

TmpTPth_IDS::=OfstIds

exitflag::=1

elseif(WrTp::Dperim.eq.WrTp::Sperim) then

OfstIds::=0

m('SelsOfst ==',IDS,offsetDist,InOut,OfstIds)

exitflag::=2

elseif((WrTp::Dperim.gt.WrTp::Sperim).and.(InOut.ne.1)) then !方針周長(zhǎng)小于源+InOut1 ->exitflag::=1

m('SelsOfst ok Out',IDS,offsetDist,InOut,OfstIds)

exitflag::=1

else

ekpar EP_OFFSET_N -offsetDist

endif

  *

if(WrTp::exitflag.eq.1) m("WrTp::exitflag.eq.1") eos goto('e0') ! exit

if(WrTp::exitflag.eq.2) m("WrTp::exitflag.eq.2") eos undo eos goto('e0') ! !方針周長(zhǎng)等于源 exit

  m("SelsOfst -offsetDist",-offsetDist,now)

undo

*從頭設(shè)置選擇集

WrTp::SelsHIGHZYYSXS(Sids,2,1)

AAG_2021::SelByIds(Sids)

lastEnt::=$lastent

user::ek_offset_onpln eos m("SelsOfst -offsetDist Do") !履行 發(fā)生 偏移線

Halt

if($lastent.eq.lastEnt) ek_w_m('最后確立的[$lastent為空 請(qǐng)查證!02'//m(IDS)) goto('e0') ! exit

OfstIds::=(lastEnt+1):$lastent !undo后 發(fā)生 的偏移線

Dperim::=WrTp::GetLensBySels(WrTp::OfstIds)

  if((WrTp::Dperim.lt.WrTp::Sperim).and.(InOut.eq.1)) then

  *exit

m('SelsOfst ok2 in',IDS,offsetDist,InOut,OfstIds)

TmpTPth_IDS::=OfstIds

exitflag::=1

elseif((WrTp::Dperim.gt.WrTp::Sperim).and.(InOut.ne.1)) then ! ??應(yīng)無機(jī)遇 履行 到

m('SelsOfst ?ok? Out2 >>ERR!',IDS,offsetDist,InOut,OfstIds)

exitflag::=1

endif

  if(exitflag.eq.1) goto('e0') ! exit

  m('SelsOfst err ',now)

  *

  end:

  * exit(values) !

exit

  e0: m("SelsOfst->e0 ") !TTError("PLSort",WERROR,TTMsg('_TTGEN'\\15,''))

  *恢回復(fù)復(fù)興 始情況

ekpar EP_COL currCol !EP_COL

ekpar EP_LTYPE currLTYPE !EP_LTYPE

ekpar EP_WIDTH currWIDTH !EP_WIDTH

ekpar EP_LEV currLEV !EP_LEV

goto('end')

  #end

5.按給定支持 距離較量爭(zhēng)論 ,獲得 支持 位打斷點(diǎn),并將粗割刀路打斷,對(duì)打斷點(diǎn)進(jìn)行判定 :

  a.所需殘剩 長(zhǎng)度較量爭(zhēng)論 :

  依支持 所需長(zhǎng)度,判定 最后的圖素長(zhǎng)度是不是 足夠,若不足則將“所需長(zhǎng)度-最后圖素長(zhǎng)度”得出“所需殘剩 長(zhǎng)度;同理順次 對(duì)前一圖素長(zhǎng)度作判定 ,直至前一圖素長(zhǎng)度年夜 于所需殘剩 長(zhǎng)度。

  b.確立支持 位打斷點(diǎn):

  當(dāng)前一圖素長(zhǎng)度年夜 于所需殘剩 長(zhǎng)度時(shí),較量爭(zhēng)論 所需殘剩 長(zhǎng)度占前一圖素長(zhǎng)度的比例數(shù)(以下簡(jiǎn)稱為比例數(shù)),使用在曲線指定比例處畫點(diǎn)功能確立支持 位打斷點(diǎn)(此時(shí)需注重曲線肇端 點(diǎn)是不是 與切割標(biāo)的目的吻合,當(dāng)標(biāo)的目的相反時(shí)所用比例值 =(1-比例數(shù))。以便使點(diǎn)位與切割標(biāo)的目的符合 。

  c.在點(diǎn)位處打斷,重排刀路:

接著使用曲線朋分 函數(shù)在方才 確立的點(diǎn)位處打斷曲線,將打斷確立的新圖素依其位置對(duì)刀路圖素選擇集重排,使打斷發(fā)生 的新圖素在刀路準(zhǔn)確 的序列中。

 6.在易斷絲處設(shè)置暫停點(diǎn)

  即在給定位置點(diǎn)將刀路打斷,并在該位置確立點(diǎn)。(具體方式 同5)

  7.對(duì)刀路進(jìn)行摹擬 ,以確認(rèn)刀路序列準(zhǔn)確 。

  8.發(fā)生 Nc法式

  按刀路進(jìn)行摹擬 時(shí)圖素顯示挨次發(fā)生 加工點(diǎn)位坐標(biāo)序列,再在恰當(dāng) 位置插入需要 的輔助節(jié)制 碼及G代碼。因刀路順次 布列的圖素不是嚴(yán)厲 按首尾相接(可能有頭接尾的情況), 發(fā)生 加工點(diǎn)位坐標(biāo)序列時(shí)必需 對(duì)此進(jìn)行辨別 ,以包管 坐標(biāo)序列準(zhǔn)確 。

  經(jīng)由過程 以長(zhǎng)進(jìn) 程 ,實(shí)現(xiàn)法式 所見即所得。加工參數(shù)可直接由輸入的模厚主動(dòng) 生成,終究 法式 花式可按照現(xiàn)實(shí) 機(jī)床靈動(dòng)調(diào)劑 ,避免對(duì)分歧 類型機(jī)床需屢次 編程的短處;法式 設(shè)置加倍 便捷.

查看更多 >>

技術(shù)前沿