global objList = #() global objList2 = #() global Dpuntos= #() global Dpuntos2= #() global Ddummys = #() global Ddummys2 = #() global iks=#() function Parentesco x = -- funcion que emparenta los cuadros del primero al ultimo seleccionado ( cont = 1 cont2=2 conta = objlist.count for i = 1 to conta do ( objlist2[cont].parent = objlist2[cont2] cont += 1 cont2 += 1 ) ) function Dummys y = -- funcion que crea los dummys y puntos ( cont =1 contak = (objlist.count - 2) for i=1 to contak do ( pos = objlist2[cont].pos w= objlist2[cont].width wb= (w / 1.5) -- divide el ancho entre 1.5 xp=(pos[1]-wb) -- saca la posicion donde estara el punto a crear yp=pos[2] zp=pos[3] posi = [xp, yp, zp] --posicion final del punto a crear z="punto"+cont as string y = point name: z pos: posi append Dpuntos y.name append Dpuntos2 y z2="puntos"+cont as string v=Dummy name: z2 pos: posi append Ddummys v.name append Ddummys2 v cont+=1 ) ) function PadresPuntos z = -- emparnte los puntos con los puntos con las cajas y tambien -- empareta los dummys con los puntos y les asigna el position controller spring ( cont=3 cont2=1 for sexual=1 to objList.count-2 do ( Dpuntos2[cont2].parent = objlist2[cont] Ddummys2[cont2].parent = Dpuntos2[cont2] springs = "select $puntos"+cont2 as string -- selecciona el dummy execute springs macros.run "Controllers" "Spring_P" -- lo convierte en spring cont+=1 cont2+=1 ) ) function HiSolvers a = --funcion que crea los hi solvers ( cont=2 cont2=1 b=objlist.count-2 for i=1 to b do ( obj = "$"+objList[cont] as string -- obj es la caja de la que saldra en hi solver obj2 = "$"+objList[cont2] as string --obj2 es la caja ala cual se aplicara test = "testo =IKSys.ikChain "+ obj as string +" "+ obj2 as string +" \x22IKHISolver\x22" -- efectua la creacion de caja a caja del ik hi solver noso = execute test noso.name = "ik"+cont2 as string -- asigna el nombre al ik hi solver a = noso.name -- asigna a el nombre del ik append iks a --guarda en un arreglo los nombres de los ik cont+=1 cont2+=1 ) ) function Hisolverspapa n = -- funcion para emparentar los iksolvers con los dummys ( cont=1 for i = 1 to objList.count-2 do ( obj = "$"+iks[cont] as string -- asigna a obj el nombre de los ik obj2 = "$"+Ddummys[cont] as string -- asigna a obj2 nombres delos dummys a los que se emparentan los ik hi solvers papito = obj as string +".parent = "+obj2 as string --se emparentan el hisolver con el dummy execute papito cont+=1 ---fin ) ) --Pequeño programa para simular movimiento secundaro --creado por Fernando Adolfo Leon Ramos para la clase de animacion 2 --ULSA Noroeste rollout movSec "Mov-Sec v1.0" width:174 height:210 ( listBox listObjetos "Objetos" pos:[5,39] width:164 height:6 button Crear "crear" pos:[5,144] width:113 height:35 pickButton TomarObjetos "Seleccionar" pos:[7,3] width:102 height:31 button Help "Help" pos: [130,10] on Help pressed do ( messagebox "the selection of the objects must be done \nfrom the last child to the first parent \n use the top view or bottom while creating the boxes \n it only works with boxes" ) on Crear pressed do ( Parentesco 1 Dummys 1 PadresPuntos 1 HiSolvers 1 Hisolverspapa 1 ) on TomarObjetos picked obj do ( if iskindof obj box then ( append objlist2 obj append objList obj.name listObjetos.items = objList ) else ( messagebox "Objeto invalido" ) ) )createdialog movSec