Skip to main navigation Skip to main content
  • E-Submission

JKSPE : Journal of the Korean Society for Precision Engineering

OPEN ACCESS
ABOUT
BROWSE ARTICLES
EDITORIAL POLICIES
FOR CONTRIBUTORS
REGULAR

3차 B-스플라인 곡선 기반의 5축 공구 경로 스무딩

Five-Axis Tool Path Smoothing based on Cubic B-Spline Curves

Journal of the Korean Society for Precision Engineering 2020;37(3):217-224.
Published online: March 1, 2020

1 단국대학교 기계공학과

1 Department of Mechanical Engineering, Dankook University JFIFddDuckydqhttp://ns.adobe.com/xap/1.0/ Adobed     ! 1AQa"q 2#w8B36v7XRr$9bCt%u&Ws'(xy4T5fH  !1AQaq"2B Rbr#u67Ѳ3sTt5v8Sc$4ĂCÔ%UӅFV ?_Aנj- H>>,m*>fzp"TrKkr^r.|_&]|*vPuܶvoQ1mwVJUhu-I"=LniAƕ8"۲ k*ҿ[yu:.vUQ+)%F DHyVBk>Hy8jݹ q~9D4KRmzQ)^ʔ.J%k_tVi5NTjg!'ky|5asOȻ)R۸ߩFMԿ3L4j6dڜ#NIwUF]JqB/(FafJRzq3\G՛ ?~\ 6)6W4m[O^L0E&rRMض*C .]Unl-1 1r#Rj/&QɈ׉˩s6Rj=5Tg.y.·Pӡ:JJS:C8-2u]d&vUz;7p9 5VnL֢"y)">iי(IDDd| Yj0; LRfS:ktYK%*N2^m|&dğth":ey)uPQZW)gcC3Pv&MMWd&Ŵ۲mvTRoժM03*F3Yd6\8,\hݻ kߔi<k NTwSԪmljj[>->ptU%'LR>&EBH$MQAUx[$Z6vi&_a.KIQ{hyƒ j"JOC9eFҝfj;˚Ω<[3_m% lQ@4g=5$(J]Yc-OMq<Ǎ wSzڗ)k$7VIP붾ͯnV+卵*t]iЎD31~SA1éC2u)ʼnQn-Uoi3:grI8ؓWm*G zܕ)ZקJ}Y YlGeJ6cB2I NS3Q>k=KTBT]W6+SOXQgGR? telˊ%-Re\hѯ2TF"C/OJΩ6r[N.0{SpljjX1“jOsӥ;ҭhe}xu`Ք&.)yO̒ Fߑ.$Qw;9Iw2o+RVJMSOj[SoҌZ%;`d$blQ{Ro{Imڌ>3egf\O֝Uzx"䢸g+mv%Gʆ:|V[N'&ס-ޝ'kfE|K,G&˳98Juin/\\Qݿ̋v~Ǩ!rtWU d|E߫R4d}.qPw*Ӭv5YEcn~f5c%MTMkb-F>5JT,})QHg%{("ӔȸWMsYyWNRrkkJr0XドnͫT}r-jj,Ŕʍ\Q2Ri>v$5!]"JB2WɅ)]VԜUc8i|.jeRO6^V.¸ Q&#|ܶ-*uOG%JAtRZRr]FFG\۩w+?'zչSѧt jz>KW&ot{7P&2D;&\\>Q2JzܗAKSfeNn[jRrԕf6,q,F1tRfԗ>vֶևj-&R'Zi2=xv~Elbsvm8=ӛ"ū񕜈BȩlWau[]ٷBߨF~J!|Ipr3R̴#Yp)={7:G{+:\W}n|Q#%)7^-h"Ƒq:M*%J&$T軨I333׎g_- ucBwwjp[6i25$̏bU’ٱRv?G\~#Iͪb7<<}Ezt" q_Inw,7-d,G÷%T* Wg1"䥱kq/A.,_KhqŒxwvo u2ۥۧ.bQ}XκA$֣ +K״ZUNmڸII{.v{5z5ѮRme[moyƾd~cRݾK'j.\i&/S6f|b=5: p!6i_ 4j6=.si˧eƾtS^c.Y^RJVS-Vi3,esi08?H$GvZgg?gi䤟2adw릿:"۪lkSN>q-4kI܋ێe̊qۅgDoѨ9; #T.Q;7#~_Ufstb_'w~Xw1Xk,vcOt._}v}8"(4Z\ۘgk?J?bm_c!g{HZV]Fkk%~gEt)b秴vΰB|꽸}mp~E6ݹv;7P٤v+ri*3Ԣ|'O14_~7nP{7ZU\Vű[ +7󖱅o#:ǥŬ\|3r%TJX]V7ez¨Y]lc|O3V! R zbJ'PnGqVJ"19WVeOF埜EaEJωqCN5Z g-9[S<$sUK5b|7sn\7x qmv##FF\ w[=-43$^ooVSiXօv7iB۴yg>]Vf"r$J3""32!Zh[K%7GvNLs+4nB/B{vlsobJaҺJR:0g%&zR\ S3T[&ִor*ⷳc3ʊO[iozW٨%$gn:ܶWwFBԹjHP&z u&F2\f;ipW73 [; '_̽b;vib!oec dC-tS__$Xs]l9&z$2/N>%'[}b{h/{`{Ji׉׏ YJB/X%}.|+{(S:qz]4_Kѵo`^tY_4S#* ^zvݾMr+TrkQ g.8Ͽ^i>ӈǙvix>$o( ^qt*&t1oJVu-ql5U6jCЉmĻ*"?JT=K'O/|=Vo}l0b}}f?X[?/\JSBe,kP8ETJ==?.p5ފgbU9}ǶdNKk—_$8̸͓ۍ8Di\BԿ-1v{FF]|.^ۅ{vl12׏z7-R7wE?\nh\jN/Kձr_oBw"N QMBZqe-m:ӨSn6j4%!hQ;sv'm4kcM=!8\m[M4{SMliۇ%eֽR&N:{2A8)THLK3Zj[jPBx#BگMf:G1\`edcʮ?|w(-̮vXt,bW2;.ιNHRR#YwTM"<;mk\.foIDjmlJ;vxy7o7i\,KQŊ9d^Mmgc L*.T6tLeIuOH3SJQ3=F/ʿ<9\JM6mN6=<{xkP!F1QR[I$6ُimXu2An2yԒMU q f[IB-'䤯jYm52&JG\zд\~vdg QtHGXw&1Lw+nDEdC1w|YJmvP)HZ>i0BPβә?R:QO["]I_Jʏۍ>QKyu^bycBq4lXF~l [\*N>-J6,Gq(Zr5h]CwYӤU~ʶߑ u*SIv%ZfJ7)! FS*s_\|IŸZ)J ]ܜi4"z[+Z,MOZ))}|Ʀ(RUNIII.S'ˍO~˨rn}M)xxӕ0 eyҵ7YMAB]ӣU:/ѭ*6bcwP͵ "+qēVjŹO|GtY4V j[mLV M -m>",B$ GD1~j6O4|LxnNmqATNR3ε|DŽa[fmn-ڭ+FiK7Pcm;r5 l8r{#-]'nrFh2ruycb;pW=njRqRJ(d mnpckNnʹ+6]tz~E=ʕ l ZZ5jSi3#47.Lcfe`9؏v囜.F\-UZ:*0_<Νu9Lӵm&)_3\^ҹ3"1n1v_|uRʞͫr'iȧN_kH׺8xXrj=\МH)V\ˬ.Xʸ oVRC}ySU9/OBY먌5 ٿwޞ)rw8Ӫi5*5ZΗcGƱ !ZۄlmpjJ -l <R̵/JAպZuq\IdUS 48wXJJtcg4cI~aqߓwŷrm-v)G7yS^7H^-\mŌAq|"m9IBnF㏉9[N+mmy/!KKۉ%n +BdddfFF6FQRN-U5;Sv'm4kcM=Mn)\qιqUd9F%",6MGdT%-+~ f%+y֛^3SrF>6lc(֪vۊN;g._0Sѧ]ETWرkQKzGe9ʨsKA"yC y2\[5 rԭ7Gk5Mzw_4sM3hxЊ'oÍ5jsub )ͪ~tR2H]R͍>̋m6=%(˿(Wrr-܅y5(ܔJ޺YunW̹븹NsqK ]/QR#"ZMDfD|43Qw|._ԡSqTZBg??O Ϥ)/E_U|i}2 9Z?¹0:x'3,whǣ?C y-A~=daJј&M?D1_PS+Oi&;a @;Dž7[ zZC"bv:jjMQk$M RԸ3uA\=wI.AwC"^.{?-\NSiˏ"b}T/}q/ o.1M}R%:-ZniʒL$SgrBW*,Mw'N\ɇ{s\j]VryG'8f`}'N<*/`U숻z CwHq18J+vԕKss4R53/&XTt1bZƟo\=%nO)h$rBi-nKĪ^ ջڜlwkYm[̑+/QrZo%TQ;TLs($2C:s.%+eoNttq۰kK7O0m_t_pZ1SsSM7"mevFZ[w -FJ*T*jФQRg BSu|]g:ɵzjqwmltL.e3sRMچkSmjkmWœިm++¦'tILk*բQ D,PB\lI[9{%Gb R6öۍmX-MaʉA931cs..G4CujQտ[9 }G-xwl)IQz j Ó"rqe&=]꾧֎c)<kӳ+0JrRR3'TnXi^xMF Bު*tIL.[h"2"nKzZe'ZV/RrNYz]8죝n]Ķܩ>^Ժ]u-7^\mZjܣ9+Rmn ߑv?oꋘ?&ƪy^N4o=3-ؔ̿*`}V݁ ƒPu8%$ ݗ]wt;\y\>='OjPIp/nJU8{϶FNMsf"ίNqƹ(+ ݮF2Km |jܴZs%zf*eȫ?]4)I۵nR&FX + [jDh(#哑9q9Eծj8noǕZf\J-l&Z˫}`ӎhyrΉn\űn]9pʌӣ"׮Wt?N4_I_~54#/my1Xr*척aS#DT >q ssΛW;3oUaJSRMDgQnt:Ql,/ ܷfRqiM Ȼ>Cob;A>ڦWقM9X~/!'MW.}Vrߔꔵ!5|iB(0-zF=}okڢE$^wW~nokY߮\6՜̌{i-AF*9)\t9IV6۸5ZUF6R$ŨQIq砳YUZ]eyv >hI櫥N )&l JulwE1GDOuFN2| }馥uC1rޫV+^gdb&W[4<^e4YW,d|htͮsUM)۸8:{3d{AѢ)~ \#J=NdƮꮓ90 |1K$v*?мS ]i$J,C,SG?/_՜pMSƯM|mG1V1$~K>CSvkuj=&) -,yLjuFHK{c駗.SOua;BrSqj-ۍZ#'Jys7[g2z/.u4+XV2VQ.ޕ)$"(%)#Z7suZ%j }BǬݕe)Jvz8zJf:hIN|svO1O#IEcۍjݽ:SdὮvu^@:o^5cs>i/VqmVm]ؔܢn6'vޑ̗J4Wn@OlKbX ;n:hgJ9ŻyǑz8f܌q&Y fN0N;[69 rbׅC2/#kE l&2~èMR.*%g=Ft.%؝e8<.e=Uv{~㻏"EˑnvDѭ͜Lu3u0:U֝$[M5<:oi+V4V9 6nXvx&_ q Qqw3W:uϔ2yb/(ɳ|5zQiJ#r|Hw#.W?4aDŲ\ugWG;Cw鐢K|xg)##=O.dF˟jMUvWĻsr.z]kPc9"]R)mkfOd*uYf١RsB Aîh=k]ʳUrrZsq`d#r$/Ը3o^&lRWȍyuW̦Y4QDUMJ65ƒ[+ygk XK_±k#y:8(TJOSQhJt2.DR}"5[) r)6V6u5k:eXZmv𭤔!푊Q[qQ}ҹLE- 8qIZG|UM4j}Mܕ[Vwm{} Naqµ"ԈM zOpKѰ?IAD3Ir0'/q1itoB5{%wkOBn-ۜduqIzYK60{+DʕܞqIt";r1mG/\/ym[6JƫR \L=S=OT@Ix[TMm{>ݾտ֒ݸӉLYIx>+"JVNzx||5rI?C{oz8۹e\R-^\A2F R+N9 vlT]"ۭ d)t֞i #E2jB@׵=#/N+!ĕhx}I!cM`ąZ*ŻɄҒ߮Y.Z}='/oۙ3IpW̮hT7cTSuz9>B}΄&h!>lӵn~j˅IvU.'v'CSZw8QK3G> ,J59ٷ+HSg䧎hJdzvwv-cvxS5[̊n~ؿ%ַX?O0\6ne 6kn9.ϯ} *h 8_QhLݣ7q +=XBҲ5?[[)+F`=4 }B,sNg==u*Nj9k_GJ)+R~GSPBȒZ:(K]heL=vKPӢwq(NrG^ثϣ?#tC?.ͼ[ۅo؞y#%ǛjVyLSw%T*s92JTM%"YkQО.q)gCͲn8cgi6j1MѾ[{9h^vƘǚםidfi.^RHmg&rׇz:}݃}xT$ضk'5s-狶,\vpbPD،=Okf.c#cdz2FK5T!&)|ntD<+OŹU i-G[EE*FDfeaf2QƤM\UG_{ǹm%\yrGy:.\4wjPGUJޕUV7Do\7Vy_13w;[?c]H\$IJ,*L]3b%L{y.JRKG2sq,B6T}(#nW|km+q5] r㪍bJ@y{byz,b踊3ϻJ,'^xd،)JVw#.Vټc''ÝպWtbRؒJz۠8!o9IۄS95E9ؔ-e9JR{dmnッ<[~n${~Њ$W?&ՐY_? #a.ߑv?oꋘ?&ơ|y^N4o=3t=~7!/M3>n8W홎2M`Qx+ z qy8%]7_~540ۦ彷]Wq CѡwkďyF5Dum_}~P(5.(X,K9vᯐ?leB9;Jhm#3{CxGE-S{;@Fz˙]=O'!ɿ]' r`:7'2bЖ>Iy,/eTy/V<.H?UYY{\^#ѣr9^7?xoRȆ7EoS_&??zϾM?(~Q-K&>"~aߨ t7Emsϛ+?;fCr)fY+>z$tIkjn_>vnrֳki-˹l= t;'EyC¥|/BLwBJdgjۛ$s S1|ɍV%JI6KvəhzIlBYɒ|0"Sy0F>eo5W)O+X˻u';v)2vVq۳kۮws?UʑBǴYO漪e2MIjPAک\b1)DDؚKm6ZWΨgȕ۶yjڳ 2ضN[C[|r@9Jfo<_eI7q.|cÊV߷:i.:$ȋ)1%%)ADZCEBxJ0MJۥy(bNsKM9k43IwNt.\%N簤I'.j|ƃ2$grBEٌ\}9:v*!n7M(ɽ]7c@XxƱԨ37īf62cTTfFK]9wntQHͮvٱI/f|j=7}\_V5U^+:uljSȃY(XI.ȱmo1甅jڎIZ2>#\*:gY|4k\8ZwSqtyA!+];бޞKծË¥e)#5ap.QK^8VdU{*ѽL\=qmjnB5>{ Ӟ`v±5 ^k&O~Oshɷ,;6nOW>u6{RqS`)S%jp\ipdEBLfTWy$GIYw~䲭J.1vSY5z.V>^+Ǎvc.I[R{QsNR3ӎfhd>y?UJ*}~[e\i5U^͛E]G_FS(Iɿ]i8:4zj~շsW,ˆsy:%O}iur]iF5~3M:Ӟ#N06)4ߧgdawIotiz:1r5YDZLHBSi;NQc44la=Y kQIT*ըl:tq2(է9VO4뒳܂~2rq'nrVZŦ[t7\oլfb/mlpc.I8콚q^1iE~䰳mi[dۧw֤ICfdFeCsg:i| 6擣׋* 96lust^{%99UNRvaMܽo ammi$em4D6DD\nA%$$#}۷/ݕr99JMն[oT޲E"KTaP+HGkŴj5TM5xƱOS-k`ۛkٝWz;{kS}F;~q|~^_|euwnE'pSupUP)V]vE+t =ZRaVdG6= *.ϼnj9:UɷbېmF_tޫgHjVS'śǕًdkkѻ_]Kv?nT>)^e=Ar1'3ԔILyD?:-^in):{7.؂\.:V }#뺾.3r̸*xbFM aȵz 6SQ:ײj[ 8nn iFMw rR"5M5I旘35f^j='j:nNW.ʭocZvZKV^ɚJ.cM1ZI7E'6rg탸5oZ=[m Z`\hbMUR١Ȗĉ):Jin!_7Dй+f̷eKҷvͨBPR(V`y6tw*MRΝcB.ڭTnc;P$8nFvm4(D(R#R-L -2:FP lxZKQc6I("Km%$E, 78uXIFA$RQI$JbInG]c[ֹ:ZM+n^')JmJMJRu{e)7jQDw~%yQl}BZujSSf۩QZ+Dzhd5o%BIc'GZ?}΍:>Ɵivז-%݌J5MqGWTVʦh݇ܟ~Օ_6 n'{3~mϬj'J11OȻn߃r Qr\3y٘+WӍ'WxEs^O3 o~[|7>]]H9݇ZomT@]?5B:Z߂'`V_+/MSKX߆ޠk3?o7y:4R/7þ] iG߬aBRU&?r&/} cQߥGj2?C5Yśe7hU=?+ x龳f-܈czW^7p%-(\D4h{UK&ӡn^m]Fݢ:`δvj俜F+) y[{{ 7 tu>gvrěOj'5 iRg[ͶFjGe n~qT$ci ۚ0oԹc*jL[sVWqj\ݻ&6"WoK:cnWmrv)o>66(F>=W^bf#c zzʞtپy%mՉPël e}J.\Zk4ttt>oEM=q)hJjI=ͥ(%]脼_88ф;͛gWG;Cw~˘$4=uWdĜTثNDkiQL9U*O"4XP`02,Ge-k5$h>ܼ]3vr6!9RQPIVSnM(ۓ{>;/Qͱv{3&-[rc)ܚI$n{Sv3[j00)-D3z}MRzVQпj,T[uVs0\}Sid;r(ݝJ>æʺL&c[jPK0~d(FKÝW\m]GTcF|Iׁ)I3~#oX%vҦEݑؼ5Żv2qAZTE^..M{ʐfȏ2##.R}*KʛZz^ӞN*lPťLf\G6[WVQquV]XAi)5J!,$iJ6o$tPZc;Kjx_n3`qIelV~vLy{fn匋Ѿn%;zV.n'-ұdd2߽1bZksPe3TI9)$ԩIN9Vơ\=2885N\ p)/a柛w9g_lױo8ݷ iixJV& ғRi{N^_oAŮE6Y7I$Nk$|Q)-*4Z)^¸%4Qm [I%.c-OV+C֧R#%ѨCe3i;w$G+_dy| Fzj$DI(=OA gj%v/]8qԯNIS*֩',Q%\44ZZ%D|Ǧʴ6&vֵI$%8(ԬƾS&#Z. }6z?b/|Jl{ץv&mpx4Z$”ڝ4-H%dGKfM:sKSRWeJAn]>s6应-W9'H]'uȫYvgK^\czp|My\鏩w/ËQ.)]\QiS`8uL뚛̸=J"ܻi\å'-)54Ue]:K\퓡vK xwBqrH\*֕TnzC.mT=t-H]SČ~Nu╏NÅ3f|͡G~B+Xm[Q7U{9"~jgK Zoʰ7"qJ,ekSeNGgϳ] ^.6:s}_,%eRg<5⿨z{ZPun#jRІ.6g T.!]xa c#jN$Zpl̋H WZu8WmMRýsĮ?Mco~sx TU҆Q :KDG4n42.<3/'^?6/ܠڒ^yrrÿr2\D}}B]^E~^T cɛ7϶Y[<֞[7d}2%QPqOLEQR\CIsj1?\}%tJ0e~ *sk"*)&ۓEi#{1J8Hrt|'ܝRr8)=ƔN'RVz:cf]F7bZyZUȘ4x8,#JG̒?.W9XnO]KO]%]ƻ O5Γ/3qÓj؍/r̺rƵ 5\&m6h.xoeX[=<3%< lZ"2h\Z[&jW3ejm?k&[]ųj+{N{66leu_+lj]q* 7g*knأYv= q ەdxЬZ|%GUrQ3jLŒqET]1% qkXYūYc[7Ś]QY\jko\</Lc7+'hMSUc6qXyؙ~6#ѯv.0$BQi5YyIhɍiy=KD!n3Vm[V%W-B%swa97ajۗ m+9~]fKq|Ddaˑ0A]_v޺mM5* F-BYHJ5}q>ʉ.6hyDmpD׬'-_v5;5[8K[viJ.3dR:oYHHh9I7:۽fi+wm^ [)odPѱ52CZUJicSw\&_s0uBȍh32džzQflcd^m|7GѹE!fO5]]H9݇ZomT@]?5B:Z߂'`V_+/MSKX߆ޠk3?o7y:4R/7þ] iG߬aBRU&?r&/} cQߥGj2?C5Yśe7hU=?+ x龳f-܈czW^7p%5|Y:SJE\U-(a_cƣUǽXXKiȞNlmۊڭڄR!**ܤMeȽ$|X5(Ź\rJ~ܮ]>'HB0cp XFr_c?f?7<ukSgov¥iG>>䙗i.+t+bOjIܶ . i^:nm}s}(3>NZ$2Qg([".>i.ƾ)B̋M8+"- >eE6DݥJnJˣt׻ 5.˅nJGwZD~!i۶a,Db3ZQ3O#KO5/֍ozuK'GbRi᝘NV_ҝcvם ZoX}F6z 7e5_e:ۓj=AB+iܔERadMBq*ԯ DwI/Gy*mĥiRKg6skY/#SN4e$-yXM YL?^ĸNNӪ{$r1JJRSLO]Aqm>V/s[~i/j+m>z}eI"Qvp]{ZԼ:{vPAG2=T͡@ڐ#u"E*>C;o$~C#_d/HBq^YRٽzIKbOm\~żjFFGdiQ(*/i*#.FF]©m=BmpQQQSP&Ҫ!T&^>:y)$ˑÐFčI Bӡ-t!bM WҦŶ'UZ=}zvn~oT/\ǒ'nr8 AJIӆz<^uߖ4eFC1i+v!3qNyߕni?4JZlmYFXFۼO0B\m[ tʄU3s"Sr(NJ;SKW72L4̏BVdf^Ҹj\]ȱ۪(ӷm?J-KEmWڽ^4<8qu%9pŹW~877ܾeVгS(յe^C]yX͹! םm4FGȋ\y'Z FX7e)|Gjt߹#gb\ŧq_([R8[qU$Z (ʻezV2V!iQ,i$JE˂٩ a(GK'O{vnBvryRd-RK4=qxZJMl_CuuIz @Rt㮽޳!|68\-l[џ84-2Pu" RJ_^OL>G1~XnBŬw6J0*Uvlږ1N G1q9IUm*'oWu][&UyYZbBZRZNfEJf"+2nF~Eû7n1xv.RUM$6 lAxSQJ&n5ܞwlEói"#>4׿Q.nEq7Oko[1wg8ZQwZYiqtm&~">Bo?w͡ni2峋NCEy Ҕ+%ZJ ʩq*fpˤl,~^Mχk1+:ݕ z&Y`KLӪУDr3[*Z :(SL&ݻ۬Vqsyԭs x|iI߽zZrg.:mp%6ԜvgmpIUt;QbS.Է) ǨKSV,*lڌ|5Jt3#NP.=+OZ~/G سIgbꥹJnl_DUM\iM!֔wVZuԺ,yV.Q>f v:݇WiaŸN5Ҕ[M7SsrvǣrMW= \8ZW-jsnڕ.ZnF2qt ً[ٻޘY۷Zm"Jxr&NAfA-݌to9s359݆mZ+N1-qS$D=17 x׵+%_ ve4ir6Z$FDڗnFtOr'7'{9C˨ꤡaYoace{Refnft RR"4%ʌm:Sj3)OdInTO>X'vxV#jܮw9Fog;5.~Y5\~18YQܹvj4+~t7S ﬕs %^۵ڴDZV69R^Y+rj$ԇoJKR5wB9C>Y:l+EǎS{ʲ{T6Wi* ^^9k/y/Cs\g*qڵgn4T8mERr|Ti+iPe;;.i\EBEJ 丬i9ɧM-ԼsGDrZ>r#R>~X9y4b棇9JwV۔%m(b[Tjvl}۩~nDԺ{Zo-YuK1vx.nWuO+jN [ٮ0%"΢CdTJK-RަH"$I(*ve &҉FzB,_Vpqp9m8werv')E;o&QE׵^d9˦j\_,ڵugZȻ̧8k+jK{wmr@3ӭ2 wFkzFVqs1؛.v'I%$[iT]D5Dl2 nk7qUxԫLS+sا3/ΖeZYK<["%-g/kRs:f3;*E ت wJ%)5&+&rw*霣i|sMҴ|;R+fm䡩.!**dӶ-6s6,]zAXMWjmnz%SJߴm2UXw7MQ%<!tKys#P,W>s;3IYwx<+i_\\\U6 u7P|xbn_k&ӓVOe䦒 VUr,-㘘"-LZeOSҠթrEvq8Kf%5%&K"#%vD/.ZYYŏ+p$nZkvއuW9㓱Z G wYIFyf)?ƎUm5ԉ/'k84{KO:rQI}XRuԪ|*lu)3qZ[mSm5R3".Xcَ5c®ࢫI*۳~wRϿQWޝ(EJrri&ۥ^ʶ齲Im|[yb;mnm֩uiܘq>E+Ikx߄3r33-5𹻖09ϖ9[Tz~mr5NsWl$oPusޛ^{Z;);sڹf\3oٹZmԉ/'k84{NO:rQIBø8Bݱ3n֤DiK4u& ofSȒܩx<˘|N0Fչ]qsp"}! QWw@t4ӭ+cO5%]'*{eM߲DRO1y*q8w++e!c߶ܪlZWّM欼 CQ̼빶lX{vib/V/ ai;x6~]+z]MWB>re-:lgk}պ!#9?%܋V-c[z!W?c7YNm/jRr[HOzԻefճ0q15Zp#rkQQ0tU-AmڵP/cȕ?0cZYj;:0ZM=D6g ?'UN+ձ[K ܖB2'xq9{|۫N0ku 7xaj;n\ 2[VznMlWiKbSk))f..)Km)&bGZ=>OR܍W:j'rM'wYz&/鶧{Sʵb"vջq[I-ՌZH._x*BagC'T(Q:$ͳQcMCKy?3g'ߝqnT);qs #ؤZ}OOI:cfnc8W~qy.;^pVl]Hԓ>^H^@7-AA܃nmL(uWܻS߿ Td95Bdh4t6*dDh!EhI[iŨ\L.&Nc ܮf^;$R)\rip9I|ٺ?#R.ZDZ;/]nݻqs\QE9M&Bd ]N mN*D>tgbK>+ˏ.!23]BȔR1ɝ^j'k2ƮqBQq[$di]icV/e`޵B.FIIJqbi>Ӥ|p; 6${)RU>_e}^dzdfzi %ekRVUS?6'hׂ)5.\+qUgzE2C˷ecŏ^֔ibk shesFWJ#~> Wk~ݨ}ڶ>ơǚ)׽ZƉo~B-ڼrvoE:Ʃ3ۣK7+Y`WirS):{>ڛ}:wԨ(J_";6R%[u&ƫdZ_\'np| RJwNeTW,=rrbnkڄ[M3ܴz)3- R.?:okۼ0TU'w{6&w7j1z3ON'fGoO?)S_bQ_¿R(^ԴԴG.EtMڇ&RUiW uQjU> Kiu1d<ѥIQ'RQ1:O/lŗᏩiʂv&Jc{D5 Tt)1.n[n۶X}RjqnOʽ(~[Ns{ސ⛌uO,kgo֢dRNQȄ .'6W!׌P朼tdZjFGE"]K@'i۪N;sI[{SOzk>`rRR+!σj8&TjlvA̷Q?HyjyLHNտJMjܶT۽lG?SnKN%<‘ nq[N0Sq[Ta(&t(|HGO~gvkݻTR4&Z$#ViOY1r$6YF?e4U/Mvxų:zbU^gQQ+NW_'4jfz^c'#`rvrڡ(IJ/J ݦ6 ]-CW |_{v*_q3^DZ}Ic6Uڌ8p7{crZq5ki`)mU6|-Z5^iEz3P=:Cu7DF'k%}<C-޹ֲ̱#\,(f88%X-N(ck0VLR~} G"-8ӏ/ϰKq?(#nrVTmZ;zióM4 m |UT'C^_1X.gXM{%ʤd 4\ovN":"y-,T)fLQgۢr=/CƹǨJVr[a+!rT|%Y\ٱzsS>jͱ.oOc6f$q% ǒGo;n[];ߎjrk{~\VۓNIGn:iqxo |~t5)Rxעri{Vi&NUOl_ѮMfsޕkЄay.0P{7N((BaIP$ K"U6Gl ݙqJRu+qN$ m#*p<|{:>-Ev=86N*MM긭U*uѾ?/^o7;'u,h4݌xښRM:5.(/ \իU.{F^rmF-Jɷ.>Q"[4xT^OZ~mK}T0ݛ^SAo9u?lX(' qj%=X}"^e4wˠ|rܫ 6I\Ķ;Ӻw!'ڍWg{ i U_9Avhۣƾ+:vs/MK[ɭīe{`Zgb}r[i'GE2J7Nez579wRq+Un ]J.cJ4M:h箽Wxxm^ pc\wcN%'My $$| :$Fqɏ¾^қP9J6Wxvu}ݵP>Z'FFdg"-; [¢cmWkÎT8nG%ݣ7*\խCLRYZͤiD&J#'ehbSyXK|y*ӞpS̍R`[pTr/Eg)K+92{_ n3zwz'oŸۤ+sOj J:`T>Cf*lwd\fYOP"R E֢̔L4ɥ :;.b(B02rJ蠟9>V'9M%)IqnhP<%,r'P/vNSwr#w"ݨaqc(|{kd=^0jTMR2ULNz|.<|^PfY22##!,K~E BEJۜ&jRNsHަޛg\r,v؜.jK3)[EJ2ii{KEiHP^&]Gn8x=K}Wx/KI9-ϵwQ%spܾ[^R}S3$qvq8M[ ozKxcqmJ/ӿ{_}7&ݨ\f6ZSyQz& 7ۉ[8~UNn|nkiTB+4RI8'Nc%tn{!]Ȋo.nEmʱn𵵥J A+wy#+ikǒڂ;՛s85'KmE:Ђu""Iģ5p=БbTY-ͽڔ詻ngL2Q}$de# fs^o{DUUsfwӶ;s1T,ǤtޒQ\෼J=.tKU,7čJ5 N$y3kdSMQU~mO[03 $zAڟsF5^뜞"Կ QHmrR"ӳηer+ҔZ]hE-6Jmt'ޒ=O[sQj)6K}?e4v_KfZheޓ=BV[bY}lݒTTЬ{ȫvO_qpRApVŗ 6ju=*BR)g "O1yhb=tqJ gtm\b3RY+JQ^Ō֍\յ\>+uSi{=x ^w;uӘ#ĸzLn*$anok߷CBӷ}5Yqvdž<( "_OWit5:EZj2 B ρ1̊fi[n!HQF82q1牙nqnEpT(2RMoM4ϳOu ':֧_Xjsg jP^(ڙ{2%E͖j^}ZU[Q$'U) <܂%!s"m R'G5M0<+zM6qYm$ڕ$3ǧH]?o2N<8F1̻r_my[Rf59NjpzBnl7*{.QP 3N&^BLJPjAHCK2Q}$#~YMq8 k(MFMU)8MEqTy+Tʞ-ar5yܕOXw!e;q-Jqܶ䓊Y:LC UE{/t>r"lI9)3KJjϤA 6SEE$d߇3KG*En|P\ԭTn6I-ƍKTj<1H_zwGr19wF N8ݝ+a9ɫM6mhePi%mmD! """"""*1bRKrD"vnrM۫mmĽm]ӡiG~e"˩ lhRTMk^MX["Jݱk7_ޕ*DqĒ&flՒ}`W}~SմZ{ĕ~wm*/{{ѹ_-0ط#P]xlڱ~Tn5wi*lڪ (JxioϏbqKYR|!|KN53 OS222$jzww%i}>N)E+rۥ7c$Ofl/LNث\6H9: FY󡈾I)fB֔JI_ ֣^: 9mY{66㒢7Uj]:.-os[R&gMF3˸#໹kmjq^8W"PΦURjʄWa˧T!͋ lW48JB2ko+ /Nw QwQzQ ے%$ޓ7^YL|r7!v%Trܥ &|M8~ybrn[RV gSn{{*#2#ԽᢏӴHak" ӌcwҜw&RJ07ױ>Ļ =^ BɆ)v32.M1=#6%̠tҤnzqMwԣ~s*%-j|_m*.Yx9Sz=)qE4 3pk+,`=kNRڥ=B=nŔNAx)Q$ԩȧ4z3t#Z2lҮYn$S%y- JzGpu|LBV7ZW#;Wwipܷ%(6jFG5#{$D"uۭ~]֫SrD܃fҎӾ+Tu>-ZTQ& N|$沸ii>eRWݳu'[O̻j8JۻEѩ[]vni= ڒ,[_%kC7I3Nv$4ɎЈeٸoUu:[}Do5|zNq=Tre%ɧ6&~DȍF]ƞG5q m]/w/ \ʲr8=oʔe9U(W"|S]uZd#?Se[W"ֿh][-7Nu:T=)R}.;ml*5Dlf $fF(̏T hiIUU4Szɕ t(%_|2 ~6eM;TƗK[f&]LK^CE2[ȏBOd;Mi|cx,^6;sیGpQ\NuJIFTJ~đArh* B"$H쉩eXPRj?sl"ԥ)su]xpԴY%VESH"ЋJǰ K&5^Ukzׄ8kEgS2h&Se\ Yl]WҶp-ZUvi7QS:4byqOo+[̺腋[6-_Fo.6[7$p&^ _GZԸߍkc.qqoI[9m߸YxOZЦ1uoiSH)P9Uʄjcq= S>֙NeR><;+ڌk%_qT].srNO?s[=vH[]RZHRMtᩗVؾ:/~u)ԍdg%=edVrISb{6vSu=(ܥ)mTv/J}̇8 S3ad:^hBSf؉OɔLhI_1d8,L><_A0y3rXq"'(۱;mFNII.v5_(^q~X>y{3צ I*Vܛv/jW' T'NR'j%ꔩ:mJ3SB}΋!-H-RJBТQoedi9tjENenPpke.%4]#{:>mkEɱdYWl\\\'nRM4&U>?Ќˉk÷!𴪛]]5}UqG~ݏI"O~s6(Ļ)qO~h}uԕd}Q~G,oE!&G&/]_H-O=o{k\̭bkv.Ô܈+;arZx)m?M\3lU$mk-CFXjTv6u' g:Vn_*qk:VC A%'4JV%EY)#BғO4<e׿jQQ]yUr4=wm[K1r׵%Iũ-O}|kC;/VcݩWZ)EHdžTru]8hgĵ-;=>U_ InvTm_jBM+QiF"9*{DI/iuo(=TzϖmPQl_v4z>T*ȴ>YF;ε\t]EH4ꌇ[VrLzef 2T^V>g2~kg5~Nק;{~Z~W}&ŒBӿS2$J?~(Yœ"˲ߩ\O]: J׉ښT{mmIѩn3˧)4LdFZ/zUG>U> n 5& ϴ-KJi2o]uKljvK3$bԔҚV旧iY5.ίfi96v7!v))FJM4{jG~Jt/lUE%pTAFe4qQk\ve۽/u/Im+W')v{\-E|Pms7߮DZRr۞/mu*1ՙaB܆ -xg3#6ۥtRogʌU)׎]ZҞNnŞr}F1Nnޞ;cZ{N}ۿMiuxʉ*3qi'9KHQ$WJxXyرŔe~[v5~/jN9Q4o6rJv FrdxM*iRjMzUinHdн7ᾞS=S'7 } ̽zt7K|_g J=Lq+/Bw_\ۧx\HJUPzQ<hqF[V0x==CsU7q|^ {)Iq38$_A(VgcKu06Ƅ"%i~_ˉk QCܣB8Ku/񋇵u([w}$F|8TՠI.E !;RJ^}MɒD_q2];Ɖ{5}*n7nEInO{Mwv}&q+v [V}Ĝ@%>#dXQ$f;iep.GquixVt x6bj͵mlKقQ[T]zs/&yەnM'W}!Fp_d^Tu N{ɻ'l{խ2.sTu{W^H&;1s)Pӛ6>$mě;Łnj= fLT)>׸+qReɴ[UR\L*P/!$Ӊ3Q 'K=m~6XqW3^W+ųO_[F$rR*u"T%@O +%# ]˽!aܽz{ͷvQh쩎]hGތ5ɇ*DzJDRNLi 4:{~2FmXY-zzĽ^f=]uū{/+&c:Ma{ĝDp2m܍kHș/(--m_vݮK(V{R}.k&yƴ7i^4@3f sK3^Ř˸B=]?gt5KbZB<e;kQLpxuWC}n 5ҴepB##~q= `x]KWF {GfŲ}?G.I9pjWkU]>={7q{kO/^I3==f1ɏ%nnʫ/Zu_yXN<57ۍ'vy/"8넭M2eԷ&Y,в33%IkjMr7xf nmQkX4踼>a-GcIeތw&U=-:qnW)z¥j :WqSZvԒ#j"KrIU)%qrmRoDGQ~SYRsu*V)  ,/x)MFD6O#]z 96[Ui(JRfw'y$GeUީkdMF-ݻ98F2d[o{Rn0n-xsV6Dh|Eb2E:KCOӪv4SJCr"J!!m,hRLD| ZYFm/X~ΧfrN&4Ƒ=Z9Mh.Mܵw/BdrܥniŪ8ɧ|y%œ[M=_tj?F!z5\evM:\ ~F-sg钬OWq“iiȍ<Gi%%n2rqͻllƑ)okw7}\Uk-:&fj솘XerV9yZuʼşdFC=rmo%~ZN78X(N)_7.Εn1MpJ}62jjJdI";R5&iLԸc:jmqiQj$ujp\{;v5B񥍪Xn Ą4qOERjzN(Ga٠䌡)p*v(J7#ZۻZ8O W uONb+^Qipv9GvֽƼϯrYƖKGJQDNPhRJjᡧC"21"9ѓS1;R_O7/WGz)8fE%F2ukmvSov/iZ&/]~KmI[:^~ͤ\kMi稜\ywJt3W7 8Ʒ~ݥeFgѼw"8VVSج\뻆}ݭ/J6Q)d|)zU3>k\L=;ow֯gN3pKѫ|wmkZ$z^2R:E)f>ς нd|#׆?\ǔpV{;\$ƵE%-ͪm0S6[n< kE[}mvE4DDZ^$OZ0*$~XUv҅B@^?]so#%ojw;Y#SxxueBگy v^i-)s)zV jC{7Gt.w3v,ygg8s]aE_,*E tY5k٨h=o"m泏:\6w噓aiL׎n^c\75AGkЯ0Lf46َ`egZ˓p/k;̛]kq!ݸzpԭG"}R9Ve>ˏHUjJ-&7nrnwG*Xv\˱/vN}O)ʼn&CV͍f̵]r\PMB-6Du-#RͰtRN^)mT _}nSȕC*_xBuTkJW[`ɩ`ejvsngP ڻ.-WUtܑqԹQj)t;vN&RNũT+8%IXӃ5fK՛-d9 ]CƑm|nZ-6=Hz,*aEm W3VzRšdY~Xf׀Xx"]s;)5u*ُHB BRGS6bݶؿ 9j[1*jױga7oX CUI%0v#~\-O-Ꙛuɷ쏪&5mY٦M`LJ2qK~HZbr =N'YobI. (^ ׾{_ ?OJ`S`3BN[}5w6:ǵ/iSlt=4F*d&T4y/#. ɵim5Uֲf 眕6Y7 fơ=3dϕq뚩$qTM-%r!$@A? ޾V0c~{[{;򥧅a~ڵ»&ڄv1ek=wb MLkNAԬw-x>~/r=e73VeVN)K%Sښe"+3uXuچrn ֺVzscJ峻m}vb㶓n\YbIUBT%*,0nov=;z꣓S/nSXSpl##k9mXGrZv^Gde!ŷRԠzQyjC]`gToPov{j~KRBMY}i[߶9KL2ԉO0K#m>wB[ٍ+n[[b٦DX ݲpo] [\m5qdT()mo4Oy9Ie b][wղmM~vmi۱~t \}$яimRk(L c Cvk7r9_r1 ;zv|F@KyZ[&jEji/"6$69ml#e]9s\{ScL}Ȣؿ0q/nZ*t,CLoD߉Njǚy=Pgmu6^]l-["çUʖMlʍp-"qmU>۷uFOJ%Ǔkx 'g=睋k[3u,{³WɘݪF]ՍeFX"Oy\,cچ=w/gn Ļ]#2? vqy-gXnR.^}ݺFs{ŝG]}e|#0mjx"ƬWكm?rgU^xVB":Dt>@LRbun~ݭ,w+v⪕;\U(RYa61>#Jm˞Μ9g9XKaG='u8gf}'qy#ɉw J]We.ʲ-<+&q%s?2dњztҼn`cΤmmqMdz O[-ߩӲ&;[tmܝVnr">{x<8U+p:Ig]zjGkt,uzf}dؠoJaکqEq -(:d<պ=eKy[˗^%ZXkX[C2߱\ITTLGzANM￵i]K>UsOGDDD.ZF6* ҃V Zhz{'xp^`wo8r0h ZmJ5"jb[l=yUu7-;7IT%:jFjߖm0tzU'K)څNۧYJ)4IQ}^KWm7kSP>q;ނ#)'n7&׊r?óM{IwR\j2Qn[v pe#/tAF\ϵ225q֒om6z})6҅*oqDsMf CNIN=T S2t,_ѧ}kveMF0J\Rnnݙܹy[rUc-j{yGtkQ%s]5qB.Nw.JN1LvR Ui5J ZESQԙr):MJ+g}χ!2;q([jAud][ljVK3$ײSJI=/|&tl'*n۽f.frܥ jQO8>&Z];.|7T/C}$ڋUmP2Reҭ8hFF\L 3~e v\۫]ݝNmrnB%*]Z«hKc=BTLG :V74$=Ǘy+EX'4tn(I:Ѝ;Df8c,k1%dJ6.j6ź{N~l6&*fœI7 WAlGOu-ҢH,,(ǔe뿋쩨kM܍ZſgRvQ' 9)?n|er˭|I|-fGK.rΛp8XV1%K6mvG+tc+qE&ǸC_Nm:l=_/m5^[dߌڇ.c<%:)tQ$Ow~-aY;UJ>=F)2[nk؆?훐M=l6[4(O.]2#-H^n#->&mp5~Fӛ+|| S,xag%qkEUzUgæBhߕP(7]kFnq?֖CpruZ6*rEڊtS|*tI*E}7R<,nUU֫^I7Q*mSly%rdȓd8hE<9oHhMfNSRj[i7D[Rj݊+kდq{"$$H?p\̅S?㭻;t~R߁)^/>Qj`yt[w ԛ;²~+ߔ_ YW~|o]?x^ᯛ `ʼn;g)T@vWn]>&4lp+$D̢1l|ȨF%-}.9[}w~ ԠLM9hСablfe&QoW!s?wjLK?s7yO>(=C~_nyǜu?v3vyo oI@qV-jeES^[9WoSܝh"l2C1a͔CiJ@3:Pճw=/7ovuk+\V;lDgն<[A+rX~d;m!_s8ݖ׷;;.0llUC+?i#_crʙ1~C.\–q ul8Hܶ2m`ܻM3Tov|Bs rɵ"oLS- DКw=Tv@f'6|YlD͓Y%׵-#Ѯo%:&!3o%\J<02;K87>^vgƓ# ;ݝmz^Y6=PS39U%~ &f# }o!muH;ʲŇ˷yvP+&.7e[3'vR4Yj̗IZ`e˽3o[WU{ m[sUbۋZǾۆl6~9'V*.\S2<Sd*zY[aŶ`]C$n.v^Ʌ dng>ەZ,Mmϑ :n6nϦezWqUJ4! ۇ4R! =>>Fn|Q[{pRO17ƕ~._I''00k=b՛o}Osðc2'o\3}ݭQ^2 . R1yKȣtAݿ-uܾw!`?1Whn|gzUo[ECWwjUIן)^h#1ɭ!/Z np;o;ΗŻkXs."6E`Z1 עӐ9Kl8qd q} 2Stt;#j>;խabONŗ=fwP1j)l6J̶|gV2`y/0E˛6+ԫ1? 6}KW c\KoKͨ2ۅFw–s*TԞLיuDx .kCzWXhy۶gLu|%TnupǺl-S* PRaLnT+c+*xl.v!.U=|; !_L̎뱚U=4hm:ٯ"y)$:>%(n}X'p[ȴ ^˒4kƓmzDx \ 'NqamP7nyN݅=j7%McSڵj%STy qXymvCg{w/w=wSW5r̹u erծˊsOm=DhEҚRb#n)QOxtվQwe]I}wCa'"[ۂ-z}2UuKP$㜉ԧ:mc<Ý>RoL?wu|%ҷ&K y_!y9 ??:tq3(UU-lkS'ɸ@jdzQˬR] EVPW1DJq2n:,c|ǻ̑;y{X,ۂ.u.b˕u.tKBjQ"[S園S`ٮdNبeJ&9Ơ ~0a(Vm٘L+Jr*vڑE( x0+tp˕ n';wm-ޜMOxX>{#2%jgb2M[`K*\5@8l'e=0u+w ֘鳾{y܀:R*Ya]"Ӧ%ktynlۣ65,3gU}{GYrb;ge'TKwǘ.,rpܚV]Tr,!dp /ԺU,xՉ>s׽~W5oTh yx?xrrx?)?ilbT׬,z$Ԏ.UH٠\U1pU:]JwSrGZq8àd驐,N67QYBӢD㏙W!Q25ϸo9ms-7-%3CihO.J鯽-;MZM8ku-7k9S$8]q2E(}bۏI[DKOK}3KUB^u %Y,u.-&f#]'܆o$x`Yu,dzwM;#oKxn;\[d7}Rb+*Y䛂ZuBӱl{j0O̓}LhK;[aֶaGL{Cb#S.T[>߃F]NK"u^LUʐ_ykW?!GRj29͖qa'0[npcDvV)qz9R)PۨM^aJx W] r>];eN3vxdmĘ(5W2K1䪖weF{mE/QP6\u54x5[hۮ-Nk”i[lUgL]J}5 S:EhiUrgHl!ŒJ$pe=q^b͵Q' ?6|R\,JA ڵ"TDꈭ:ymg`B5t%M] <N_zv2_Ortٵ/i/ReӮ*7[qүqEG* m"[I:6e^p"I$jԴęh!m)]GZkcjS!{e^z}+Cѥ9;R|/ֱeiUԏCNu2Zhcٗg$ݭwvr P8*7/Lk~I'Km1+MW%Bk|oOm>-#qj*|Dbѱkn|n{v#jĮqNpMIUm(7Liz;{ҜݞڝVƚVϬ+sO!OstGvxӉ']uӎ4g_ 1^-8ۦ k!)Ύ5O;YSB#2Zzχ;<.ֵOtge~.(RC#wFZeGZٸ6FFJ4e2ˇpJT$[wgV)q6muDGJ56q\I!̗ y/I~RtJ9kJ]Iy*'FN0s.[l!fw'y(7$œ WƫgyΙdMEU JQJv̋vmrۖ.jWR_M֨djYgSj0^\y'EoECjm$ IƩK>Z28J2TiJ2N#}.s cArl嫶nB.FIJ.)۔\ZiM>/hLĸ=C1s[?YMqp|94- 鮝𦔽/k^#NT(Y LS$6˩}{;5 )B۷W$qpN)qqoot}ZDVә;7TiK|6f3h$dԄ}fqݡ>Nb򗉉+ͶO]>ߡ_VtYf79ڰիF sq~prս|QM)g%l0ocJȨHz V;Bb/kLAcfPJ,ԭ{ƍgpjNR6VSI*$!yV足jᇑ.](EܣqM\qJ2eZT).<9UB/(B0j)mtKEj#׿fDI-=rZړj|'Nڤ]k*i$5qt"ݙPM6E4ke^Z8ۏhz$Q(R Ay2zfRñnpnkbkI:=j &ΝșW?׵d{+ύM'??XqeeĽ.[o=UxFS=ӷdZwenՄ]_X=ĭVa* pKs0ބۍfJ3 gz̚i|wnxtjc¼5${(1fXQ65ȼb̶Zkn>%FQMJXӡ{TZEVNᖣimT/37cNJUPnP҂ZOE~"-Rc4^b- FEͧtf5[)S!OZIښݲ͑;tvܡ+N)AR=hCNn;wL16-:特7M$=Tҕ-.R[HٷnXk sn[ҞD-0WS9p9:-Ϸ-jѬNu{ҹfv)[Ľvwfg(ٷfe+0mYj8Q1\ݧg]Eǎvڿc!4#j5̋C2"}BRriFp7=ô\TZ:\BLfj#I22װ<;صZl j 6:l"6]۸ K'6RTѯ^ئOԓV\?$x7s#r:Oh{ց=MmuHԷd{pN /܅:UE#Yy+(SgQ(Щ)RHzw>^Ѿݻ>mK&^ '$Jۻ&w%F|xfz%˳ L~3N?Cy9 v w/{ƿ kz3x> sXv}vP"@WyC z`'톽Dw%-tt yVY\wmuPYQA0iG-2JP,6/gˢ]u.-n!Zw.N7Q]Df}Q0({a\@=i_X7gFǘ8^⻲}G MZ1)WEfO12G+=-B@z\`||w6ċj߬m}UwRox֢I &c~XGP6Qndpvܻul'V7^FJt^{b^B(L~sѣ6@߿^xqU!ڙ5|Vpvef-uӥ^3  FSDɯKD%0r}FF穛r7 +o"V8tv̖NQU!5uFd"bCr^bJ=֤fM#ʳԷP0O-9xRBm\=`r-:;~3Tl(nXtXi%2Vٛ#vwqƴ`L@"H‹qW.j,JM5B[)WܺUeZFqc'V˷1W7V̾-MHФwn8N;HPSdݷC7&2j.W\τGŎ'Vb]c.x+Rx1%C2T{myg[qU|+m:M:շ8҉yWd)ՋWS%%:iqlʹmGwݹ WnNŤѩ5(9hTٵDdGUi-)vSs2 2{OnT$Xck n:¶(lASLeȔBjμPpTb2~N2~%^k[ܗ[Jzs0ӓHBKq[}JَA-$dFQgjxxFv4r/x*Rm% `4J(&iv7SkԲmSH1YWmx 8n.k']:Z˭_W >ڃXЩ. jTq%Aā[E}amc]D:rmHRiu:uӚӢ\p(5-q%e)(۬ҖȽIf<߽pr&ݫVfY91q2ĭEQgYbTGQ&,yL+N$[q*RVۉQ=FuTܻ>f>f㋳8N6$܌n)9&»iˤsX,݅܍ȩv+sRTpO}d?Wn/Inpȸ%O]StQO|v5\}7Zwb.AIVK^:wb{[uݯcytO߶S<{8KSRׁH̏N7ۚ[xkwYy_'ZӵF+>쌛ZUĦreE9F[24De{}@:ExWs-\ǻ7K-\JNvEk%:s˙#κ].oͳ;լ7wB6nwu:$L; DkI#Wz.:Xp(˅v$Sq,wn\qIN-e<5Oe+vuYTpcojUI_ާP8 O 7&VL8z$_B-H-[uh]T{|8=qVRN-:Ij:7PUtXϷmy鉿:RIM~33ӸS2#׳GdŲ5+/Bx{(WzȨ5Y㞎#|˖+ ط.|e<o/rߔX>7s}VE.OVti׽ .5nNJO"95{#q}Ay9do]R"M6z\tnNS-D!@3N_jicWsy*5uٮRcWv/.,j}=S)j5C^> Ie =gu9ӛqjtz]۪TMoߧI!Ǧ¶m:,"[L!{qAv-o 3{"KʼnrIkfٶj2ƙ؄S`7` k6jzޞ?e5G&6uʷ2%ԒRKE*G\Npom F/V |C0.q_eenƣ<5Oh'67ɪn[SĽ{ڔjǘzs;~׌(ۂ`ܢ1ƣ` _l9Va6%UQWh~P~\F^ZHR@:ۧCJ{ôGeBh;~ۧnU J\O+n2 RҠ)ng}Kh{5+S×ܛ.1ZjG)iRȤIN 4%{oΜ/eO[Nffd ĹK?nnԼMqX'܌nZvq<ķbFnͪaQ`5 s,M_լ?-@_{w{ӺձJ}GF[%v\5[ŒGkOw/ΜM9rjË%2+rd~+󲕛C9U۳r[aJǭm|˒LAʨSCq[XMۺoubfp:t+ΤĻo ][ zt-*67kvS7D·MMCQXm;)܎n_h%]4ܙnRk!]ڵsDUF"`R, &#R_*[z*ZqFXɻ]7|۵w+'pFDەs=r./ᐚm3Hשy yD"jHCr':sA65نѮ^o1V/ f;nFr3VM)e*- s D'H݅fӧ\*޷[k<7u<-]֍Q8R h|p=WlW3s%Q %3l}@U-K6f-NϿu|ڴmWN׮[׸F*mW\%r! C78:޳vBG7ŵ.JթԚ2x)ST!řn~9 W:Wpܢ件{xf8ٳwKE ҰWxVB\qBZ 2wMb[lGSnyԚ~z9ZmያvoN2Afnݽjf>)j3 !;gOYʹK" Wftڎ+׭b*2ϻK>ۢӱeyԪXISUm[z+ugX%0lϏnvg!;t{BqPj>PyvR7Cj]O%+ݲ :qiMj6W}3vC/R=4Som]ŗ=ю, TF6U_-\6MyskwMr&Q\wjKܩyMϣUj0*}RZܷSdY3>Zjqj6TgzpA/M`/Cmл,޻feE[/+uk^Vs1W$G(JsW2ٰu*߻q*Y޵.Wi:ur5T),=0uRmho.twܖiYwrWHntvEj8qhf`Ͻpf(R&>Ki%I7$QӖm-2 ~yߗQ-앑/ x[k8nw.c㩵k}]FkbJl:{.(˩n0Hqvαp7 귎.Gupx[N`Yq'+ruU7[ү+>!xrȫoSo]OC# d^Q]\>!ƛGw^Mx"-+%vdX-:M2UR%d>%l ioSu6lsj7D P>XxHz Ukà(n^Q V>5cVtWj SEiJdznyej[lE' 3kuٌNn4JW)gB {4 j6&]' m-(ZMEz8cz>WZ6#7+[,MR-Z!4ܓtCyE|umj1ƽvƷV\;%>Q :#Le(iVz5 4ũۤUWxX ^(ҔsլB2w-V ^R+; ˂M\z+Uwr+RWY⺧~ Q*JcYSNSλUd8in=v K낫k\IRרSUaCFmϿ5̗P|u ZTԕ}>oYѲ1sfP+sQkX8Gb~6r,s>^\,mGL+7[n-E\.Fqḕcl*Jmjb5 ,m]c}NXfeVlǸJ5eˡ$4%g~N p4Y*WwW٧<8v#;qԩTut,m"#Y D\5V`\\Lȋ];LȇiS6ϝZ l>LruR\v=ǘϔDg=ԈdFZ+M{=|,[;0>RiSi4,S5}yxw&(E7&fݙ4UՕ! ~'Id)]ǽu2K-fޭ \08Vڅ쓬=Vy^^ IhyKR-B#Ըr=]mܻӾ'*Umkoy rTqT_i,/8Q^<ݤ|4ԻO(܄"'5N~#m.(Ҿ2i6Uev&I*<}҄$eNtÛzyWJubW^iBW.܅Wڮg]irO6Ve90sgv.+sV޿aޔ[p?3q*FutUo*eL\KM'EG*ZcAFfG5J 5jj=MJ3OK:k˝'NMB7m3uFҕ\-Ywg%PRqMIyZGY9|μvn߻5cWݷa^+X֥vnݘ\v7m>Fgzv"-;Ew֝}1|RjN𿊀7g#֟*GQQ|#/bo]p$>_Un9гUbn9׃ErQBU-^vDmVh'<R[fdHT]*~}3j;nvjc7s-rӳ Y8[n[1pJx kX[Jk9Mn!_Nю6x:iZ˦U |߉^Ԛ݃hYxk &U^bwKk.[jE+P(˞=9j@snCv7%c_7=xǁ<l {t'酚+1F‹l׭:ݻILruǶkL-L(K0L1&>wXB(pm;1fpnlp֓%Skidkt(U +xulo'/ڕeN r=^pZZ:Pnj8Hf"48ijY[ N[yZٻ+=  ø:3 ?^ܷ^Sr#YK[UF?CuhC b]GM')mڏsNrܗI]ljq6VB. W,UK"YX5{c >Iqā> T:n!,5l2VzCl|+I[*SrjnS6٨y+x,@>П.g+!rn9>N|W>OZT_ut Y""v7|sfި;Pclm EùN,{'fNT%U&LfH8~1v>Il}统u6P˗c(WV~H^bMU.o*oOF0N:_:6Smr_.b+|ݶYY غF,mwjv>f*>QM뭱Sd:`N{l/⎱;n-z~"Gze퇎J5S KG9!Gn;N1 ݎ h6m|S?ɂ5'WOÞ 7|7^ao @mxGmi^jϽ>01Mf0լD3-2T. VXR"ɥV Kl J O7|u?bvа;6.eߓ|[1bmRr,eRz`z 6܎-ͨku͹Fː dPhYgZUj}nvX;z=gVեTv_J }\1n7w2J?ޘγc\E 1Aޑzq;\r]]\Y&[nsNei\uURje*Qk2CSl*xJz-xٶlm+|UjUؓ`Ladqiĩ!Gd\W~fz;Tn*PdRM&T4`չSWq5k훶(N"Ӎ% V]֦wb.nUO!u*J&Oӕ2e|Z=eV쫚΅g#+/RW:طnbi*Wyo)p{:ETKؚR(RY+r웓r(IF) VmȵNB:h Q1ғ|u8E]{,'$-TR[j49l*3"I鯴zhd>Q+\BkNF=.$ZR4Nwհ(IpNi.(Gi33#33e$FXK*NdWrud[r{xnk$v2ıh+J1TQ[#JQl[tRO]LHKٮ NӍnF񨔤֞Em'MILB"ԋ%dBŋ+p̿_17jzT~4pc Vo\ƹb9Rq-'1j;8ܗ)hE%DZKS<璸Bu*%*Yw5ڻ9ۣ^z4U; Ñk\U(o~G?VUĎ:?P?_F_Kߤ~ᓾI |pr.Ok\SklRhҪz{­P .}SktZ7UQ4ڌIM8̈eaӊJZ%FFZu,KZvln廐SNFIVtuNi?CM5]+Ph,{jN JSR$IS^tSUVrORYu.9WyP6 [Kiu m!X|]Y79ӄ)\ģ)pbڳr%*&ꑶ_-H*dzk)1 V3')UAϹٶWRxe'պn۫h7AR9 EAJeGLms!%D| A 5]/Q3eb̄vnVn%za\m kZnv([emqrIҕij|""><hjJשvvǕ|Pޟs}V~2&Z?+2N&Z4w@)4iSڪ_>/JN9Hiۏuf8'It[ȲR.hZ$ȋ_Y ~U<UUO*6b)Ovzڜj\R̋.$FsQuҊj^נ䈈y<zZIuP[}Qm=C?zN(Exqu/kn S-FzKZzOסӽjJ\)F3b!r5ٝ|;6 o=-3*λ]αb\abqRi-w޵⦪~b8Kpo)Z=>)ғ"5/GTZLE-輵f7ݘ۹~+&+w/7GFI:l33fg.N~۲\2|*cnermnnM+Fq"ѪIz%j =YW8@~gc/~?N'?)«qȸs➟n=k" X“m֮VreMh2[uݖ] *FܖN)MȐ`f0 g,C9̑o;ddudJ=In13:ݒvvdMUEJLp^,6t-@͐9'{7m{-3,>hnF;ѰM)->>+Ěz!R* :`e--m7nB\u{b U>[8֪]6^ߤLʦ\DFNo$$dͶlgno8OrsQ\l̯hRo8tuNo+ CTxu!2[>ctFpeޓƻֶR"3QrQuOѳgwQr;S~)6HhZw/GgVTmUf_yt7%$];zLWF̰xy2Ʉu!MCmš_0[W6jf#a-KLi+3Q7c^qg%s<1aYIQeZf+}>;S6L0]Yu_h9߻<ƅpmiM$AVvŚ,*#t2.8Y)-Zhshü97/#Oro"u^/uFgWɺ,p:6a,^x%$Yve^3PƗMnTP&yS}OJ '덫MH^:rXԴJۋ/rI;S*,+yz1hv)Qw^ڍJ2oL׊q(\fDj:^T%vOadɂnS}ZO)N*λdaȜkG_PIEO}нa(^iQX᯦-7^)%g'SJx(.S9zVɴZ{E ))ۅi/s7 VIV-|sj0*UBTHIqRf>FP$KqN0 R̻8j\GcC}IUz\i 6F)Q{Gҧ3qSzKj-Az VЛS-zy:8*mNk|D鿓ND2u+0Yŝ7kqm·?8Ib]u>˗^_>(]vӋzv+ݩ){vZrJ2RQ몋C$z [,pp,8mڊbR]Il .f~d/ݓs㓓mͶ{mgjQwn=Oic9ܚm4Q/6ݨ[TƧ?nԶoytf{@AzT{e{[O'ZRZt~AGD?s3􌿂ՉIw'|~U\ w~di:Kޱ)U/sU%njѩ&GSP^ǝd)..!^U` 1wX[aԇSxoFV6_扐)T 2Mfd=ۖͭiZ7KK Bi9%7@<3<ճԻU,},a}FRqɛr i@ONJvK KLN M, ʖv0n-]DwlI-X6ܶ$Jʴh5O+mOI+Ra瞠\ MG7BفjYo1#͖0V`Ѱ2M?c8>-Crt*JkIGS:e#hPKx[鱼>{5m;wcն&>j-M֥^َ) 6yȜl_w{-ō̱r> U=]iw3)r*]:K]6BdCTZ|>gf}LW}[$'Y5 &c -j.z6R 67MԷFMnÌwI7w5E}o޽+K ֵy4܌ȥW"COyR[q5Ӱ͙f[v"_#q{MV6܍3"u9BK(41ӯqˇc${ߝCi6I(OmθzҜ5k^:>Jzw.>qV8{vU[ڶEm|DžBz].KHjI]x;Mɗ{m,qZXr忇2u^RO2Z}ZێS[2Jen!*NDcrBUً4<ǼMҲs1Zw57c3&ĖڻzmP*FuJG1-dN:|OU}ҵgi2t~F^^Z.VxjvŧnNNh<:]^~NN+ge^g.SԔGFe߯'[vn'(ScJ]kܗ7eJOlRrfziݮq̋S"\*U<*W]k$FջV}? 7g#֟*GQQ|#/bo]p$>_Un9;l S VvQU%OLU{οmU6bZ1MTx%!֙Q7, J=!3 ;Q,ڌ;6ͱ݅q^&ߔ·n #WbwӖX.HtG)N&d̵zpI,n cu ޖUj+VXUp[w]N o.J6Z8Ts&utxln;~HPHS/xw`G\ʡ¿rj Z^vt"[L:SD\h0sUwR,}[x^X,R2Vn< ]2YDr[SRKs8tXb̷G?Ps Tv 3be,zVz D[/I.KOEQrm'$7|[J>r S`5յwT#\w1FTz\Ԛ &"ׅhSHrD\'r]~/>p;:Piuu:"9ő=tTaS7V2rӷk7mb[^WmPp*[y.Þ6f]cizJCgRR@UVl큝.WJP1N{/\whZ ػϧӱE7|E֫Sί.x-Y&pi%v''-x6r'Ws*6=DwwUu]=C?MK [yrtܒG$!WGqJ*%SAz ED[^)/tė/g=#Omd.|^n/sl׉g DZqemqowݮRzUܜ=ڽ-o/Iۖ;qVʘgPp|mm;6zGl9.8pwWgsJ2qPbe}}UpNjٯ}7TMQKrؽtEx%v w߾8%|j;~|}pK]ơ/ w߾8%|j;~|}pK]ơ/ w&~e_H 8PL7:%ʭ5Kw&U2vwR_+rm'}C7#rWoO&HoG?M$UR7{FU]u ;# !Wk`|W>׹潇9Vn)6)*ҹ{%qV4q>W1vi#T"Qk&GwxcJBJ- Ϸ^ˁxkU}ԣ/3.;]J=<*)cS)ROK9H=,r zX @)cS)Da^ԽQ gxJI=w֣gf*TRj

