Hello everybody! First of all, I should post in the wrong area, please move into the correct area. Thank you! Okay, I'm going to convert a Nissan 300ZX mod from rFactor1 to rFactor2. Now I have a problem to adjust the correct Overall Gear Ratios. Here is the Gear Ratios from Automobil-catalog(dot)com for the Nissan 300ZX: Gear ratios (overall): I 3.214 (11.87) II 1.925 (7.11) III 1.302 (4.81) IV 1.000 (3.69) V 0.752 (2.78) R 3.369 Final drive ratio std: 3.692 I've entered following into the Gears.ini: Code: // Nissan 300ZX Gear Ratio's. [GEAR_RATIOS] ratio=(?, ?) // R: 3.369 ratio=(11, 87) // 1: 3.214 ratio=(7, 11) // 2: 1.925 ratio=(4, 81) // 3: 1.302 ratio=(3, 69) // 4: 1.000 ratio=(2, 78) // 5: 0.752 [FINAL_DRIVE] bevel=(1, 1) ratio=(?, ?) // 3.692 How do I know if the Gear Ratios Overall are correct? And how do I find out how the overalls ratios are, that are not specified, for example, Reserve and final drive? Is there a general table or a calculator for the Overall Ratios? And finally, how exactly (in what order) do I have to enter everything in the .ini? I have already searched the Internet for the Overall Ratios, but I have not found more. Sorry for my english, Google has translated for me! Thanks in advance!
I have now found the Gear Ratio Calculator for rFactor1 and GTR and use it to create the correct gear ratios.
Gear Ratio Calc is great but a 2, 3, and 4 tooth gear is highly unlikely. Likewise for high tooth counts of >60. Google for photos of actual parts and count, or find a manual. http://www.300zx-twinturbo.com/cgi-bin/manual.cgi?list=mt&slide=35 (31/13)*(31/23)=3.214.... Don't use 1,1 as your bevel, the box has/behaves like a drop gear. With so many prime numbers involved, you'll never find nice whole numbers for teeth counts without the second ratio. 4th is undefined because it is just the inverse of the "drop" 23/31 * 31/23 =1.000. Reverse Calc: 30/22 * 22/12 * 31/23 Since the Idler (22) cancels use 12,30 for your counts. http://www.300zx-twinturbo.com/cgi-bin/manual.cgi?list=pd&slide=42 48/13=3.692... The two sections in the gear.ini are separate and although the ratio definitions for each will self sort by ratio (something to note if your reverse is taller than 1st, you probably want to keep it as organized as possible.
@lordpantsington Thanks for your help! I have no idea of gearboxes and I will now take time to understand how this works. Thanks again!
Pictures help. http://www.300zx.cl/ga2/300zx/images/gearbox1.jpg http://takakenr.web.fc2.com/car2/mtoh/mtoh.html specifically http://takakenr.web.fc2.com/car2/mtoh/06.jpg So the thing that bothered me is where is the secondary gearing to alter the ratios to their proper value? Why when looking for photos did I come across many people complaining about being locked into 4th? The shafts for 4th and the rest of the gear on the "main shaft" are two separate shafts with a coupling. I'm pretty sure 4th gear IS the drop gear. When 4th is selected the Output is just synced to the Input (Also why people are having problems with it sticking in 4th). Input=Output, so 1.000 Ratio. When not synced, the output travels from input, through the "4th" onto the counter shaft, then back over to the output shaft through the gear set that is selected.
Easy explanation for beginners: for your rfactor car you must enter a fraction which gives as result the ratio you are looking for. For example, for 1st gear you asked for: 3.214 (11.87) You must enter a pair which fraction gives as result 3.214 or close. Perhaps you can use an approximate 24:77 (77/24 = 3.208). If you want 100% accurate ratio then you should enter a 299:961, perhaps rfactor still gets it despite using 961 teeth probably is not very common in real cars . 11.87 on parenthesis is the result after applying the final drive ratio to the first gear: 3.214 * 3.692 = 11.87. Then you can ignore it, don't copy it on the gears.ini file! [GEAR_RATIOS] ratio=(24, 77) // 1: 3.208 ratio=(13, 25) // 2: 1.923 .....(etc) ..... [FINAL_DRIVE] bevel=(1, 1) ratio=(13, 48) // 3.692 Remember that your tires also must be same radius as real ones to obtain the same speeds vs rpms
I think it is great of you that you are still dealing with my topic! I have a look at "Gear Ratio of a Gear Train", on the website http://www.wikihow.com/Determine-Gear-Ratio. In "More than Two Gears" I do not come with my understanding. Now I looked in the .HDV from the ISI Honda NSX Mod, the area, which defines the transmission. This looks as follows: Code: FinalDriveRange=(0,0,1) FinalDriveSpecial=(0,,,"16,65,10,10") FinalDriveSetting=0 ReverseRange=(0,0,1) ReverseSpecial=(0,,,"1000,3186") ReverseSetting=0 ForwardGears=5 Gear1Range=(0,0,1) Gear1Special=(0,,,"1000,3071") Gear1Setting=0 Gear2Range=(0,0,1) Gear2Special=(0,,,"1000,1952") Gear2Setting=0 Gear3Range=(0,0,1) Gear3Special=(0,,,"1000,1400") Gear3Setting=0 Gear4Range=(0,0,1) Gear4Special=(0,,,"1000,1033") Gear4Setting=0 Gear5Range=(0,0,1) Gear5Special=(0,,,"1000,771") Gear5Setting=0 Gear6Range=(0,0,1) Gear6Setting=0 I have now adapted as follows: Code: FinalDriveRange=(0,0,1) FinalDriveSpecial=(0,,,"13,48,10,10") FinalDriveSetting=0 ReverseRange=(0,0,1) ReverseSpecial=(0,,,"1000,3369") ReverseSetting=0 ForwardGears=5 Gear1Range=(0,0,1) Gear1Special=(0,,,"1000,3214") Gear1Setting=0 Gear2Range=(0,0,1) Gear2Special=(0,,,"1000,1925") Gear2Setting=0 Gear3Range=(0,0,1) Gear3Special=(0,,,"1000,1302") Gear3Setting=0 Gear4Range=(0,0,1) Gear4Special=(0,,,"1000,1000") Gear4Setting=0 Gear5Range=(0,0,1) Gear5Special=(0,,,"1000,752") Gear5Setting=0 Gear6Range=(0,0,1) Gear6Setting=0 I have then tested in-game, but each Gear lacking minimum 4 Kph. On http://www.automobile-catalog.com/c..._version_s_twin_turbo_2seater_t-bar_roof.html are the kilometers per hour for each gear indicated. Just click on "Full specifications". Can it be that the speeds given there are only theoretical values?
Okay, thanks man! Can you perhaps tell me how I can calculate this (24, 77) when I have only "3.208"? Is there a formula that I can calculate it for each gear?
HDV Special settings are optional and used to push values to the setup, I find their use brutish (especially when you can do a little legwork and find the actual tooth counts). I spent less time searching for the actual tooth counts for the 300zx than I would have spent reducing fractions. Sometimes you have no choice but to use special settings. Because you have the actual tooth counts and the reverse ratio is not between 1st and 2nd, I'd advise not using them. Stick to using a gear.ini You can take the lazy way (as did the NSX) and just use 1000, X. But know this: What you find listed for ratios is usually rounded. You will often be slightly off if you go the lazy way. Case in point: the ratio for 300zx's 3rd, if you use the actual tooth counts you end up with 1:1.3028985507246376811594202898551... Had you just used 1000:1302 you'd have the wrong ratio. Occasionally a manufacturer will just drop to 3 digits rather than round to the nearest like that. This is part of the speed differential you are seeing, but tire circumference also has a big part in that. Most speed charts don't factor in loaded tire radius reduction. None factor in Aero drag. So yes those are estimates/theoretical. There is no Formula. How to calculate? Start with 1000/1302 and start reducing by dividing top and bottom by the same whole numbers. Alternatively start with 1.000/1.302 and multiply until you get whole numbers. Do this for every ratio.
FWIW these are actual tooth counts for that particular NSX gearbox: R 15,42 RIdler 33,29 (R ratio=42/15*33/29) 1st 14,43 2nd 21,41 3rd 25,35 4th 30,31 5th 35,27 FD 16,65 FD (type R) 17,72 http://webpages.charter.net/eddyanm/nsxspec.html http://webpages.charter.net/eddyanm/nsxspec2.html http://webpages.charter.net/eddyanm/nsxspec3.html
>>>>>>>Can you perhaps tell me how I can calculate this (24, 77) when I have only "3.208"? Is there a formula that I can calculate it for each gear? I guess there are mathematical ways and of course algorythms to make it automatically. But you just need to create an excel table to generate fraction values, which you can create in 5 mins. Rows and columns numbers represent the number of teeth, and each cell of the table calculates row/column fraction. If you use gears with a minimum of 11 teeth and maximum 50 teeth, you generate around 1600 fraction values, if i am not wrong. Once you generate the table you just do a automatic search to find your number, or the most approximate. (you must select "values" on search options). In less then a minute you would find your best possible value. However, you can find the exact fraction you need for the Nissan 300X applying this formula for http://www.300zx-twinturbo.com/cgi-bin/manual.cgi?list=mt&slide=35 specifications: (Main gear x Counter drive gear) / (Main drive gear x Counter gear) For the 1st gear would be (31 x 31) / (23 x 13) = 961 / 299 =3.2140468227424749163879598662207 For the 2nd gear would be (30 x 31) / (23 x 21) = 930 / 483 =1.9254658385093167701863354037267 .... [GEAR_RATIOS] ratio=(299, 961) // 1: 3.2140468227424749163879598662207 ratio=(483, 930) // 2: 1.9254658385093167701863354037267 .....(etc) This way the fraction would be 100% accurate. If you still measure a lack of speed on every gear, i would bet your tyres are slightly too small.
Now I use this setting and seems to be correct. The fail was that the rev limit was not correct. On the website where I got the data, it was with 7000 rpm specified. This is however only the beginning of the red line and I have read, the engine rotates up to 7200 rpm. Now I have circa 1-2 kph too much per gear. This is due to the fact that I use the following tires from the Honda NSX: 215-45 R16 / 245-40 R17. Original tires are: 225-50 R16 / 245-45 R16.
The problem with an excel table is that it rounds, and often times manufacturer spec literature truncates and or rounds. This will introduce error. The exact tooth count info is out there, you just need to look. No need to over-complicate it with manual multiplying or special entries in the HDV, just use bevel. INI file Code: [GEAR_RATIOS] ratio=(12, 30) // 2.500 R: 3.369 ratio=(13, 31) // 2.385 1: 3.214 ratio=(21, 30) // 1.429 2: 1.925 ratio=(30, 29) // 0.967 3: 1.302 ratio=(31, 23) // 0.742 4: 1.000 ratio=(43, 24) // 0.558 5: 0.752 [FINAL_DRIVE] bevel=(23, 31) //1.348 ratio=(13, 48) // 3.692 HDV Code: FinalDriveSetting=0 ReverseSetting=0 ForwardGears=5 Gear1Setting=1 Gear2Setting=2 Gear3Setting=3 Gear4Setting=4 Gear5Setting=5
This is an algorithm to find a desired gear ratio or create an ordered list by ratio, for 2 given gears. I guess the code is ridiculously long and unefficient, sorry, not wide c++ knowledge here, just read half of the basic tutorials, but the result comes fast anyway. You can run it online, just copy the code here and press 'Run': http://cpp.sh/ You must enter the ratio you are searching and teeth ranges (minimum and maximum). If you don't look for a specific ratio, a table and ordered list will be generated for the entered range. Don't enter weird numbers! #include <iostream> using namespace std; int gear1max, gear2max, gear1min, gear2min; int cont1,cont2, cont3, cont4, size; float mintemp=0.0; float mintemp2=0.0; float maximoposible; float ratio; int inside=0; float fixed_div (float g1, float g2) { return (g1/g2); } void list (); void search (); float absolute (float a); int main(){ char entr; cout << "Search for a ratio? (y/any key) " << '\n'; cin >> entr; if (entr=='y'){ cout << "Enter ratio " << '\n'; cin >> ratio; search ();} else list (); } float absolute (float a){ if (a>0) return a; else return (a-(2*a)); } void search() { bool found=false; float close,closet,temp; int ind1, ind2; cout << "Enter gear 1 min teeth" << '\n'; cin >> gear1min; cout << "Enter gear 2 min teeth" << '\n'; cin >> gear2min; cout << "Enter gear 1 max teeth" << '\n'; cin >> gear1max; cout << "Enter gear 2 max teeth" << '\n'; cin >> gear2max; float tabla [gear1max+1] [gear2max+1]; for (cont1=gear1min; cont1<=gear1max; cont1++) { for (cont2=gear2min; cont2<=gear2max; cont2++) { tabla [cont1] [cont2]=fixed_div(cont2,cont1); //cout << tabla [cont1] [cont2] << " >> " << cont1 << ":" << cont2 << '\n'; } } closet=fixed_div(gear2max,gear1min); for (cont1=gear1min; cont1<=gear1max; cont1++) { for (cont2=gear2min; cont2<=gear2max; cont2++) { if (tabla [cont1] [cont2]==ratio) { cout<< "Found: "<< '\n' <<"ratio=("<<cont1 << ", " << cont2 <<")"<<" // " << ratio<<'\n'; found=true; } else { close=absolute((tabla [cont1] [cont2])-ratio); if (close<closet) { ind1=cont1; ind2=cont2; temp=tabla [cont1] [cont2]; closet=close;} } } } if (found!=true){ cout<< "Not found. Closest option: "<< '\n'<< "ratio=("<< ind1 << ", " << ind2 <<")"<<" // " << temp<<'\n'; } } void list () { cout << "Enter gear 1 min teeth" << '\n'; cin >> gear1min; cout << "Enter gear 2 min teeth" << '\n'; cin >> gear2min; cout << "Enter gear 1 max teeth" << '\n'; cin >> gear1max; cout << "Enter gear 2 max teeth" << '\n'; cin >> gear2max; cout << '\n' << "Creating table and ordered list: " << '\n'; float tabla [gear1max+1] [gear2max+1]; for (cont1=gear1min; cont1<=gear1max; cont1++) { for (cont2=gear2min; cont2<=gear2max; cont2++) { tabla [cont1] [cont2]=fixed_div(cont2,cont1); cout << "ratio=("<<cont1 << ", " << cont2 <<")"<<" // " << tabla [cont1] [cont2] <<'\n'; } } cout << '\n'<< '\n'<< '\n' << "List: " << '\n'<<'\n'; mintemp2=0; size=((gear1max+1)-gear1min)*((gear2max+1)-gear2min); maximoposible=fixed_div(gear2max,gear1min); if (maximoposible<(fixed_div(gear2max,gear1min))) maximoposible=fixed_div(gear2max,gear1min); while (inside<size) { mintemp=maximoposible; for (cont1=gear1min; cont1<=gear1max; cont1++) { for (cont2=gear2min; cont2<=gear2max; cont2++) { if ((tabla [cont1] [cont2]<mintemp)&&(tabla [cont1] [cont2]>mintemp2)) { mintemp=tabla [cont1] [cont2]; cont3=cont1; cont4=cont2; } } } if (mintemp==maximoposible) { for (cont1=gear1min; cont1<=gear1max; cont1++) { for (cont2=gear2min; cont2<=gear2max; cont2++) { if ((tabla [cont1] [cont2]==mintemp)) { cont3=cont1; cont4=cont2; } } } cout <<"ratio=("<<cont3 << ", " << cont4 <<")"<<" // " << mintemp<<'\n'; //cout << "brk" << '\n' ; break; } mintemp2=mintemp; cout << "ratio=("<<cont3 << ", " << cont4 <<")"<<" // " << mintemp<<'\n'; inside++; } cout << "end" << '\n'; }