Home Toolbox functions Sample projects Tutorials Downloads |
|
Reference: Chapter 6 in Multibody Mechanics and Visualization by Harry Dankowicz, published by Springer Verlag UK, 2004.
To illustrate rotations about axes other than those parallel to basis vectors.
This Mambo project contains a non-stationary conical arrangement of cylindrical rods. The non-stationary arrangement of rods may be reoriented relative to the world observer by imposing an arbitrary rotation.
l: length of any of the cylinders.
theta, phi, and psi: 3-1-3 sequence of Euler angles describing the orientation of the conical arrangement relative to the world reference triad.
Replace the cylinders by thin rectangular plates and experiment with their arrangement to generate conical surfaces with noncircular cross sections.
cone.zip (zip file, 9 kb, December 30, 2012) >Restart(): >N:=20: >DeclareObservers(W,Cone): >DeclarePoints(W,Cone,seq(cat(R,k),k=1..N)): >DeclareTriads(w,cone,seq(cat(r,k),k=1..N)): >DefineObservers([W,W,w],[Cone,Cone,cone]): >DefineNeighbors([W,Cone]): >DefinePoints([W,Cone,NullVector()],seq([Cone,cat(R,k),MakeTranslations(cat(r,k),0,0,l/2)],k=1..N)): >DefineTriads([w,cone,[theta,3],[phi,1],[psi,3]]): >v:=MakeTranslations(cone,sqrt(3),1,0): >u:=MakeTranslations(cone,1,sqrt(3),0): >r1_3:=(1/VectorLength(u)) &** u: >r1_1:=(1/VectorLength(r1_3 &xx MakeTranslations(cone,1))) &** (r1_3 &xx MakeTranslations(cone,1)): >r1_2:=r1_3 &xx r1_1: >DefineTriads([cone,r1,simplify(Matrix(3,3,(i,j)->MakeTranslations(cone,i) &oo cat(r1_,j)))]): >DefineTriads(seq([r1,cat(r,k),2*Pi/N*(k-1),seq(v &oo MakeTranslations(r1,l),l=1..3)],k=2..N)): >DefineObjects(seq([Cone,'Cylinder',point=cat(R,k),orient=cat(r,k),length=l,radius=l/30,color=yellow],k=1..N)): >GeometryOutput(main=W,states=[theta=1,phi=.8,psi=1],parameters=[Pi=3.1416,l=1],checktree,checkargs,filename="cone.geo"); |
©2004-2017 Harry Dankowicz Mechanical Science and Engineering University of Illinois at Urbana-Champaign | Home Toolbox functions Sample projects Tutorials Downloads |