Home

INNOVATIONS REPORT Gear Generator

image

Contents

1. TIL Productions 2001 Music boxes The androids and automatons website online Available from http www automates anciens com english_version Accessed 14 03 07 4 3 Adrien Saint Girons Innovations Report cogs v0l At this point I had determined that I could create mechanisms of the required complexity by using two different gear types I would need to create spur gears that could share the same rod or interlock with each other They would also need to have the option of being perpendicular to their parent What s more the look of the gears would need to vary As spur gears are the most used and the most basic it was essential to correctly understand the way the work 7 Spur gear maths Spur gears are used in machinery as they are the most efficient way to modify a rotational source of power They are most commonly used for changing the direction of rotation changing the speed of rotation or changing the axis of rotation The increase or decrease of speed 1s given by the gear ratio This ratio can be found by a comparison of the number of teeth of two interlocked gears If a gear A has 20 teeth tA and is connected to another gear B that has 10 teeth tB the ratio is 2 1 This means that the second gear will turn twice as fast as the first in the opposite direction The rotation of gear B rB is calculated by multiplying the negative of the rotation of gear A rA by the ratio tA The ratio is given b
2. 26 31 Adrien Saint Girons Innovations Report cogs v0l setAttr base name mainControl rotateX 90 float SpivotTranslateZ Sparent radius tooth height 2 0 float SpivotTranslateY Schild_radius t depth p base height 2 0 move r 0 SpivotTranslateY pivotTranslatez Base name malncontrol socalsPlyor base name mainLontrol rfotatePlvot j move r 0 SpivotTranslateY pivotTranslatez base names aonbrols scalsPivort 5base name aOhtrolsS foratePlvor poxntConsctralnt n base LInkl Gog iopasrent 107 rotat onurol 2base namet gontrol orientConstraint n base name link2 10 Naincontrol Sbase namet controls String pexpression base namet rotcatetoncrol rotate e Sbase names mainConLtrol rortaLter oog Sparent 104 Sbase name teeth 180 0 Sbase name TULLEELu 1 oparent Beer 4 2 0 1 Toparent IDI robtateControl rotatcer cog T Sparent ID teeth base name teeth r n expression e s expression o Sbase name expression Name else if SconnectionType 2 amp amp parent ID SconnectionType 4 amp amp Sparent ID 0 float SoriginalPosition Sbase height 5 base height 2 0 p base height 2 0 01 setAttr base name mainControl translateYy SoriginalPosition string expression obase name rotate Control rotator
3. parent geometry cog Geometry parent oontrol co Controls select cr cog Geomecry editDisplayLayerMembers noRecurse cog Geometry Layer 15 selection select rocog Controls editDisplayLayerMembers noRecurse cog Controls Layer ls selection proc add attributes string base name int parent ID float teeth float Swidth float Sdepth int SconnectionType float tooth height float Sbase height float Sradius float SinnerRadius int rodType addAttr ln teeth k true dv teeth Sbase name addAttr ln width k true dv vidth Sbase name addAttr ln depth k true dv Sdepth 2 0 base name addAttr ln toothHeight k true dv Stooth height base name addAttr ln baseHeight k true dv Sbase height base name addAttr ln radius k true dv Sradius base name addAttr ln innerRadius k true dy 4 innerRadius radius base name addAttr ln rodType k true dv SrodType base name if SconnectionType 3 setActr obese nameft radlus D2radrustotoouth height addAttr ln parentID k true dv Sparent ID base name mainControl addAttr ln connectionType k true dv connectionType Sbase name mainControl proc lock attributes string base name setAttr lock true base name tx setAttr lock true base name ty setAttr lock true base name tz SetActr l ck true Dase namert iR setAttr lock true base name ry setAttr lock true base name rz
4. 9 31 Adrien Saint Girons Innovations Report cogs v0l In mel script we get cog 2 rotateControl rotateY cog 1 rotateControl rotateY cog 1 teeth cog 2 teeth In the context of this tool other factors must be taken into account The fact that an extra rotation exists about the parent s axis mainControl leads to teeth intersection It 1s therefore important to add a value to the expression in order to annul this rotation s effect Multiplying the mainControl s rotational value by the ratio and adding it to the above equation achieves the desired effect The expression is now given by cog 2 rotateControl rotateY cog 1 rotateControl rotateY cog l teeth cog 2 teeth cog 2 mainControl rotateY cog 1 teeth cog 2 teeth Unfortunately this does not completely solve the problem of intersecting teeth This intersection happens when two even numbered gears are connected because of the way the teeth are placed around the wheel s base Odd numbered gears do not have this problem To solve this an offset 1s needed of the tooth s width giving the following expression cog 2 rotateControl rotateY cog 1 rotateControl rotateY cog 1 teeth cog 2 teeth cog_ 2 mainControl rotateY cog 1 teeth cog 2 teeth 180 0 cog 2 teeth The problem now resides in connecting odd and even gears together An intersection still occurs I needed to find a way to make sure that this offset was not added 1f the parent cogwheel was odd
5. t9parent 104 2Ote recon rol role ce irin expression e s expression o Sbase name expression Name pointConstraint n base names linki cog Poparent 104 rotarocontrol base namer controle orientConstraint n base name link2 oparent IDT gaintcontrol Dbase namet sontrols else if SconnectionType 3 66 parent ID amp amp SparentType 3 setAttr base name mainControl rotateX SU float SpivotTranslateZz parent radiustSdepth base height 2 0 float SpivotTranslateY child radius tooth height 2 0 move r 0 SpivotTranslateY pivotTranslatez base name mainControl scalePivot base name mainControl rotatePivot move r 0 SpivotTranslateY pivotTranslatez base mane controls scalerivot base name controls rotatePivot pointConstraint n base name Linki cog roparent 1D rotateControl base namer controls orTentConstraine en obase named 4182 cog parent ID mainconrtrol base namet controlo string expresion base namot Totu Control rotate e t9base name mainConrtrol rotater ocog 4 parent IDt teesth Sbase name teeth 180 0 base name teeth cog Topaczent 5 2471 cog toparent IDT POT ace Cl roll 28a cog T Sparent ID teeth Sbase name teeth r n expression e s expression o Sbase name expression Name 277521 Adrien Sai
6. string base name int connectionType int toothType string tooth name base name 9 tooto 1 polvPLlane w X eh A Sx 1 sy 1 ax 1 0 0 ouv 2 ch 4 en Sto th name setAttr tooth name scale Sheight vidth if StoothType 1 polyextrudeFacet constructionHistory 1 1tz Sdepth Sdeptrh 2 D 21 31 Adrien Saint Girons Innovations Report cogs vOI L8y 6 csmooth ingAngle 20 stoolth nameet sro else if toothType 2 polyExtrudehRacet construetionHistory 1 1tz Sdepth ley 9 sm ochingangle gt 30 tooth namer r 0 polyextrudePacet constructlonHistory l Lltz 666p60h 2 0 lx 6 smoschingangle 30 7cooch nameet 729 makeldentity apply true t 1 r 1 s 1 n 0 if SconnectionType 3 setAttr 9tooth name translatex base radrust oheirght 2 0 SeLAttr S2tooth namer Yocarez 390 setAttr 9tooth namerm tranelatey 5base hezxght 2 0 9depth 2 0 move r base radius Sheight 2 0 Stooth name scalePivot Stooth namet rotatePivor makeldentity apply true t 1 r 1 s 1 n 0 serattr tooth namert rotator U else setAttr 5tooth name t translatex Sbase rad us Sdepth 2 0 move r Sbase rad us depth 2 0 Stooth namej scalePivot Stooth name rotatePivot Sserartr tooth fovea te parent tooth name base name float angle 360 0 teeth G plrc
7. Saint Girons Innovations Report cogs v0l k 23 k 22 k 25 k 20 k 27 ek ZB k 29 ak 49 k 29 n omai nConteoli name SetAttr SmainControl namet cale Sradius 2 0 1 Pradius 1 5 setAttr SmainControl namer rofateY 90 makeldentity apply true t 1 r 1 s 1 n 0 setAttr mainControl namer translarser Sheighti 5 move r U sheicht 3 D omarncoutrol nameT BSOBlePlvor SmainControl name4s rotatePi1yot Curve d 3 p U U U p U U 3 p O U 3 p U DU D p ci U L p 2 0 1 2g 0 p e d D 2 UJ D p D OP ep eL SE p UU Ip d 0 0 pow p S SU p 0 DO BEL UL EL UI EB LE IE 9 Z33 22 3 1 1 p b UU U p 1 0 p 1 0 bp U 0 U p U U 3 p U U 53 p U 0 k k OQ k 0 k 1 k 2 k a k 4 k 5 k 6 k 7 o k Book S k 10 k 11 k 12 k 13 k 14 k 15 k 16 k 17 k 12 x 19 k 20 k Z1 k 22 k 23 k 24 k 25 k 26 k 26 k 20 n Srotatecontrol name setAttr 5rotateControl name s6cale rad us 2 0 1 Srad us 2 0 setAttr sr tatelontrol namest translater Sheighe 5 mov U sheicht4 3 U rotateconerol names 298312717529 torocateconerolL namet rotatePivot 7 if Sparent ID 0 BOLACUE rotateControl namste v ofr else setAttr SmainControl name scale D 0 0 group em n ScontrolGroup parent SrotateControl name mainControl name parent mainControl name controlGroup parentConstraint mo rotateControl name base name proc makeRod string
8. The following equation returns 0 if the parent is odd and 1 if the parent is even cog 1 teeth 2 0 1 Multiplying it by the offset solves our problem and gives us the final expression cog 2 rotateControl rotateY cog 1 rotateControl rotateY cog 1 teeth cog 2 teeth cog 2 mainControl rotateY cog 1 teeth cog 2 teeth 180 07 99 2stT 8eth cog Ietesth 5 2 0 1 5 At this point the script conducts quite a few calculations using both child and parent information If the naming is incorrect then the calculations are false or the program does not work It was very important to keep things well organised in the Maya Workspace 10 31 Adrien Saint Girons Innovations Report cogs v0l WE coping things tidy Generating such a large amount of objects and data can quickly become messy A user needs to be able to control his workspace Adding confusing information does not help the programmer or the user and can work against the tool Very early in the developing stages I realised that organising was essential as I kept getting naming errors Naming in Maya is tricky because depending on where an object is placed hierarchically it can have the same name as another object What actually happens is that Maya adds the hierarchy to the object s name linking every part with the symbol However if you make sure that the name does not exist then the object will be referred to without the hierarchy attached to it Keeping
9. The parallel gear is placed at its parent s position It is up to the user to move it along the Y axis to the desired height The expression is very simple in this case the child s rotation is equal to the parent s rotation giving us cog 2 rotateGConLtrol rotateY cog 1 rotateControl roLater An important feature in clockwork is the fact that the brass wheel includes a steel pinion gear that fits in its inner circle This inner gear can be implemented using the same logic as the parallel gear Extra calculations are necessary for the inner gear s radius and placement The radius can be calculated by subtracting the tooth s depth from the parent s inner radius If one wishes the parent and the child to have the same type of teeth then the amount of teeth can be determined with the following calculation The radius is figured out based on the number of teeth int teeth parent innerRadius depth parent teeth Sparent radius A rod is needed in order to connect parallel gears to their parents This rod is created only if the parent does not already have one It 1s placed along the gear s rotational axis The rod can then be translated along this axis and scaled by the user The bevelled gear has an entirely different implementation First of all they are drawn in a different way to the other gears In order to ensure a correct implementation of the bevelled gear it was important to keep the drawing similar to that of the spur ge
10. for more information 22 FE NOTE run cog UI in script editor if window does not apear y 4277707 0707 rr r 07077 rr 70707 r r REEL 7 2 7777 72 7222227 2 S2 oT WABMING I 1 7 772 777777 IIIA 7 7 77 7 7 7777 AA III PLEASE ENTER CORRECT FILE DATES 1 7777777777 7 77 77 7777777 7 7777 7 777777 777 77774 777777777777 777 77 7777 7 7 7 OAT TG proc cog UserMan showHelp absolute D cogs v01 User Manual htm User Manual htm a a 2 7 3 FE Pd yy P C IR UI E a a a 7777777777 777 777777 7777777 777 7 77777 777 77 proc cog create float Sradius float base height float Steeth float depth int SconnectionType int SbaseType int StoothType float SinnerRadius int Stexture int SsameTeeth int SrodType float divisions X3 AENING T L L 77 7 7777 777 77777 777772 7 2 7 111 PLEASE ENTER CORRECT FILE PATHS III 7777777 777 7 7 777 7 77 PERL ES ELLI DL EL 1777 70 777077 7 LT ELLI ET IOP III 77 77 0 7 AL 77 7 POI 177 77 OT AIT string brassFilel string brassFile2 string steelPilel string SsteelFile2 D cogs vOl textures brassl jpg 61 1 D cogs v0l textures brass2 jpg A DPESSES TDE D cogs vOl textures steell jpg steell jpg D cogs vOl textures steel2 jpg steel2 jpg PIARA ARAIA 777 7 77 777 77777 OE EI WARNING POR 1777777777 77 77 77 77 77 777 7 7777 7 777 BL Pe ee int cog ID cog number int Sparent ID parent numbe
11. sense that most of my research was based around clocks so I had already read explanat ons of clocks during my research What s more I had befriended a clockmaker in the outskirts of Paris who was happy to answer my questions One thing he made very clear to me however was that clockwork had gone a very long way and that there was no way that I would understand modern clockwork in such a small amount of time He then orientated me towards older pendulum type clocks known as comtoise clocks These magnificent clocks were developed n the 2 LAYET P 2007 Horlogerie Patrick Layet Creations lonlinel Available from http www horlogerie new fr Accessed 14 03 07 15 31 Adrien Saint Girons Innovations Report cogs v0l 1800s and could tell the month the hour the minute and the second I was happy to create a clock that would tell only the hour and the minute Pendulum clocks work by using two sources of energy On one hand the pendulum rotates back and forth permitting the escapement gear to advance a little every second This movement drives the whole gear chain and rotates the hour hand and the minute hand accordingly The problem however is that the pendulum looses momentum and eventually stops rotating A weight or a spring is added to the mechanism which adds an extra force and helps the pendulum rotate Once the weight has dropped completely or the spring fully unwound then the clock must be rewound and reset The way the gear
12. setAttr lock true base name sx Adrien Saint Girons SetAttr SetAttr setAttr setAttr setAttr setAttr setAttr setAttr setAttr setAttr setAttr setAttr setAttr setAttr lock true lock lock lock Lock Lock lock lock lock true true true true true true true true lock Lock elLock lock lock true true true true true Innovations Report cogs v l base keyable false Sbase name rotateControl tx keyable false Sbase name rotateControl ty keyable false base name rotateControl tz keyable false Sbase name rotateControl rx keyable false Sbase name rotateControl rz base name roratecontxrol 6x 7 base namer Xorarecontrol sy base name ro on olsen keyable false base name mainControl rx keyable false Sbase name mainControl rz Sbase name mainControl sx Sbase name mainControl sy base name maincontrol sz proc expressions string base name float depth float parent ID getAttr Sbase name malnsnControl parentlrp LE Sparent ID fe Dj float SconnectionType getAttr base names qaincontrol connectlonType float SparentType getAttr eog tSparent ID4 maintontrol connecrionType float Schild radius getAttr Sbase name radius rloat parent radius getAttr Gog tSparent ID radius float Sbase height getAttr Sbase
13. tooth that will interlock 1s placed I decided that this tooth 7 31 Adrien Saint Girons Innovations Report cogs 01 would be at the bottom of the gear in the Z axis The others are duplicates of the original and are rotated by an angle determined by first tooth The next problem that arose at th s stage was UV mapping and texturing the gears This tool aims to create an unlimited amount of functioning gears To manually UV map and texture every gear would have been a great loss of time and goes against the point of this project I felt it necessary to deal with this problem procedurally During my research I realised that two different types of materials were used in old clock work The bigger wheels were made of brass and the smaller ones known as pinions were made of steel What s more these objects are made by cutting out circles from sheets of the correct metal and carving in the teeth Adopting a similar procedure in Maya helped me texture the wheels in an efficient manner I created two brass sheet textures and two steel sheet textures instead of one texture per gear One texture per wheel would slow down Maya and the render time tremendously After having understood how to create these textures using mel script I needed to find a way to UV map and place these maps correctly on the metal sheets Because the gears were drawn as separate objects I first needed to write a procedure that would combine the geometry The script t
14. 1 toothStyle r51 optionMenu e sl 1 baseStyle i intField e v 20 p marinGrid divisions 51 optionMenu e sl 2 texture S1 proc addNew int SnumberOfCogs gridLayout q nr mainGrid float Sradius float Sbase height float teeth float depth float SinnerRadius int connectionType int SbaseType int otoothTypes int SmakeRod int 5d1ivis10105 ant Si for 51 1 53 b5numberOfCogs o1l4 srad us floatkield q ev radius 5i Sheight floatField q y height Si Steeth intField q y teeth Si Sdepth floatField q v depth Si Sinnerkadius ElosotField q y 1n8PBsclaeg oL i SconnectionType optionMenu q sl type Si SsameTeeth optionMenu q sl sameTeeth r i 1 SbaseType optionMenu q sl baseStyle 4 i oPtoothType optionMenu q si toothotyle r i Stext re optionMenu q sl rLtexture 451 SrodType optionMenu g sl rodType Si j Sdiv sions xntbPrield g y divislons 452i cog ereartelsrad ns height Ferch Sdepch CCOHHNECULORDUYDe sbaselype otoothType Sinnerkadius Stexture SsameTeetrh Srodlype sdivisions cog UI 30 31 Adrien Saint Girons Innovations Report Appendix 2 3D clock control source code cogs v l 25 0 0 0 0 0 E REEL 07 00 00000 A di 27 x Name clock reset Author Adrien Saint Girons Dater 12703
15. 3 07 gt BRAIN M 1998 2007 Howstuffworks How Pendulum Clocks Work online Available from http www howstuffworks com clock htm Accessed 14 03 07 MAHONY G 2006 Gary s wooden clocks online Available from http www pathcom com u1068740 index html Accessed 14 03 07 16 31 Adrien Saint Girons Innovations Report cogs v0l if pCylinderl open cog 1 rotatecontrol rotatsr cog L rTovcatcetcontrol rotater 9520937 l ront view back view Now that we have a working clock why not set it to the correct time In order to do so I used the date function to retrieve information about the time and created a button that would move the hands to the correct time and then start the clock This clock works when the playback is at 25 frames per second If the animation was rendered than it would tell time correctly However rendering out the clock would not give us the current time This should not be a problem if we could set and run the clock at 25 fps in Maya Unfortunately Maya cannot keep a constant frame rate When asked to play at 25 frames per second the clock works a little too slowly If Maya is the only program open then the clock looses about 2 minutes in an hour Unfortunately this frame loss is not constant and cannot be foreseen There is no real solution to this problem apart from resetting the clock every so often In order to reset the clock back to the correct time all one needs to do is cli
16. 707 17229 Description This script will create a button to reset the 3D clock Installations and user Open the Scene SD Clock mp Run the script in the script editor Click on the button to reset the clock and start the pendulum ae yz Jy rr 27 4d 2 7 0 SET E 0 0000 a proc reset string StimeGroup date time string timell tokenize StimeGroup otime float Shour Stime 0 if Shour gt 12 Shour ho r 12 float Smin Stime l float sec timel21 float SminValue 90 360 0 Smin 60 0 6 0 Ssec 60 0 float SminRotateAnnul getAttr cog 5 rotateY setAttr minHand offset SminValue SminRotateAnnul float ShourValue 90 360 0 hour 12 0 30 0 Smin 60 0 0 1 55ec 60 0 float ShourRotateAnnul getAttr cog 9 rotateY setAttr hourHand offset hourValue hourRotateAnnul playButtonForvard proc clockReset if window q exists clock deleteUl clock Window es U rtf D title OD clock w 200 h 100 clock paneLayour confrfig rat on single button 1 Reset c setTime control showWindow clock clockReset 31 31
17. I toothStyle 4 1i deleteUI innerRadius i deleteUI baseStyle i deleteUI divisions Si deleteUI texture Si deleteUI rodType i 28 31 Adrien Saint Girons Innovations Report cogs v0l gridLayout e nrc numberOfCogs 12 mainGrid int i for Si SstartingPoint Si lt Snumberoftlogs it optionMenu w 70 p mainGrid co typeChange i type Si menultem 1 Interlocked menultem l Parallel menultem l Beveled menuitem 1 Inner floatField w 80 min 1 max 10 y 3 p mainGrid radius 1i intField w 80 min 1 max 200 v 50 p mainGrid teeth 5 1i floatField w 80 min 0 max 1 v 2 p mainGrid depth i floatField w 80 min max 10 vy 25 p mainGrid height Si optionMenu v 70 p mainGrid sameTeeth Si menultem l no menultem 1 yes m optionMenu e sl 2 sameTeeth 5 1i floatField w 80 min 1 max 10 v 35 p ma inGrid innerRadius T951 optionMenu w 70 mainGrid toothStyle Hr i menultem 1 Style 1 S menultem 1 Style 2 optionMenu v 70 p mainGrid baseStyle Si menultem 1 Style 1 a menultem 1 Style 2 gt optionMenu e sl 2 baseStyle Si ntField w 80 emin 3 yvy 20 p mainGrid adirvisions t51 optionMenu w 70 p mainGrid texture Si menultem l Brass x menultem 1 Steel b optionMenu w 70 p mainGrid rodType Si menultem 1 None m menultem 1 Inner Radius menultem 1 Outer Radi
18. INNOVATIONS REPORT Gear Generator Adrien Saint Girons d1195414 BACVA NCCA Bournemouth University 2007 Adrien Saint Girons Innovations Report cogs v0l Contents Abstract Introduction A ms l Gears 1 1 Gears in clockwork and in music boxes 1 2 Spur gear maths 2 Implementation of spur gears using mel script 2 Drawing the gears 2 2 Getting 1t all to connect 2 3 Keeping things tidy 3 Developing the script further 3 1 Creating new gear types 3 2 Making the GUI 3 3 Clock making in Maya Conclusion References Appendix 1 cogs 01 source code Appendix 2 3D clock control source code 2 31 Adrien Saint Girons Innovations Report cogs v0l Abstract Gears also known as cogged wheels are fascinating objects that have helped develop some of the most ingenious machines They can be implemented in Maya in many different ways This report will explain how mel script can be used to create a tool capable of generating gears that will behave correctly Introduction When faced with a problem in the world of 3D animation there 1s often more than one answer In the industry tool writing often offers a valid solution for repetitive and tedious jobs Within Maya this tool can take the form of a plug in or a mel script While developing my Major Project I quickly came across a problem that required such a device The nature of my project required animating complex mechanisms using old clockwork type gears I felt tha
19. ad organised the GUI was far too complex By trying to simplify things I had managed to complicate them A Clockworks 01 Help Connection type C Chi C Perpendicular Relative radius Change Direction Same teeth Teeth Options Tooth style n Amount of teeth 50 m Tooth depth 1 5 Tooth height 0 3 J Base Options Base style LN Outer radius 3 0 a M Inner radius 0 5 J Base height 0 3 J Divisions 20 Action Current Cog cog 1 Add E dit current Delete current Original GUT I then decided to go back to the way 1 originally called the main procedure The script is such that once it has finished it selects the gear s mainControl By creating another 14 31 Adrien Saint Girons Innovations Report cogs v0l gear straight away you are in fact connecting it to the one created before In this manner it is very easy to create a gear chain This was a technique I regularly used while programming to test the tool cog OPSSteL3 0 325 cog OresLe 3 0 123 cog create 3 0 25 Implementing this concept in the GUI seemed like a good idea as it would enable the user to create a complex chain by clicking on one button This time the GUI is separated in three parts The first part determines how many gears to add to the chain The minimal amount is
20. ars The radius of the bevelled gear is determined by adding the tooth height to the base 13 31 Adrien Saint Girons Innovations Report cogs v0l radius The teeth are then placed above the base in the same way as spur gears but pointing upwards In order to make sure that the teeth do not intersect the original expression can be used All that needs to be taken care of is rotating the controls and moving their pivots correctly The tool can now create the type of gears needed However calling the main procedure may seem tricky to some MD Making a GUI In order to call the main procedure the user is asked to pass on a list of 12 arguments They are radius height teeth depth connection type base type tooth type inner radius texture file the same teeth option rod type and divisions It would be very hard for the user to remember all of these arguments and to place them correctly I was having a hard time myself getting the order right A GUI would help make more sense of the tool My first attempt in the creation of the GUI was unsuccessful I made three sections aiming to make the arguments more clear The first section covered the connection type of the gear The second and third parts gave options to change the teeth and the body of the gear Finally the last section asked the user what action to take add edit delete I asked a few people to try the GUI and the tool but they were very quickly confused The way I h
21. ate rr rotate r U Sangle for 51 2 Si lt Steeth Fitt duplicate rr 8t proc cog finalise float teeth string base name select hi base name String vall Objects ls si polyUnzte oh L en DOVOMAL call Objects delete ch newObject rename newObject base name proc draw control float Sradius float Sheight string rotateControl name string mainControl name string controlGroup string base name int Sparent ID Curve d 3 p 5 95B855e 008 D 1 9993601 p 5 9595558 0059 0 1 998561 sp 7 en 2 225525 0 D p 1 575915 U 1 575812 p 0 0 1 999351 Q 0 1 99936L p 0 Q 1 999361 p D 00319036 0 2 275362 p 90 DD0219036 0 2 2 5902 p 0 D0319036 0 2 275302 p 1 179168 D 1 292934 p 1 179168 0 1 592954 p 0 00319045 0 0 910506 p 0 00319045 D 0 910506 p 1 78 1578 007 0 1 199616 p 1 707576 007 amp 1 199616 ep 07 D D S93 5259 p 1 225580 U p 2 1927525 D eD 9M27525 p 2 97928e 008 0 1 199616 p 2 97928e 008 0 1 199616 p 2 979288 008 0 1 199616 p 0 00319045 0 0 910782 p D 00519045 0 0 910782 p 1 179158 D 1 595417 p 1 179100 U 1 593417 ep 0 00s19055 275052 p e0 005190256 0 x T6052 5 95856e 008 0 1 999361 p 5 95856e 008 0 1 999361 5 95856e 008 1 ol D k OX k D k hoc o4 cR o2 ck X ek a lk 9 exc 7 Hk 28S ak X x LU k 11 k 12 k 13 k 12 k 15 k LB k 17 158 k 19 k Z0 ZI k 22 22 3 Adrien
22. base name int parent ID int SrodType int connectionType int SparentRod 1 if Sparent ID 0 amp amp connectionType 1 Sparentkod getAttr cog FSp arent ID rodType if SparentRod 1 amp amp SrodType 1 float Sradius if SrodType 2 Sradius getAttr base name t innerRadius if SrodType 3 Srad us getAttr base nameet radius polyCylind r Gradius h ID ox 20 base namer Rod parentConstraint base name base namet Rod proc layers if objExists cog Geometry Layer 0 createDisplayLayer empty name cog Geometry Layer layerbditorLayerButtonTypeChange cog Geometry Layer layerbditorLayerButtonlIypeChange cog Geometry Layer if objExists cog Controls 0 creaLeDrisplayLayer empey name cog Controls Layer 23 31 Adrien Saint Girons Innovations Report cogs v0l proc string textureFile string shader string textureFile string orileName PsShaderf Tile String SplaceName Sshader placesdTexrture shadingNode asTexture file n SfileName shadingNode asUtility place2dTexture n SplaceName connectAttr f SplaceNamet coverage fileNamerm coverage connectAttr f SplaceNamet translateFrame SfileName translateFrame connectAttr f SplaceNamet rotateFrame SfileName rotateFrame connectAttr f SplaceName mirrorU fileNamer mirrorU connectAt
23. ck on the reset button 17 31 Adrien Saint Girons Innovations Report cogs v0l Conclusion Overall this tool has reached an interesting stage It draws clockwork orientated gears of different types and constrains them in a logical manner which imitates the way they work in real life I am pleased with the final result as it answers most of my expectations There are certain aspects that I would like to improve in the future however The fact that I was developing this tool for my Major Project was good because it helped me focus on specific problems that needed to be solved However as much as I wanted the tool to be easy to use the fact that I was writing the tool primarily for myself did not help I know how to use the tool very well because I can work around its limitations In order to make this tool more user friendly I would need to solve the following limitations The user can change a gear s value to an extent that it will not look correct The file paths must be entered manually in the script If a gear is deleted connections need to be mended manually Gears cannot be edited At present these factors work against the tool Solving the above would enable the tool to be used by anyone and ensure that no bug would occur One can imagine taking this project much further and implement modern clockwork Watch companies could then in theory use it to create new watch designs This challenging project opened my eyes to the world of t
24. der of the correct amount of divisions and extruding every other face of its edge This was too expensive as it called the extrude function and it was hard to know exactly where the teeth were placed The easiest solution was to keep the body and the teeth separate This would enable me to have full control of the body s look and of the teeth s placement Because of the nature of gears especially in the world of clockwork it 1s important to be able to alter the geometry of the base and the teeth Even though cogged wheels may look alike most clockmakers add a personal touch to the look of their gears The more attention is given to detail inside a clock the better the clock In order to keep this aspect of clockwork in my script the body s look is determined by the baseType variable Depending on its value Maya will draw a complex or a simple base The same feature applies to the teeth with the variable toothType This logic enables me or anyone else to go back to these procedures and add or change the look of the cogged wheel If these modifications are done sensibly the gears would still work Oc 414 base style 1 base style 2 tooth stlye 1 tooth style 2 In order to make sure that that the logistics of the teeth s interconnections worked I needed full control of the teeth s placement Creating the teeth by extruding the edges made me very confused because the first tooth s position was hard to determine It is essential to know where the
25. eRod base name Sparent ID rodType connectionType select r SmainControl name proc int cog number int counter 1 string oc rrent Name Toog 5o0Unter while objExists current Name bcounterii Sourrent Name cog 45counter return Scounter proc int parent number String Sall Selecved le 31 7 string 1 111 if 5 all Selected 0 match cog Sall Selected D return 0 else tokenize sall Selected 0 7 Ssplit return split 1 proc float width float radius float teeth float angle deg to rad 360 0 teeth 8 0 float Swidth sin Sangle Sradius 4 0 return Swidth proc float radius int Sparent ID float teeth float parent teeth getAttr cog roparent D teeth float parent radius getAttr coq Sparent ID4 radius 20 31 aag j 4 Adrien Saint Girons Innovations Report cogs v0l float Sradius Steeth Sparent teeth parent radius return Sradius proc float relative teeth int parent ID float depth float Sparent innerRadius getAttr cog Sparent ID innerRadius float Sparent teeth getAttr Gog Sparent IDf tesrth float parent radius getAttr Gog 42parent ID radius int Steeth parent innerRadius S depth Sparent teeth parent radius return Steeth 1 proc float relative radius int parent ID float d
26. epth float Sp rent innerRadius getAttr gog Toparent ID innerBadlius float Sradius parent innerRadius depth return Sradius proc draw base float 5radius float height float Stooth height float Sdivisions string base name int connectionType int baseType float innerRadius if SbaseType 1 polyCylinder r 1 h 4 5x Sdivisions n Sbase name else if SbaseType 2 int SinnerDivisions divisions 1 25 polyPape er 1 h 2 C 15 da Sdivisions gh 1 Sc 0 ox U I 0 cuv 1 cEOD U ch 1 n bare ramet part polyPipe r 4 h 2 t 4 1 SinnerRadius sa SinnerDivisions sh 1 sc oH ax L0 ouv 1 rop U lt ch 1 n obese name parka polyCube w 25 h 1 d 6 sx 1 sy 1 sz 1 ax U 1 D cuv 4 ch 1 n base namet part3 setAttr base namer part32 translarez 6 move er U 5 base namot parto stalen vot base namer parto rotatePivot duplicate rr rotate r 0 90 0 for 51 0 6144 Sit duplicate rr st group n base name base name partl base name part2 Sbase name part3 base namet part4 Sbase name part5 Sbase name part6 if SconnectionType 3 SetAttr base namet scaler Sradiusrstocsth height Sheight Sradius tStooth height else setAttr base name scale radius height radius proc draw teeth float Steeth float Swidth float Sbase height float Sheight float Sdepth float Sbase radius
27. hen creates a planar mapping of the gear scales it accordingly and places it randomly on one of the two sheets of the chosen metal Proceeding this way enabled me to create an interesting amount of variation of the gear s textures and saves the user a significant amount of time The metal sheet s texture files Automatic UV mapping example 8 31 Adrien Saint Girons Innovations Report cogs vOl Ape Getting it all to connect Using the above procedures I could now draw and texture cogwheels of different types I also had exact knowledge of each tooth s placement However two essential aspects were missing the interaction between gears and the positioning of the gears The first step was figuring out a valid system that would answer to the user s needs The teeth should connect correctly the child wheel must be placed interactively in a constrained manner by the user the rotation of all wheels in a chain should be determined by keying only one These constraints in mind it was important to make a distinction between the gears that would control the rotation of the gear chain and those that would be constrained to their parent In order to differentiate these gears at creation time a procedure checks if another wheel is selected If this 1s the case the selected wheel becomes parent of the new wheel If nothing s selected the new wheel has no constraints and can turn freely Other gears can be attached to it by selecting it before calli
28. in the other layer that is set to reference mode which ensures that the geometry will not be selected Before creating a new gear the script checks if any gear or control is selected The following procedure tries to find the parent s ID If nothing or an incorrect object is selected then the procedure returns 0 the gear will have no parent If a correct object is selected the procedure will extract the number from the selected objects name and return it as the parent ID 11 31 Adrien Saint Girons Innovations Report cogs v0l proc Int parent numbers string all Selected ls 81l string split if all Selected 0 match cog all Selected 0 cog return 07 else eokenize all Sereccedi OL return split 1 Now that we have retrieved the parent ID there needs to be a way to retrieve information about the gear This is dealt with by adding attributes to each gear Information about a gear s teeth radius and so on are stored and retrieved as the gear s attributes This enables information to be retrieved simply in the procedures and in the expressions The last important aspect of this part of the script is limiting the user s options The gears are placed parallel to a particular plane and therefore rotate about a particular axis The user can choose where to place a gear around its parent s axis It is very important that the user does not rotate in the incorrect axis And so it is e
29. ires mathematical precision in order to ensure maximal passage of energy I decided to leave such complex calculations out of this project because such precision was not needed These equations would be the backbone of my code All that was needed at this stage was to create an appropriate implementation of spur gear interaction inside of Maya 6 31 Adrien Saint Girons Innovations Report cogs v0l a Implementation of spur gears using mel script My first attempt at implementing these concepts was very unstable and did not produce the desired effect This is mainly dude to the fact that I did not plan ahead It is very important to script in a methodical manner in order to limit the amount of bugs The direction I took for the organisation of this code was to divide it into different tasks In order to keep it as interactive as possible all the variables are passed on to the main procedure It then calls the other procedures passing on the correct variables This makes it easier to know where to look while debugging The procedures are split into three main categories One group takes care of drawing the cogged wheels and their controls Another makes sure that they interlock correctly The other procedures make sure that all the new objects are correctly organised in the Maya workspace Ae Drawing the gears Gears are composed of mainly two different parts the teeth and the body Originally I made the gears by creating a cylin
30. mplex and so it 1s important to concentrate on the specific types of gears of interest au Gears in clockwork and in music boxes In the context of my Major Project I was in need of old looking elaborate mechanisms Mechanics have improved greatly over the years and have reached today a state of great complexity To ensure that I could deliver the end product on time it was important to focus on simpler machinery from an earlier era In the 1600s the first functioning clock was created using a pendulum and a series of different cogged wheels In order to realise what type of gears were used the most effective approach was to buy a pendulum clock and take it apart It was obvious that spur gears were most common in old clockwork Spur gears have straight teeth and are mounted on parallel shafts The larger spur gears known as wheels are made of brass and often have a complex shape carved out of their base circle They are generally attached to smaller spur gears known as pinions that are made of steel Both are generally connected by a steel rod Mechanisms mainly consist of spur gears Music boxes were developed in the 1800s They appeared in a period where mechanisms had advanced quite a bit since the basic pendulum clock Looking closely at a musical movement the part of the music box that creates music one may notice that spur gears are again the most used but that there also spur gears with perpendicular teeth bevelled gear
31. name baseHeight float Stooth height getAttr base name toothHeight float Sp base heigbt getAttr Cog 104 BaseHeighr r float Sp tooth height getAcctr nog I parent IDI 7 string expression Name if objExists expression Name base name Constraints n expression o base name n expression Name if SconnectionType if SparentType 1 float SpivotTranslate 1 amp amp Sparent ID 0 SparentType II SparentType 4 Schild radiusr parent radiust depth move r 0 0 SpivotTranslate Sbase name mainControl scalePivot base name maintontrol rotatePlivot 7 move r 0 0 SpivotTranslate base named controls scalePivot base name controls rotatePivot peantConstraine A nag Foparent IDI Zotateooneorol orientConstraint n cog oparent 1D maincontrol string base name linki m base name Controls 7 Sbase name link2 base name controls expression base name rotarocontrol rorareor Sbase name mainControl rotateY cog_ parent ID teeth Sbase name teeth 180 0 5base namet teeth cog parent pest X Beh ee ec parene ID xotatecontrol urotater cog oparent ID teeth Sbase name t teeth r n expression e s expression o Sbase name expression Name else if SparentType 3
32. ng the main procedure Despite the gear being free or constrained a series of controls were necessary in order to modify the geometry s rotation and translation I thought it important to keep the geometry and the rigging as two separate aspects And so the geometry is attached to its controls and the logical constraints are applied to the controls Each gear is given two controls one takes care of the gear s rotation about its own axis named rotationControl and the other gives the user the possibility of rotating the wheel about its parent s axis named mainControl If the wheel has no parent then the mainControl acts as a rotational offset The wheel s parented to the rotationControl which is parented to the mainControl The mainControl is parented to an empty group that 1s point constrained to the parent if the gear is a child This parenting system ensures a correct rotation of the gears rotation Control selected main Control selected The next major step was to make sure that the gear s teeth connected correctly In order to overcome this challenge I used expressions If a gear 1s at the head of a chain or free then no expression is attached to it However if a gear has a parent then an expression is added to its rotation control In order to achieve the final expression I needed to start from the basics and develop from there As explained above a gear s rotation in relationship to its parent 1s given by rB rAx ratio
33. nt Girons Innovations Report cogs v0l proc cog ULU int ScogWindowExists if ScogWindowExists deleteUI cogGen v l window q exists cogGen v l window I rti D title cogcen vol w 360 h 500 cogcen vOl paneLayout configurat on horizontal3 ps 1 100 15 ps 3 100 20 columnLayout cal right menuBarLayout h 20 v 1000 menu hm 1 1 Help mn h menultem 1 User Manual c cog UserMan seLParent a intSliderGrp label Number of cogs cw3 90 80 80 cal 1 left field true min 1 max 50 v 4 cc modCogNumb numberOfCogs SOLPAEGNL say scr llLayour gridLayout nrc 1 12 cellWidthHeight 80 20 mainGrid text 1 Type text 1 Radius text 1 Teeth text l Depth text l Height text l Parent s teeth text l Inner radius text l Tooth Style text l Base Style text l Divisions text 1 Texture text l Rod type setrarent setParent 7 button label Add Create cog chain w 900 c addNew modCogNumb showWindow cogGen v01 proc modCogNumb int SnumberOfCogs intSliderGrp q v numberOfCogs 1 int cog ID cog number int SstartingPoint gridLayout q nr mainGrid if numberOfCogsc startinogPoint int Si for S i SnumberOfCogs i lt SstartingPoint i deleteUI type 1i deleteUI radius Si deleteUl teeth 45i deleteUI depth Si deleteUl height 453 deleteUI sameTeeth 5i deleteU
34. ool writing The amount of motivation I had while I was developing this tool made me realise how much I enjoy this aspect in 3D animation I hope that my future career will allow me to further develop this skill References BRAIN M 1998 2007 Howstuffworks How Pendulum Clocks Work online Available from http www howstuffworks com clock htm Accessed 14 03 07 CAUDINE L 1998 2005 Les horloges comtoise anciennes online Available from http perso orange fr comtoise caudine index htm Accessed 14 03 07 LAYET P 2007 Horlogerie Patrick Layet Creations online Available from http www horlogerie new fr Accessed 14 03 07 MAHONY G 2006 Gary s wooden clocks online Available from http www pathcom com u1068740 index html Accessed 14 03 07 STOKES A 1970 High performance gear design Brighton Machinery Publishing T IL Productions 2001 Music boxes The androids and automatons website online Available from http www automates anciens com english version Accessed 14 03 07 18 31 Adrien Saint Girons Innovations Report cogs vOl Appendix 1 cogs v01 source code VONT I m t E I RE EU 70 r 66 0 Name cogs v01 yu Authors Adrien Saint Ce 2 Date 14 03 07 17 38 FE Description This tool is a clockwork like gear generator Pp A 4 Installation First make sure the file paths are correct bellow oe Run the Script zn the script editor yy 77 Use the user manual
35. r string base name cog cog ID string SrotateControl name Sbase name rotateControl string mainControl name base name mainControl String econtrolGroOup Sbase name generale if SconnectionType 4 amp amp SsameTeeth 1 Steeth relative teeth parent ID depth if SconnectionType 4 amp amp SsameTeeth 0 Sradius relative radius parent ID depth else if Sparent ID 0 amp amp sameTeeth 1 Srad us radius opatent ID teeth sdepth getAttr cog Sparent ID t d epth 19 31 Adrien Saint Girons Innovations Report float Swidth width Sradius Steeth float Stooth height Sbase height layers draw base radius base height tooth height divisions SconnectionType SbaseType innerRadius cogs v l Sbase name draw teeth teeth Swidth base height tooth height depth radius Sbase name connectionType toothType cog finalise teeth base name textures base name radius texture brassFilel brassFile2 SsteelFilel steelFile2 draw control radius 2 base height rotateControl name SmainControl name controlGroup base name parent ID groups base name controlGroup add attributes base name parent ID teeth Swidth depth SconnectionType tooth height base height radius SinnerRadius SrodType expressions base name depth lock attributes base name mak
36. s are supposed to be connected inside a clock is not so easy to figure out I came across a site that explained how to make wooden clocks out of wooden gears This proved to be very useful as I found information about the exact number of teeth needed per gear and how to connect them together With all of this information as well as the gear generating tool the creation of the chain was very straightforward Adding a face to the clock and correctly parenting an hour and a minute hand proved that the gears where working correctly The escapement 30 t does one full rotation in 60 seconds The ratio between the escapement gear and the minute gear 90 t is 1 60 given by 90 x 64 8 12 The ratio between the minute gear and the hour gear 48 t is 1 12 given by 18 x 40 10x16 5 In order to get the seconds working I added a pendulum that would drive the chain The pendulum goes from one side to another in one second 25 frames In that movement the escapement will rotate by one tooth This means that in 60 seconds the escapement would have made one full rotation The way this is implemented is by using an expression and adding an open attribute to the pendulum The expression checks if the escapement can advance if so then it advances accordingly If it is closed then it stays put CAUDINE L 1998 2005 Les horloges comtoise anciennes online Available from http perso orange fr comtoise caudine index htm Accessed 14 0
37. set to 1 and maximum to 50 Changing this value adds or removes a line from the second part of the GUI In the second part there 1s a line for every gear that will be created Each line corresponds to a list of a specific gear s arguments The user can change each gear s arguments by modifying any of the values In order to help the user further some values are automatically changed when the connection type value is modified This 1s useful particularly for inner gears that tend to have a greater heights and steel as a material The final part of this GUI corresponds to a button that creates the gear chain or adds it to a selected gear A cogGen v01 E xl Help Number of cogs 4 a m Type Radius Teeth Depth Height Parent s teeth Inner radius Tooth oc Base Style Divisions Texture Rod type 3 0000 50 0 2000 0 2500 yes ee 5000 pelt v Siyle2 v 20 None 2 les vl Interlocked 3 0000 50 0 2000 0 2500 Interlocked 3 0000 50 n 0 2000 o 0 2500 Interlocked 3 0000 50 0 2000 0 2500 s v v Siyle2 v 20 None oso Style f 1 v Style 2 v 20 None zi 5000 Style 1 w Style 2 v 20 Brass v None Add Create cog chain The latest GUI So when the tool became easier to use it was time to see 1f it worked correctly by testing 1t ms Clock making in Maya The best way to test a tool that generates clockwork orientated gears is by making a functioning clock I was lucky in the
38. ssential to lock and hide every rotational axis apart from the desired one in this case Y This constraint actually creates a very nice feature because the rotation tool becomes extremely easy to use The user can try to move it in any direction but it will always turn correctly Almost all attributes of the geometry are locked as they should not be modified after creation 12 31 Adrien Saint Girons Innovations Report cogs v0l Ale neo ino the script further The above implementation created interesting mechanisms However it did not enable me to create machinery of the desired complexity In order to make sure the script would produce what I needed I had to add new gear types add a user interface and test the script by creating a functioning clock mu Creating nevv gear types Looking more closely at clockwork and music boxes I noticed two things First it s very common for two gears to share the same rod and rotate at the same rate Second as explained earlier there 1s a need for spur gears with perpendicular teeth Now that the framework of the script was set implementing a new gear meant adding a variable connection Type and checking its value when appropriate The different types are interlocked parallel bevelled and inner gears Interlocked Parallel Bevelled Inner Interlocked parallel and inner gears are created using the procedures described above The difference lies in the placement and the expression
39. t creating texturing and animating every gear one by one would take to long and would prove to be repetitive What s more it would be very difficult to get the gear s teeth to interlock correctly by hand This came as a perfect opportunity to write a tool 1n mel script an area I was eager to improve my skills in In the past I have used mel script to solve other problems However I wrote however scripts that only I could use and understand I felt that it was important to make this tool accessible to other another animators This would help me understand how tools are developed in the computer animation industry The following report will cover the different stages involved in the development of this tool First we will cover some research in the domain of gears and clockwork Then I will show you how I implemented basic gears in mel script Finally I will speak about how I pushed the script further and tested it by creating a functioning clock in Maya Aims Write a tool that solves a problem Write a tool that 1s easy to use Write a tool that 1s efficient Research on gears and clockwork Write a tool capable of generating gears and connecting them together Use the tool to create a functioning mechanism 3 31 Adrien Saint Girons Innovations Report cogs vOI 3 Gears In order to create a tool capable of generating gears it is essential to understand the principles behind gear design The subject of gear design is very vast and co
40. things this way makes programming in mel a lot easier Making a naming convention was very useful I decided to add cog in front of every object created by the script to differentiate them from the other objects in the scene When a new gear is created a series of objects are associated to it It only makes sense to give a gear an ID number that is passed on to its objects In order to find this number the following procedure checks the existence of a gear If it exists it adds one to the ID number and tries again until it finds a number that hasn t been used proc int cog number int Scounter 1 string current Name cog counter while objExists current Name counter Scurrent Name cog counter return Scounter This technique gives me the assurance me that there will never be two of the same objects Now that the objects are named correctly it 1s nice to have them organ sed accordingly Two groups get created if they are not already there one for the geometry and one for the controls Objects are placed correctly within these groups In order to keep the link between the geometry and the controls a parent constraint 1s set between the rotationControl and the gear geometry This works nicely yet it 1s easy to select the geometry by mistake while trying to select a control And so two layers are created 1f they are not already created The controls are placed in one layer and the geometry
41. tr f placeNamer mirror Sri LeName mirrarv connectAttr f SplaceNamet stagger SfileNamet stagger connectAttr f SplaceName wrapU SfileName t wrapU connectAttr f SplaceNamet wrapV SfileName t wrapV connectAttr f SplaceNamet repeatUV fileNamer repeatUV connectAttr f SplaceNamet offset SfileName t offset connectAttr f SplaceName rotateUV SfileNamet rotateUV connectAttr f SplaceName noiseUV fileNamer noiseUV connectAttr f SplaceNamet vertexUvOne SfileName t vertexUvOne connectAttr f SplaceNamet vertexUvTwo SfileName t vertexUvTwo connectAttr f SplaceNamet vertexUvThree SfileNamet vertexUvThree connectAttr f SplaceName t vertexCameraOne SfileName vertexCameraOne connectAttr SplaceName t outUV SfileNamet uv connectAttr SplaceName t outUvFilterSize fileNamer uvFilterSize setAttr type string SfileName t fileTextureName StextureFile return SfileName proc textures string base name float radius string texture string Stexturer lel string Stexturerile2 string o textureFile string otextureFile4 if objExists brassl 0 shadingNode asShader blinn n brassl string SfileName textureFile brassi textureFilel connectAttr f SfileName outColor brassl color if objExists brass2 0 shadingNode asShader blinn n brass2 string SfileName tex
42. tureFile brass2 StextureFile2 connectAttr f SfileName outColor brass2 color if ob Exists steell 0 shadingNode asShader blinn n steell string SfileName textureFile steell StextureFile3 connectAttr f SfileName outColor steell color if ob Exists steel2 0 shadingNode asShader blinn n steel2 string Stexturerile DijMagor Progject texLurBss SUBELZ pg string SfileName textureFile steel2 StextureFile4 connectAttr f SfileName outColor steel2 color int Sswitch rand 1 2 9 select r base name if Stexture 1 hyperShade assign brass Sswitch else if Stexture 2 hyperShade assign steel Sswitch 24 31 Adrien Saint Girons Innovations Report cogs v0l int SnumFaces PpolyEvaluate f Sbase name int SnumUVs polyEvaluate v Sbase name float SuvRadius radius 10 0 float SmaxUV 5 SuvRadius 2 0 float SrandU rand SmaxUV SmaxUV float SrandV rand SmaxUV SmaxUV polyProjection ch 1 type Planar ibd on kir md y base name t Shape f 0 SnumFaces 0 1 select r Sbase name Shape map 0 SnumUVs 0 1 polyEditUV pu 0 5 pv 0 5 su SuvRadius sv SuvRadius polyEditUV u SrandU y SrandV j proc groups string geometry string control if objExists Cog Geometry Dj group em n Toog Geometry if objExists cog Controls 0 group em n God COBLIOLSE
43. us proc typeChange int i SconnectionType optionMenu q sl type Si if SconnectionType II SconnectionType 2 floatkF eld e y 3 p malngrid radius L intField e y 50 p mainGrid teerth 45i1 ElOatFreld e y 2 mainerid deprth 453 j floatField e v 25 p mainGrid height i optionMenu e sl 2 sameTeeth S Si floatField e y 5 p mainGrid innerRadius S Si optronMen e s1 1 toobthsStyle 451 optionMenu e sl 2 baseStyle i inctkield e y 20 p mMainGrid divisions optionMenu e sl 1 texture i if SconnectionType 3 floatField e v 3 p mainGrid radius Si intField e y 50 p mainGrid teeth Si floatField ee y Q2 p maincrrid Piel floatField e y 25 p mainGrid height i optionMenu e sl 2 sameTeeth S Si floatField e y 5 p mainGrid innerRadius Hr i 29 31 Adrien Saint Girons Innovations Report cogs v0l optionMenu e sl 1 toothStyle 5 1i optionMenu e sl 2 baseStyle i intField e y 50 p mainGrid divisions Si optionMenu e sl 1 texture zr i if SconnectionType 4 floatField e y 2 p mainGrid radiusg 1 intField e y 10 p mainGrid teeth Si floatField e v 2 p mainGrid depth Si floatField e v 75 p mainGrid height i optionMenu e sl 2 sameTeeth i floatkield e v 5 p maincrid innerRadius 2i optionMenu e sl
44. y ratio 8 y B The rotation of gear B is given by rB rA x ratio These simple equations give us an understanding of the relationship that exists between two existing gears However it is essential to understand how to add new gears to existing gears and ensure that they interlock correctly The most efficient way of doing this is by making the child s teeth the same as its parent s In order to determine the width of a gear s tooth we must use its base circle s radius and some simple trigonometry pase circle 260 teeth angle 8 width sin angle x radius x 4 tooth We now know that the size of a tooth 1s directly related to the amount of teeth and by the radius It 1s essential that the ratio between the child and parent s base radius 1s the same as the ratio between the child and parent s teeth Therefore the child base radius is given by radB rad A x ratio A gear that has no parent can be determined in knowledge of the amount of teeth and the base radius If a gear has a parent we can find its base radius by using the amount of teeth the parent has and the amount of teeth that it has STOKES A 1970 High performance gear design Brighton Machinery Publishing 5 31 Adrien Saint Girons Innovations Report cogs v0l Gear mathematics can be taken much further In the engineering world there are other factors that need to be taken into account The physical contact between the teeth requ

Download Pdf Manuals

image

Related Search

Related Contents

PrPROLENSAMC - Bausch + Lomb  Brodit ProClip 513276  PlayStation®3  Fabricator 190 Service Manual (B)  CM & CI Cold Food.qxd  La question de la qualité, et la qualité de la  Crowcon C-Test Bump-Test und Kalibrierstation Zur Verwendung  General Ledger System User manual Version 12 2002 Edition  Optoma Technology H56A User's Manual  

Copyright © All rights reserved.
Failed to retrieve file