#E-mail: scjee@dku.edu, TEL: +82-31-8005-3504
• Received: September 23, 2019   • Accepted: January 16, 2020

Copyright © The Korean Society for Precision Engineering

This is an Open-Access article distributed under the terms of the Creative Commons Attribution Non-Commercial License (http://creativecommons.org/licenses/by-nc/3.0) which permits unrestricted non-commercial use, distribution, and reproduction in any medium, provided the original work is properly cited.

  • 74 Views
  • 2 Download
  • 1 Crossref
  • 1 Scopus
prev next
  • In CNC machining, NC data created by CAM software is usually linearly interpolated. This linearly interpolated tool path, however, may degrade the dynamic motion performance of the machine tool and the geometric accuracy in comparison with the reference CAD data. Tool path smoothing can be an effective way to address these problems. In this paper, a five-axis tool path smoothing method is proposed based on dual cubic B-spline curves. The proposed smoothing method includes two steps. First, the tool orientation is adjusted to reduce drastic changes in tool orientation movement. Then, dual B-spline curves are generated for smooth interpolation of tool position and orientation, wherein their control points are created by using modified internal division points between the top and bottom points of the tool defined by given tool position and orientation vectors. The B-spline curves pass through the junctions of straight line segments comprising the top and bottom points, respectively. Smooth tool position and orientation vectors are finally obtained by simultaneous interpolation of the B-spline curves. The proposed method is implemented in a PC-based five-axis control system and experimentally demonstrated to show improvements in the dynamic motion performance and the geometric accuracy compared with the conventional linear interpolation.
동시 5축 공작기계는 가공 방향에 제약이 있는 3축 공작기계와 달리 3개의 직선 이송축(Linear Axes)과 2개의 회전 구동축(Rotary Axes)이 동시에 움직이며 여러 방향에서 가공이 가능하여 3축 공작기계로는 가공이 어려운 복잡한 형상을 갖는 자유 곡면의 공작물 가공에 필수적이다. CAM 소프트웨어를 이용하면 5축 공구 경로는 TCP (Tool Center Point) 제어가 가능한 형식으로 공구 위치(Tool Tip Position)와 공구자세벡터(Tool Orientation Vector)로 이루어진 NC 데이터로 생성되거나, 후처리기(Post Processer)를 통해 공구 위치와 회전 구동축에 대한 좌표 형식의 NC 데이터로 변환될 수 있다.
대부분의 경우 직선 보간의 NC 데이터를 이용하여 공작물을 가공하게 되는데, NC 데이터 생성 조건에 따라 CAD 형상을 근사한 연속적인 미소 직선의 형태로 가공이 되고 설정된 허용 오차 내외로 기하학적 오차가 수반되는 등의 문제가 있다. 또한 미소 직선 간 연결부에서는 공구 방향의 변화로 인해 공구의 가속도, 저크(Jerk)가 발생하고 이로 인해 진동이 유발되어 가공면의 품위를 악화시킬 수 있다. 이러한 문제점을 해결하기 위하여, 공구 경로 수정을 통해 구동계의 운동 성능을 향상시키거나1-3 기존의 직선 공구 경로의 연결부를 부드러운 곡선으로 대체하는 스무딩(Smoothing) 방법4-10 등이 제시되었으며, 후자의 경우 3축 공구 경로에 대한 스무딩에 공구 자세 스무딩 방법이 추가되어 5축 공구 경로 스무딩으로 확장하는 연구가 진행되었다.
3축 공구 경로에 대해서는 직선 이송축의 최대 속도, 가속도, 저크 등 구동계에 대한 운동 지령의 한계를 설정하는 방법1,2과 NURBS (Non-Uniform Rational B-Spline) 등의 매개식을 사용하여 부드러운 곡선으로 미소 직선의 연결부인 코너를 대체하는 스무딩 방법4-6이 제시되었다. 두 방법 모두 이송축의 가감속을 줄여주어 진동을 억제하므로, 가공 시간의 단축과 가공면 품위의 향상을 가능하게 한다. 또한 미소 직선의 연결부를 지나도록 곡선을 생성하는 방법7이 제시된 바 있으며, 반복 알고리즘을 통하여 CAD 형상과의 오차를 줄여주었다.
5축의 공작기계는 공구 위치와 더불어 공구의 자세도 제어를 해야 하며, 공구 자세의 운동이 기계 좌표계(Machine Coordinate System)에서 각 구동축의 운동에 큰 영향을 줄 수 있다. 즉, 공구 자세의 급격한 변화가 있을 때, 구동축에 가속도 및 저크가 발생하게 되어 가공면의 품질에 악영향을 주게 된다. 이를 해결하기 위한 방안으로 공구 자세의 변화가 큰 지점을 선택하고, 그 지점의 공구 자세를 Quaternion 보간하여 공구 경로를 생성하는 연구3가 수행되었다. 이 방법은 공구 접촉점(Cutter Contact Point)과 그 점에서 공구의 자세만을 고려한 기존 방법에 비해 공구 자세의 변동폭을 줄여주는 장점이 있으나 공구 위치 변화를 고려하지 않는 방식이기 때문에 형상 오차가 증가할 수 있다.
또 다른 한편으로, 공구 경로에 의한 형상 오차를 일정 수준 유지시켜 주기 위해, 공작물 좌표계(Workpiece Coordinate System)에서 공구 경로의 코너를 곡선으로 대체하는 방식이 연구된 바 있다.8-10 공구 자세에 대해서는 기계 좌표계로 변환하여 회전 구동축의 움직임에 대한 스무딩 곡선을 생성하는 방식8이 제안되었다. 이 방식은 기계의 구조(Configuration)가 다를 경우, 동일한 NC 데이터에 대해서도 상이한 회전 구동축 운동을 갖게 될 뿐만 아니라,11 측면 가공 시 가우징(Gouging)이 발생하여 고르지 못한 가공면 형상을 얻을 수 있다.12 공구자세벡터로 정규화된 B-스플라인 곡선을 생성하는 방식9,10도 스무딩 곡선을 생성하는 방식 중 하나인데, 공구 자세를 보간하는 기준이 명확하지 않기 때문에 공구 자세가 불규칙하게 보간될 소지가 있다. 또한 코너를 곡선으로 대체하는 상기의 방식들은 직선과 곡선을 번갈아 보간하는 형태로, 본래 CAD 형상과는 다른 형태의 가공 결과를 가져온다.
본 논문에서는 3차 B-스플라인을 이용한 5축 공구 경로 스무딩 방법을 제시한다. 제시된 방법은 공구자세벡터 간 각도의 불규칙한 편차를 줄여주는 과정을 거치므로 가감속을 줄일 수 있다. 또한 공구의 상단점과 하단점에 대한 경로를 두 개의 곡선으로 생성, 보간하고 공구 위치와 공구 자세를 계산하므로, 기계의 구조에 관계없이 공구의 동일한 움직임을 생성할 수 있다. 스무딩에 이용되는 B-스플라인 곡선은 구간별 다항식(Piecewise Polynomial)으로 이루어져 있으며 연결부가 부드럽게 연결되므로, 미소 직선의 연결부에서 발생할 수 있는 가속도와 저크를 감소시켜 진동의 발생을 억제할 수 있다. 그리고 공구 위치와 공구 자세의 조절을 위해 만들어지는 하단 곡선과 상단 곡선은 공구 접촉점이 CAD의 형상을 추종하도록 생성되므로, NC 데이터 생성 시 발생하는 기하학적 형상 오차를 줄일 수 있다. 본 논문에서 제시된 스무딩 방법을 PC 기반 개방형 5축 제어시스템에 구현하고, 기존 직선 보간 방식과 비교, 평가하였다.
본 논문에서 제시된 5축 공구 경로 스무딩은 NC 데이터를 공구위치벡터와 공구자세벡터로 분리하고, 공구자세벡터를 공구 위치의 간격에 따라 조정하는 과정을 거친다. 그 후, 공구의 상단점과 하단점을 정의하고, 상단점과 하단점을 근사하는 상단 곡선과 하단 곡선을 각각 생성하고 보간하여 공구위치벡터와 공구자세벡터를 계산한다. 일련의 과정에 대한 순서도를 Fig. 1에 나타내었다.
Fig. 1

Flow chart of the proposed smoothing method

KSPE_2020_v37n3_217_f001.jpg
2.1 공구 자세의 조정
CAM 소프트웨어에서 생성된 NC 데이터의 공구 자세 간 간격을 공구 위치의 간격 비율에 맞춰 조정함으로써, 공구 자세의 급격한 변화나 불규칙한 변동을 줄여줄 수 있다. Fig. 2는 공구 자세 조정 방법의 개념도이다. 주어진 NC 데이터로부터 연속적으로 세 개의 공구 자세를 취한 후, 중간의 공구자세벡터를 조정하여 평활화한다. 조정된 공구자세벡터는 공구 위치 간 거리의 비로 이웃한 두 공구자세벡터를 구면선형보간(Spherical Linear Interpolation)하여 구할 수 있다. 구면선형보간은 아래의 식(1)과 같이 정의된다.
(1)
SlerpV1,V2,t=V1sin1-tθ+V2sintθ/sinθ
Fig. 2

Adjustment of tool orientation

KSPE_2020_v37n3_217_f002.jpg
여기서, V1V2는 구면 선형보간의 대상이 되는 단위 벡터이고, θ는 두 벡터 간 각도, t는 0과 1 사이의 값을 갖는 보간 비율에 해당한다. 아래 식(2)를 통해 조정된 공구자세벡터를 구할 수 있다.
(2)
Oi=slerpOi-1,Oi+1,Li/Li-1+Li
위 식에서, Oi는 조정 후의 공구자세벡터, Oi-1Oi+1Oi와 이웃한 공구자세벡터이고, Li-1Li는 각각 (i-1)번째와 i번째 공구 위치 간 거리이다.
2.2 5축 공구 경로의 스무딩 곡선
스무딩 곡선은 복수 개의 상단점과 하단점을 근사하는 방식으로 생성된다. 이때의 상단점은 공구위치벡터에 공구자세벡터를 더한 좌표로 정의되며, 하단점은 공구위치벡터로 정의된다. 즉, 상단점과 하단점에 대하여 아래 식(3)식(4)의 관계가 성립한다.
(3)
Ui=Pi+Ai
(4)
Di=Pi
여기서, UiDi는 상단점과 하단점의 위치벡터이고, Pi는 공구 위치벡터, Ai는 공구자세벡터를 나타낸다. 스무딩을 위한 상단 곡선과 하단 곡선은 상단점과 하단점을 기반으로 생성되기 때문에, 공구 자세를 공작물 좌표계에서 제어하는 것이 가능하다. 이 곡선들은 매듭벡터(Knot Vector)를 공유하며, 각각에 대한 조정점(Control Points)은 동일한 알고리즘으로 생성된다. Fig. 3에 스무딩 곡선의 개념도를 도시하였다.
Fig. 3

Schematic of the proposed smoothing curves

KSPE_2020_v37n3_217_f003.jpg

2.2.1 B-스플라인 곡선의 특성

B-스플라인 곡선은 주로 자유 곡선과 같이 매끄러운 곡선을 표현할 때 사용되며, 주어진 여러 개의 조정점을 이용하여 정의되는 매개변수 곡선이다. 곡선 상의 점은 차수(Degree), 조정점, 기저함수(Basis Functions)로 계산되고 구간별 다항식으로 구성되며 아래의 식(5)와 같이 표현된다.13
(5)
Cu=i=0nNi,puPi
여기서, Pi는 조정점을 나타내고, Ni,pi번째 p차 B-스플라인의 기저함수로서 Cox-De Boor 점화식에 의해 다음 식(6)식(7)과 같이 재귀적으로 정의된다.
(6)
Ni,1u=1uiu<ui+10otherwise
(7)
Ni,pu=u-uiui+p-uiNi,p-1u+ui+p+1-uui+p+1-ui+1Ni+1,p-1u
위 식의 ui는 매듭(Knot)으로, 각 구간별로 정의되는 다항식 곡선의 연결부에서의 매개변수 값이다. 매듭의 집합인 매듭벡터를 U = {u0, u1,..., um}라 하면 다음의 두 조건식(8)식(9)를 만족한다.
(8)
m=n+p+1
(9)
uiui+1   i=0,1,,m-1
p차 B-스플라인 곡선은 p차 다항식이 매듭에서 연결되는 형태로 만들어진다. 특정 매듭의 다중도(Multiplicity)가 k(k < p)인 경우, 매듭에서의 곡선 간 연속성(Continuity)은 C(p-k)를 만족한다.

2.2.2 B-스플라인 곡선의 생성

스무딩 곡선은 공구의 상단점과 하단점을 근사하도록 만들어지며, 스무딩 곡선의 조정점은 상단점과 하단점 각각에 대하여 일정한 비율의 내분점을 생성하고, 내분점을 인접한 세 하단점에 의해 정의되는 보정 방향으로 특정 값만큼 보정하여 생성한다.
먼저, 두 스무딩 곡선에 대한 매듭벡터로서 식(10)과 같이 매듭 간 간격이 일정한 3차 비균일 B-스플라인의 매듭벡터를 고려한다. 이 경우, B-스플라인은 Fig. 4와 같은 기저함수를 갖는다.
(10)
U=u0,u0,u0,u0,u1,u2,,un-3,un-3,un-3,un-3
(11)
uk-uk-1=uk+1-uk k=1,,n-4
Fig. 4

Basis functions of a non-uniform B-spline

KSPE_2020_v37n3_217_f004.jpg
식(10)식(11)에서 n은 조정점의 개수이다. 이때, 하단점의 스무딩 곡선에 대한 조정점 생성 방법을 Fig. 5에 나타내었다. Fig. 5(a)에 제시된 바와 같이 생성할 스무딩 곡선의 하단점에 대하여 0.25 : 0.5 : 0.25의 비율로 내분점을 두 개씩 생성할 수 있다. 이 내분점들을, 내분점 생성에 이용한 두 하단점을 잇는 직선 방향 단위 벡터 t와, 내분점에 가장 근접한 세 하단점으로 정의되는 평면의 단위법선벡터 h에 동시에 수직인 벡터 n의 방향으로 보정한다. 보정 방향 n식(12)와 같이 두 벡터 th를 외적하여 계산할 수 있다.
(12)
n=h×t
Fig. 5

Control points generation

KSPE_2020_v37n3_217_f005.jpg
하단점의 내분점에 대한 보정량 εc,b에 대한 수식 유도의 편의상 하단점 간 거리가 일정한 경우를 가정하면, Fig. 4의 기저함수 값에 의해 Fig. 6의 곡선과 조정점의 기하적 관계가 정해진다. Fig. 5(b)와 같이 인접한 하단점 간 거리가 같다면, 내분점을 식(13)에서 제시된 값만큼 보정한 후, 보정된 내분점을 B-스플라인 곡선의 조정점으로 하여 하단점의 위치와 곡선상의 한 점 C((u2i+2+u2i+3)/2)의 위치를 일치시킬 수 있다.
(13)
εc,bL,θ=20.0208L+0.25L0.4792-0.0208/tanθ2
Fig. 6

Geometric relation between control points and a B-spline curve

KSPE_2020_v37n3_217_f006.jpg
여기서, L은 내분점이 속하는 하단점 사이의 거리, θ는 하단점을 잇는 직선 간 각도이다. 일반적인 경우, 인접한 하단점 간 거리가 같지 않으므로 Fig. 7과 같이 i번째 NC 블록의 두 내분점에 대해 아래 식(14)식(15)를 적용하여 보정하면, 하단점을 근사하는 곡선을 생성할 수 있다.
(14)
εc,b2i+1=20.0208Li+0.25Li0.4792-0.0208/tanθi-12
(15)
εc,b2i+2=20.0208Li+0.25Li0.4792-0.0208/tanθi2
Fig. 7

Modification of internal division points for NC blocks

KSPE_2020_v37n3_217_f007.jpg
단, εc,b1  εc,b2n 의 경우, 첫 하단점을 포함하여 정의되는 첫번째 내분점과 마지막 하단점을 포함하여 정의되는 마지막 내분점에 대한 보정량이므로 하단점을 잇는 직선 사이의 각도θ가 존재하지 않는다. 따라서, 가장 가까운 각도 차를 이용한 아래의 식(16)식(17)로 대체한다.
(16)
εc,b1=20.0208L0+0.25L00.4792-0.0208/tanθ02
(17)
εc,b2n=20.0208Ln-1+0.25Ln-10.4792-0.0208/tanθn-22
내분점에 대한 보정 완료 후, 처음과 마지막 하단점과 보정된 내분점들을 조정점으로 갖는 3차 B-스플라인 곡선을 생성할 수 있다. 이러한 방식으로 생성된 B-스플라인 곡선은 공구위치벡터의 보간을 위한 스무딩 곡선이며, 3축 공구 경로에 대한 스무딩에 사용될 수 있다. 5축 공구 경로의 스무딩을 위해서 공구의 상단점에 대한 스무딩 곡선이 추가적으로 요구된다. 이 상단 곡선은 식(3)에서 정의된 상단점에 대해 하단점의 조정점 생성 방법을 동일하게 적용하여 생성하며, 이때 상단점의 내분점에 대한 보정량을 εc,t로 정의한다.

2.2.3 스무딩 오차

스무딩 오차(Smoothing Error Tolerance)는 기존의 직선 공구 경로와 스무딩 곡선 사이 거리의 상한 또는 각도 차의 상한으로 정의하며, B-스플라인의 내분점에 대한 보정량을 특정 값으로 제한함으로써 제어된다. 공구 위치와 공구 자세에 대한 스무딩 오차를 각각 epeo로 정의하면, 하단점을 잇는 직선과 하단 곡선 사이의 거리 eb의 상한치 eb,max, 상단점을 잇는 직선과 상단 곡선 사이 거리 et의 상한치 et,max는 각각 공구 위치와 공구 자세의 스무딩 오차에 의해 아래의 식(18)식(19)와 같이 계산된다.
(18)
eb,max=ep
(19)
et,max=heo
식(19)에서 eo는 라디안 단위의 각도이며, 상단점과 하단점 사이의 거리 h는 NC 데이터의 위치 지령 단위이므로 et,max는 원호의 길이로 근사하여 계산될 수 있다.
Fig. 8과 같이, 스무딩 곡선의 구간별 다항식은 4개의 조정점을 꼭지점으로 하는 조정 다각형(Control Polygon) 내부에 위치하기 때문에 ebet는 각 내분점의 보정량 εc,bεc,t보다 항상 작은 값을 갖게 된다. eb,maxet,max를 고려한 내분점의 보정량 εbεt는 각각 식(20)식(21)에 의해 계산될 수 있다.
(20)
εb=mineb,max,εc,b
(21)
εt=minet,max,εc,t
Fig. 8

Schematic of the smoothing error tolerance

KSPE_2020_v37n3_217_f008.jpg
2.3 스무딩 곡선의 보간
상단점과 하단점에 대하여 생성된 두 개의 스무딩 곡선은 동기화(Synchronization)하여 동시에 보간해야 한다. 공구의 상단점과 하단점은 식(5)로 표현되는 곡선식을 이용하여 보간할 수 있다. 이때 재귀적으로 계산된 기저함수 Ni,p를 재사용함으로써 계산 부담을 줄일 수 있다. 입력된 이송 속도에 따라 하단 곡선의 매개변수를 계산하고, 이 매개변수를 상단 곡선과 하단 곡선의 기저함수에 동일하게 적용한다. 이러한 방식으로 하단 곡선을 보간하여 공구위치벡터를 계산하고, 상단 곡선을 보간한 후, 보간된 상단점과 하단점의 차를 정규화하여 공구자세벡터를 계산한다. 식(22)는 정규화된 공구자세벡터의 계산식을 나타낸다.
(22)
Ou=Ctu-CbuCtu-Cbu
여기서, Ct(u)와 Cb(u)는 각각 보간된 상단점과 하단점을 의미한다. 이러한 방식으로 계산된 공구위치벡터와 공구자세벡터는 역기구식을 통해 기계 좌표로 변환되어 기계의 구조에 관계없이 공구의 동일한 움직임을 제어하는데 이용될 수 있다.
제시된 스무딩 방법을 Fig. 9와 같은 구조의 PC 기반 개방형 동시 5축 제어시스템에 구현하여 기존의 5축 TCP 제어 방식의 직선 보간기와 비교, 분석하였다. 이 시스템은 Mechatrolink-II 통신으로 Yaskawa사의 ∑-II 서보 드라이브를 통해 5개의 서보 모터를 동시 제어하며, 시스템의 제어 주기는 1 ms, BLU (Basic Length Unit)는 0.1 μm로 설정하였다. 테이블에 틸팅축(A)과 로터리(C) 축을 갖는 TRT (Table-Rotary-Tilting) 타입의 수직형 5축 머시닝 센터를 가정하여 역기구학 변환을 통해 각 축의 운동 지령을 계산하고, 무부하 상태로 기계 모션을 제어하였다.
Fig. 9

Simultaneous 5-axis control system

KSPE_2020_v37n3_217_f009.jpg
실험 시의 기준 CAD 형상은 Fig. 10의 곡면이고, 상용 CAM 소프트웨어를 이용하여 공구 위치는 공구의 진행 방향으로 이동하면서, 공구 자세가 양옆으로 변하도록 하였으며, 코드 오차(Chordal Deviation) 구속 조건을 5 μm로 설정, 총 134개의 NC 블록을 생성하였다. 스무딩 알고리즘의 공구 위치와 공구 자세의 스무딩 오차는 각각 5 μm와 0.5°로 설정하였다.
Fig. 10

Generation of tool path used in experiment

KSPE_2020_v37n3_217_f010.jpg
Fig. 11에 기존 직선 보간과 제시된 스무딩 방법을 적용한 보간 결과를 기준 CAD 형상과 비교하여 나타내었다. 공구 위치와 CAD 데이터 간에는 오프셋이 존재한다. Fig. 11(a)와 같이 직선 보간에서는 공구가 연결된 여러 개의 짧은 직선 선분을 따라 이동하므로 공구 접촉점도 이와 같은 직선 형상을 추종하게 되는 반면에, Fig. 11(b)의 결과에서 볼 수 있듯이 제시된 스무딩 방법에서는 보간된 공구 위치의 자취에 따라 공구 접촉점도 매끄러운 곡선 형상을 추종하게 된다.
Fig. 11

Comparison of tool path interpolations

KSPE_2020_v37n3_217_f011.jpg
실험에서는 시스템 특성에 의한 응답의 지연이 존재하고 구동계의 운동 성능에 따라 진동이 유발되기도 하여 보간된 형상 대비 실제 윤곽 정확도 등에 차이가 발생할 수 있다. 제시된 방법의 실효성을 검증하기 위하여 직선 보간과 제시된 스무딩 방법에 의한 윤곽 오차와 공구의 이송 속도, 가속도, 저크의 실험 결과를 비교해보았다.
Fig. 12에 직선 보간 방식과 제시된 스무딩 방식에 대한 윤곽 오차를 비교하였는데, 기준 CAD 데이터와 공구 접촉점 사이의 거리를 계산하여 나타내었다. 제시된 스무딩 방법은 직선 보간 방식에 비해 공구 경로 전체에 걸쳐 윤곽 오차의 절대치와 변동 폭이 크게 감소되었음을 볼 수 있다. 직선 보간 방식은 기준 CAD 형상을 연속된 점으로 근사화하고 이 점들을 직선으로 연결한 형태로 보간하기 때문에, 각 직선 구간 내에서 보간점이 선형적으로만 계산되어 윤곽 오차가 설정된 코드 오차 구속 조건 값 내외에서 형성될 수밖에 없다. 반면에 제시된 스무딩 방법은 공구 접촉점이 기준 CAD 형상을 추종하도록 스무딩 곡선을 생성하여 보간하므로 윤곽 정확도를 개선할 수 있다.
Fig. 12

Comparison of contour errors in experiment

KSPE_2020_v37n3_217_f012.jpg
Fig. 13은 구동계의 엔코더 출력에 대해 정기구학 변환식을 적용하여 공작물 좌표계에서 공구의 이송 속도, 가속도와 저크를 나타낸 것이다. Fig. 13(a)의 결과와 같이 직선 보간 방식에서 나타나는 NC 블록 연결부에서의 이송 속도 변동이 제시된 방법에서는 거의 발생하지 않음을 확인할 수 있다. 또한 Figs. 13(b)13(c)를 통해 직선 보간 대비 제시된 방법의 가속도와 저크의 전반적인 크기가 감소되었음을 알 수 있다. 이는 직선 공구 경로를 보간할 경우 발생하는 각 연결부에서의 급격한 방향 변화가 제시된 스무딩 방법의 적용으로 완만하게 변환되었음을 알 수 있다. 다시 말해 이 결과는, 직선 보간 방식의 C0 연속성이 스무딩에 의해 C2 연속성으로 바뀌게 되고 방향 변화가 매 보간마다 점진적으로 일어남으로 인해, 부드러운 가공면을 생성할 수 있음을 의미한다.
Fig. 13

Comparison of dynamic motion performance

KSPE_2020_v37n3_217_f013.jpg
Table 1에 본 실험을 통해 얻은 직선 보간 방식과 스무딩 방식의 윤곽 오차와 가속도, 저크를 정량적으로 비교 정리하였다.
Table 1

Comparison of experimental results

Table 1
Contour error [mm] Acceleration [m/s2] Jerk [× 103 m/s3]
RMS Max RMS Max RMS Max
Linear interpolation 1.97 5.91 0.31 3.04 0.45 2.85
Proposed method 0.42 1.63 0.22 0.89 0.39 1.58
Reduction ratio [%] 78.8 72.4 30.3 70.8 13.8 44.6
본 논문에서는 5축 공구 경로에 대한 스무딩 방법을 제시하였다. CAM 소프트웨어로 생성한 NC 데이터로부터 스무딩 곡선을 생성하기 위한 전처리 작업으로, 공구 위치의 간격에 맞춰 공구자세벡터를 조정하여 공구자세벡터 간 불규칙한 변동을 줄여주었다. 또한 공구의 상단점과 하단점을 정의하고, 상단점과 하단점의 경로에 대한 두 개의 B-스플라인 곡선을 생성한 후 동시 보간하여 공구 위치와 공구 자세를 계산하였다.
제시된 스무딩 방법을 PC 기반 5축 제어시스템에 구현하였으며, 보간된 공구 접촉점이 기준 CAD의 형상을 추종함으로써 직선 보간 방식과 비교하여 윤곽 정확도가 향상되고 직선의 연결부에서 발생하는 가속도와 저크가 감소됨을 확인하였다. 제시된 방법을 통해 복잡한 형상을 갖는 자유 곡면의 5축 가공에 대하여 가공물의 치수 정확도 개선과 가공면의 품위 향상이 가능할 것으로 기대된다.
본 연구는 산업통상자원부 지원의 “중소형 공작기계용 2계통제어 CNC와 서보, 스핀들 구동 유닛 국산화 개발” 과제에 의하여 수행되었음.
  • 1.
    Tajima, S. and Sencer, B., “Kinematic Corner Smoothing for High Speed Machine Tools,” International Journal of Machine Tools & Manufacture, Vol. 108, pp. 27-43, 2016.
    10.1016/j.ijmachtools.2016.05.009
  • 2.
    Tajima, S. and Sencer, B., “Global Tool-Path Smoothing for CNC Machine Tools with Uninterrupted Acceleration,” International Journal of Machine Tools & Manufacture, Vol. 121, pp. 81-95, 2017.
    10.1016/j.ijmachtools.2017.03.002
  • 3.
    Ho, M. C ., H wang, Y. R., and Hu, C. H ., “ Five-Axis T ool Orientation Smoothing Using Quaternion Interpolation Algorithm,” International Journal of Machine Tools & Manufacture, Vol. 43, No. 12, pp. 1259-1267, 2003.
    10.1016/S0890-6955(03)00107-X
  • 4.
    Pateloup, V., Duc, E., and Ray, P., “Bspline Approximation of Circle Arc and Straight Line for Pocket Machining,” Computer-Aided Design, Vol. 42, No. 9, pp. 817-827, 2010.
    10.1016/j.cad.2010.05.003
  • 5.
    Zhao, H., Zhu, L., and Ding, H., “A Real-Time Look-Ahead Interpolation Methodology with Curvature-Continuous B-Spline Transition Scheme for CNC Machining of Short Line Segments,” International Journal of Machine Tools & Manufacture, Vol. 65, pp. 88-98, 2013.
    10.1016/j.ijmachtools.2012.10.005
  • 6.
    Yang, J., Hu, Q., and Ding, H., “A Two-Stage CNC Interpolation Algorithm for Corner Smoothing Trajectories with Geometric Error and Dynamics Constraints,” Proc. of the 9th International Conference on Digital Enterprise Technology-Intelligent Manufacturing in the Knowledge Economy Era, Vol. 56, pp. 306-310, 2016.
    10.1016/j.procir.2016.10.022
  • 7.
    Fan, W., Lee, C. H., and Chen, J. H., “A Realtime Curvature-Smooth Interpolation Scheme and Motion Planning for CNC Machining of Short Line Segments,” International Journal of Machine Tools & Manufacture, Vol. 96, pp. 27-46, 2015.
    10.1016/j.ijmachtools.2015.04.009
  • 8.
    Yang, J. and Yuen, A., “An Analytical Local Corner Smoothing Algorithm for Five-Axis CNC Machining,” International Journal of Machine Tools & Manufacture, Vol. 123, pp. 22-35, 2017.
    10.1016/j.ijmachtools.2017.07.007
  • 9.
    Tulsyan, S. and Altintas, Y., “Local Toolpath Smoothing for Five-Axis Machine Tools,” International Journal of Machine Tools & Manufacture, Vol. 96, pp. 15-26, 2015.
    10.1016/j.ijmachtools.2015.04.014
  • 10.
    Huang, J., Du, X., and Zhu, L. M., “Real-Time Local Smoothing for Five-Axis Linear Toolpath Considering Smoothing Error Constraints,” International Journal of Machine Tools & Manufacture, Vol. 124, pp. 67-79, 2018.
    10.1016/j.ijmachtools.2017.10.001
  • 11.
    Cho, H. D., Jun, Y. T., and Yang, M. Y., “Five-Axis CNC Milling for Effective Machining of Sculptured Surfaces,” International Journal of Production Research, Vol. 31, No. 11, pp. 2559-2573, 1993.
    10.1080/00207549308956883
  • 12.
    Langeron, J. M., Duc, E., Lartigue, C., and Bourdet, P., “A New Format for 5-Axis Tool Path Computation, Using Bspline Curves,” Computer-Aided Design, Vol. 36, No. 12, pp. 1219-1229, 2004.
    10.1016/j.cad.2003.12.002
  • 13.
    Piegl, L. and Tiller, W., “The NURBS Book,” Springer, 2nd Ed., pp. 47-50, 1995.
    10.1007/978-3-642-97385-7_2
Keewoong Ahn
KSPE_2020_v37n3_217_bf001.jpg
Graduate student in the Department of Mechanical Engineering, Dankook University. His research interest is machine tools and CAD/CAM.
Sungchul Jee
KSPE_2020_v37n3_217_bf002.jpg
Professor in the Department of Mechanical Engineering, Dankook University. His research interest is CNC machine tool systems and CAM.
E-mail: scjee@dku.edu

Download Citation

Download a citation file in RIS format that can be imported by all major citation management software, including EndNote, ProCite, RefWorks, and Reference Manager.

Format:

Include:

Five-Axis Tool Path Smoothing based on Cubic B-Spline Curves
J. Korean Soc. Precis. Eng.. 2020;37(3):217-224.   Published online March 1, 2020
Download Citation

Download a citation file in RIS format that can be imported by all major citation management software, including EndNote, ProCite, RefWorks, and Reference Manager.

Format:
Include:
Five-Axis Tool Path Smoothing based on Cubic B-Spline Curves
J. Korean Soc. Precis. Eng.. 2020;37(3):217-224.   Published online March 1, 2020
Close

Figure

  • 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
Five-Axis Tool Path Smoothing based on Cubic B-Spline Curves
Image Image Image Image Image Image Image Image Image Image Image Image Image
Fig. 1 Flow chart of the proposed smoothing method
Fig. 2 Adjustment of tool orientation
Fig. 3 Schematic of the proposed smoothing curves
Fig. 4 Basis functions of a non-uniform B-spline
Fig. 5 Control points generation
Fig. 6 Geometric relation between control points and a B-spline curve
Fig. 7 Modification of internal division points for NC blocks
Fig. 8 Schematic of the smoothing error tolerance
Fig. 9 Simultaneous 5-axis control system
Fig. 10 Generation of tool path used in experiment
Fig. 11 Comparison of tool path interpolations
Fig. 12 Comparison of contour errors in experiment
Fig. 13 Comparison of dynamic motion performance
Five-Axis Tool Path Smoothing based on Cubic B-Spline Curves
Contour error [mm] Acceleration [m/s2] Jerk [× 103 m/s3]
RMS Max RMS Max RMS Max
Linear interpolation 1.97 5.91 0.31 3.04 0.45 2.85
Proposed method 0.42 1.63 0.22 0.89 0.39 1.58
Reduction ratio [%] 78.8 72.4 30.3 70.8 13.8 44.6
Table 1 Comparison of experimental results