Tutorial: How to create physics joints in SP simulation
-
Hi there..
Now probably all of u guyz have used Sketchyphysics at some point, and created physics joints in them.
The problem though, is that sumtimes the joints become glitchy
: they either become floppy or fall off completely...
not good...The solution to the problem is to create a joint while the simulation is running.
Ever explored the scripts which make up Sketchyphysics? If so, u've probably seen the module "NewtonServer" sumwhere...
. this module is just about the kernel of the Sketchyphysics system. It creates nearly every physical feature of Sketchyphysics, from joints to forces to gravity and so on. 
We need one of its methods, which is "createJoint"...
# this example creates a hinge joint parent={grp} # a grouped object that encases the joint child={grp} # a grouped object that is attached to the joint type="hinge" min=0 max=0 accel=0 damp=0 breakingForce=1000000 limits=[min,max,accel,damp,0,0,breakingForce] # parameters for the joint xform=parent.transformation pinDir=xform.zaxis.to_a # the axis of the joint parentBody=DL;;PtrData.new(parent.get_attribute("SPOBJ","body",nil)) # converted parent body childBody=DL;;PtrData.new(child.get_attribute("SPOBJ","body",nil)) # converted child body jnt=NewtonServer.createJoint(type,xform.origin.to_a.pack("f*"), pinDir.pack("f*"), childBody,parentBody, limits.pack("f*") ) # the joint itselfImportant: in general, all array objects need ".pack("f*")" after them, and all grouped bodies need to be converted into DL::PtrData (by using "DL::PtrData.new({grp}.get_attribute("SPOBJ","body",nil))" )

The created joint doesnt have the bugs normal joints have. (hopefully...
)Have fun "Sketchyphysic"ing (!)

Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better π
Register LoginAdvertisement