Maya螺旋曲线MEL

上传人:壹****1 文档编号:542728768 上传时间:2023-11-30 格式:DOC 页数:9 大小:87KB
返回 下载 相关 举报
Maya螺旋曲线MEL_第1页
第1页 / 共9页
Maya螺旋曲线MEL_第2页
第2页 / 共9页
Maya螺旋曲线MEL_第3页
第3页 / 共9页
Maya螺旋曲线MEL_第4页
第4页 / 共9页
Maya螺旋曲线MEL_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《Maya螺旋曲线MEL》由会员分享,可在线阅读,更多相关《Maya螺旋曲线MEL(9页珍藏版)》请在金锄头文库上搜索。

1、MayaML 教程之 mel 打造螺旋曲线 理解Mya的人都懂得My自身不可以创立螺旋曲线,这给我们在建模电话线、弹簧等具有螺旋构造的模型时带来了诸多不便。那么如何解决这个问题呢?就目前来看,主流的解决措施是采用外部插件,但由于需要到国外网站上下载,一般中国顾客很难发掘到;而通过手动创立螺旋曲线的措施不仅措施笨拙,效率低下,并且在诸多时候也很难满足我们的工作规定。今天小编就通过一种简朴ME程序来达到我们的规定,也但愿借此抛砖引玉。 熟悉My的人都懂得,My的任何一条命令都是一种EL口令,例如我们在My中创立一条样条曲线,在Maya的脚本编辑器中就会显示这样的一条E口令:“e 3 -p 6.21

2、50 06.54502 -p -604310 -1.679 p 189864 0 6.942 -p 0172602 0-1.31017 p 2.1460 6.57629 -k -k k 0 - 1 -k 2 -k2 -k ;”而我们创立螺旋曲线的思路也正基于此。 一方面看代码:string $command=uv- ;fr($i=1;$i=100;$i+) loat $x=in($i);flat z=5*s($i); fa $y$; mmand+=-p $ +$y+ +; ;eva $coman; 解释: 第一行 Maya的mel语言规定,变量前必须添加符号$。crv是ml命令,即创立曲线;-

3、d定义曲线精度为;该行的含义就是定义字符串变量“$command”。 第二行 执行for循环语句。定义整数$i,自增100次,其实就是表达有100个CV点。 第四行 定义实数x,并将sin($)赋值给$x。而第五行、第六行的语法与第四行相似。在本例中,第四行、第五行、第六行是程序核心,其实这三行就是螺旋线的数学方程式。 第七行 将字符串合并,也就是获得一种创立曲线的完整体现方式,类似于:urve -d 3-p -6.12150 6.45092 p -6843180-1.4 -1898864 0 629442. 第九行 evl命令是求函数返回值,也就是将我们的程序计算成果输出。这一步很重要,如果

4、没有这一步,顾客也许看不到你所创立的曲线。 总结: 该mel程序的扩张性很强,顾客可通过修改螺旋线的参数,进而获得其她形式的曲线。例如,当将螺旋线的半径5修改为$,则可以获得圆锥螺旋线。 为以便人们后来的建模,现附上通过修改后的第三方插件,源代码: lbl poc t hlix_satSquece() flat , $,$r1,$r, $a, $k, $t0; in $pre, $encs, enr,$ncp, $helpVar; rg$m, NM; $nm =textFeld - -ex name; $NM =nm+ ex_checame($nm); $ = foatSlidrGrp -vl

5、ueheight; $ = floatSlideGrp-q -aluetus;r1 = flaSldGp -lue r1; r flotSlderGp -q alur2;$prec = nSlierGp -q -valueprec; $hepVa=ioBttonGrp-q -saioButtn; if(tetFd-q -en A) $=teField-qet A; $=textFl -q -txt K;t0=exteld -q te T; else = 1.0; $k = 0.0; $t0 =00; if($hepar1) $encs =; $ncr 0; $encp= ;if($hepVar

6、=2) $encs =; encr = 1;$encp =0; if($heVar=3)$en= 0; $encr 0; encp ; if(lVar=4) helix_rawher(NM,$t, $1,pec); f(helpVr!=4) hex_drawHei($M, $h, $t, $r1, r2, $prc,$, $k, $, $encs, $ncr, $ep); return 0; global rin xcekName(rig $NAME) int nubr0,$ok,$k; ting $NAM; fo($ok;$ok=0;k+) $nmber+; $NA=NAM+nber; if

7、(!objExst NM)$o=1; eturn numer; la proc int helxrawSphere(sting $name, float $turs, float$radis1, in prcision) fot $y, $X, $Y, $Z, $i,$ngis1; $negRadus1=-$radus1; fr($i=0;$i(precision*$rdu1*);$i+) $yi $precision;X= ($du$radus1)-($y-$rdius1)*($dius1)*co(y*$uns*2*3145965)/($radius1*);Y =$y;$Z=st($ai1$

8、radus1)($y-radius)($y-$ras1)*si(($y$urns2*3115)($ai12)); f(!ojExits$am) curve-d 3-p 0 0;ename l -$ne; es crve a p $X Y Z $ae; ntrPv; mve 0 $negaus10;rturn ; lobal oc nt heli_dawHelix(tring nme,fot $ih, flat$turns, float ai1, lotrais2, int $preiion,loat $Amp, fla m,floatg,in ENCS, it $ENCR, intENCP)

9、float 1,t, t3, $t0;lat $y, $X, $, $Z, ; fr($i=0;$i=(rcision*$heigt);$+) lt $tepy;$0=$Am*sn($ms$y/$eg)+3119265*($ngl80));t1=($height)*$ENCS; $t2=(sqrt($y/hight)*$ENCR; 3=(*y/($ightheiht)*ENC; $y$ / $prisi;X $0*($rdis1-($radus1-$raus2)*($t12+3))*co((y*$trns*3.1459265)$eiht);$Y $y;$Z= $*($ads1-(radus1-

10、$ra2)*($t1+$t2+$3))*in(($y*$tns*23.141565)/$hegt); if(!objExit $ame) crve d radus1 0; rname l sl$name; else cure -a p $Y$ $m;eurn 0; bal rcin hx_chaneStat(nt$statNr) f(staNr=) floSliderGrp -e -en 0 ; floatierGp e -en0 eght;chekBox -e box; textField -e -en 0 ; txFild -en 0 K; txield -en 0T; if(statNr

11、=2) loaSlerGp -e-en 1 r; oaSierr -e e1heigh; chckBox-e-en 1 box;f(ccBox q-vuebox) teFild - - A; etFiel e -en 1 K; xtield - -en1 T; f($sar=) if(tetField -q -en A=0) textFed -een 1 ; txtField - -en 1 ; txeld -en 1T; ese txFil n ; texField-e e ; textFiele -en T; rtur 0;glbal rocint helixexiWin() deeteU

12、IHei; eturn 0; gllprc helix() if(winow-q -exissHelix) deleIelix;windw -w 2 -h 0 -title elixpropertiesHlix;scrolayu s1;coumnLaou; fameLayout-l tru -el Hlixproperts;cumnLayout; rwClumnayout -nuberOfCuns 2; ex -laelNe; txtFld -text Helix nme; setParent .;owColumnLayot numerOfRows ;flaSliderr-fieldtrue-min 0.0

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号