Fanartikel Simson Ersatzteile von ETHS

getriebeberechnung

  • Einziger Kritikpunkt wäre das es das schon gibt, sogar in Bunt :bounce:


    Ne, im Ernst, ich rede von Geardata. Ist auch nicht genau das Gleiche, berücksichtigt nur Gesamtgetriebeübersetzungen der einzelnen Gänge und nicht einzelner Zahnräder. Die müsste man noch zu Fuß ausrechnen.


    Vielleicht ne prima Ergänzung zu deinem Tool?
    Schaus dir einfach mal an:
    GEARDATA


    Chrom


    Edit:
    Erst ausprobieren Chrom, dann schreiben!
    Die Programme sind sich doch ähnlich, wobei deins natürlich viel spezieller für Simsons ist. Muss man sich für Schwalbe, S51 & Co nicht erst Datensätze basteln.
    Aber dein Tool funktioniert und damit hast du programiertechnisch mir einiges vorraus - Glühstrumpf

  • Siehe mein Edit :rotate:


    So, nu hab ich mir das Ganze mal in aller Ruhe angeschaut, mit folgendem Ergebnis:
    Funktioniert, die Mouse-over Erklärungen sind super, Einstellbarkeit der Diagramskalierung gut, Resobereich macht bei 2-Taktern sinn - wie gesagt, schon gut gemacht!


    Das einzige worüber ich noch nörgeln könnte wäre diese tabellenartige auflistung der unterschiedlichen Getriebearten. Klar, wenn man mit der Maus druf geht wird einem klar was gemeint ist, aber auf den ersten Blick ein großes Fragezeichen. Wäre vielleicht eleganter wenn man ne Leiste mit Modellen hätte (Schwalbe 3Gang, S51 4Gang, Sr50 - irgendwie so) die man einfach anklickt und das passende erscheint (natürlich mit weiterhin frei editierbaren Werten, sonst machts ja keinen Sinn).
    Nur so ne Idee, frag mich nich wie man das umsetzen soll :confused:


    Chrom

  • Wow nicht schlecht. Haste wirklich gute Arbeit geleistet!
    Sehr interessant zum ausprobieren!


    Edit: runterladen kann man es sich wohl nicht? Oder raff ichs nich? Hätte das Proggie gern so auf meinem Rechner!


    MfG
    Mazze

    lieber breit grinsen als schmal denken

  • das ist ja auch nciht zum seriengetriebe herstellen (die gibt es ja schon), sondern um aus den seriengetrieben, bzw abstufungen sich sein eigenes zu bauen.
    von daher geht das denk ich schon in ordnung. elegater wäre das ganze mit drag & drop, aber damit wollt ich jetzt nicht erst anfangen.


    mir ging es bei der sache hier primär darum zu sehen, ob ihr auch damit klarkommt oder ob ich noch ne hilfe dazu brauch...



    also speichern geht glaub ich nciht, muss erstmal wieder webspace aufgabeln.
    ich habe eh damit gerechnet, das ich das jetzt nochmal überarbeiten kann.


    übrigens: hihi... das ist der code,zumindest das wichtigste. 260 zeilen naja is schon....
    [linux]
    _root.ganganzahl = 4;
    _root.ttan = 0;
    schreibe_gaenge(4);
    stop();
    _root.mouse.swapDepths(5001);
    //ende code
    function TestFlaeche() {
    if (_root._xmouse>104 && _root._xmouse<148 && _root._ymouse>3 && _root._ymouse<32) {
    return \"rad\";
    }
    if (_root._xmouse>100 && _root._xmouse<230 && _root._ymouse>63 && _root._ymouse<83) {
    return \"schalt\";
    }
    if (_root._xmouse>157 && _root._xmouse<246 && _root._ymouse>83 && _root._ymouse<103) {
    return \"speed\";
    }
    if (_root._xmouse>75 && _root._xmouse<208 && _root._ymouse>103 && _root._ymouse<123) {
    return \"reso\";
    }
    return \"\";
    }
    function CreateToolTip(String) {
    if (String == \"\") {
    _root.mouse.tooltip.beschreibung = \"\";
    _root.mouse.tooltip.gotoAndPlay(4);
    return;
    }
    beschreibung = GetBeschreibung(String);
    beschreibung_array = beschreibung.split(\";\");
    _root.mouse.tooltip.end_breite = beschreibung_array[0];
    _root.mouse.tooltip.end_hoehe = beschreibung_array[1];
    _root.mouse.tooltip.beschreibung = beschreibung_array[2];
    _root.mouse.tooltip.gotoAndPlay(2);
    }
    //#############################################################################
    function GetBeschreibung(String) {
    switch (String) {
    case \"enter\" :
    return \"250;31;Hiermit erfolgt die Berechnung<br><b>Bitte nur sinnvolle Werte eingeben</b>\";
    case \"rad\" :
    return \"280;31;Hier bitte den Radumfang in mm eingeben<br>Wird berechnet aus pi x 2r\";
    case \"schalt\" :
    return \"385;31;Hier die Drehzahlen eingeben bei denen geschalten wird<br>Die erste ist relativ irrelevant\";
    case \"speed\" :
    return \"295;15;Hiermit kann die Y-Skale angepasst werden\";
    case \"reso\" :
    return \"385;31;Hiermit kann die X-Skale angepast werden<br>Die Anzeige geht von Resoanfang-3000 bis Resoende+1000\";
    case \"erster\" :
    return \"225;15;erster vom 3 und 4 Ganggetriebe\";
    case \"erster5\" :
    return \"182;31;erster vom 5 Ganggetriebe<br>andere Festradwelle\";
    case \"langeerste\" :
    return \"210;31;lange erste vom MS50 Getriebe<br>andere Festradwelle\";
    case \"zweiter\" :
    return \"274;15;zweiter vom 4+5 Gang und MS50 Getriebe\";
    case \"lange2te\" :
    return \"195;15;zweiter vom 3 Gang Getriebe\";
    case \"dritte\" :
    return \"274;15;dritter vom 4+5 Gang und MS50 Getriebe\";
    case \"langedritte\" :
    return \"223;15;dritter vom langem 4Gang (SR80)\";
    case \"vierte\" :
    return \"275;31;vierter vom 4+5 Gang und MS50 Getriebe<br>dritter vom 3 Gang Getriebe\";
    case \"kurz5\" :
    return \"167;31;kurzer 5ter Gang<br>langer 4ter Gang (SR80)\";
    case \"mittel5\" :
    return \"143;15;mittlerer 5ter Gang\";
    case \"lang5\" :
    return \"122;15;langer 5ter Gang\";
    case \"4g\" :
    return \"246;47;Anzeige für 4Gang Getriebe<br>Bei 3 Gang den letzten frei lassen<br>Achtung alles wird gelöscht!\";
    case \"5g\" :
    return \"202;31;Anzeige für 5Gang Getriebe<br>Achtung alles wird gelöscht!\";
    case \"s51prim\" :
    return \"155;15;S51 Primärübersetzung\";
    case \"s70prim\" :
    return \"155;15;S70 Primärübersetzung\";
    }
    if (String.substr(0, 4) == \"line\") {
    a = \"148;47;\";
    a += \"Gang \"+String.substr(4)+\"<br>\";
    a += \"Drehzahl: \"+Math.round(x_to_dz(_root.dia._xmouse))+\"<br>\";
    a += \"Geschwindigkeit: \"+Math.round(dz_to_speed(String.substr(4), x_to_dz(_root.dia._xmouse)));
    return a;
    }
    if (String.substr(0, 7) == \"schaltp\") {
    a = \"148;47;\";
    a += \"von Gang \"+(String.substr(7)-1)+\" auf \"+String.substr(7)+\"<br>\";
    a += \"auf \"+Math.round(speed_to_dz(String.substr(7), dz_to_speed(String.substr(7)-1, _root.schaltb.text)))+\" upm<br>\";
    a += \"bei \"+Math.round(dz_to_speed(String.substr(7)-1, _root.schaltb.text))+\" km/h\";
    return a;
    }
    return \"\";
    }
    function schreibe_gaenge(anzahl) {
    _root.ganganzahl = anzahl;
    _root.gang1.a.text = \"\";
    _root.gang1.b.text = \"\";
    for (a=2; a<=5; a++) {
    removeMovieClip(\"gang\"+a);
    }
    for (a=2; a<=anzahl; a++) {
    duplicateMovieClip(\"gang1\", \"gang\"+a, a-1);
    _root[\"gang\"+a]._y = a*22-10;
    _root[\"gang\"+a].label.text = a+\". Gang\";
    }
    }
    function dz_to_speed(gang, drehzahl) {
    a = drehzahl/(_root.primb.text/_root.prima.text)/(_root[\"gang\"+gang].b.text/_root[\"gang\"+gang].a.text)/(_root.kettb.text/_root.ketta.text)*(_root.rad.text/1000000)*60;
    return (a);
    }
    function speed_to_dz(gang, speed) {
    a = speed/60/(_root.rad.text/1000000)*(_root.primb.text/_root.prima.text)*(_root.kettb.text/_root.ketta.text)*(_root[\"gang\"+gang].b.text/_root[\"gang\"+gang].a.text);
    return (a);
    }
    function speed_to_y(speed) {
    a = -(speed-_root.speedb.text)/(_root.speedb.text-_root.speeda.text)*500;
    return (a);
    }
    function y_to_speed(y) {
    a = ((500-y)/(500/(_root.speedb.text-_root.speeda.text)))-(-_root.speeda.text);
    return (a);
    }
    function dz_to_x(drehzahl) {
    a = ((drehzahl-(_root.resoa.text-3000))*750/(_root.resob.text-_root.resoa.text+4000))+50;
    return (a);
    }
    function x_to_dz(x) {
    a = (_root.resoa.text-3000)+((x-50)*(_root.resob.text-_root.resoa.text+4000)/750);
    return (a);
    }
    function zeichne_markierung(tempx, tempy) {
    if (_root._xmouse>58 && _root._xmouse<808 && _root._ymouse>130 && _root._ymouse<630) {
    zeichne_dia();
    CreateToolTip(\"\");
    for (c=1; c<=_root.ganganzahl; c++) {
    d = _root.speed_to_y(_root.dz_to_speed(c, _root.x_to_dz(_root.dia._xmouse)));
    if (_root.dia._ymouse>d-6 && _root.dia._ymouse<d+6) {
    //drehzahlanschluss schaltpunkt
    a_x = dz_to_x(speed_to_dz(c, dz_to_speed(c-1, _root.schaltb.text)));
    //drehzahlanschluss schaltpunkt
    if (_root.dia._xmouse+1>=a_x && _root.dia._xmouse-1<=a_x) {
    with (_root.dia) {
    moveTo(_root.dia._xmouse-5, d-5);
    lineTo(_root.dia._xmouse+5, d-5);
    lineTo(_root.dia._xmouse+5, d+5);
    lineTo(_root.dia._xmouse-5, d+5);
    lineTo(_root.dia._xmouse-5, d-5);
    CreateToolTip(\"schaltp\"+c);
    }
    } else {
    with (_root.dia) {
    moveTo(_root.dia._xmouse-3, d-3);
    lineTo(_root.dia._xmouse+3, d-3);
    lineTo(_root.dia._xmouse+3, d+3);
    lineTo(_root.dia._xmouse-3, d+3);
    lineTo(_root.dia._xmouse-3, d-3);
    CreateToolTip(\"line\"+c);
    }
    }
    }
    }
    }
    }
    function zeichne_dia() {
    form = new TextFormat();
    form.align = \"center\";
    form.size = 10;
    form.font = \"Courier New\";
    resolaenge = (_root.resob.text-_root.resoa.text+4000)/500;
    speedlaenge = (_root.speedb.text-_root.speeda.text)/5;
    with (_root.dia) {
    clear();
    for (a=0; a<=50; a++) {
    _root.dia[\"dz\"+a].removeTextField();
    _root.dia[\"speed\"+a].removeTextField();
    }
    //grid
    lineStyle(1, 0x000000, 10);
    for (a=0; a<=resolaenge; a++) {
    moveTo(a*750/resolaenge+50, 500);
    lineTo(a*750/resolaenge+50, 0);
    }
    for (a=0; a<=speedlaenge; a++) {
    moveTo(50, -a*500/speedlaenge+500);
    lineTo(800, -a*500/speedlaenge+500);
    }
    //koordinatensystem
    lineStyle(1, 0x000000, 100);
    moveTo(50, 500);
    lineTo(50, 0);
    moveTo(50, 500);
    lineTo(800, 500);
    //horizontale skale
    for (a=0; a<=resolaenge; a++) {
    if (Math.floor(a/2) == (a/2)) {
    moveTo(a*750/resolaenge+50, 500);
    lineTo(a*750/resolaenge+50, 510);
    createTextField(\"dz\"+a, a, a*750/resolaenge-100, 510, 300, 20);
    _root.dia[\"dz\"+a].text = (_root.resoa.text-3000)+(0.5*a)*1000;
    _root.dia[\"dz\"+a].setTextFormat(form);
    } else {
    moveTo(a*750/resolaenge+50, 500);
    lineTo(a*750/resolaenge+50, 505);
    }
    }
    //vertikale skale
    form.align = \"right\";
    for (a=0; a<=speedlaenge; a++) {
    if (Math.floor(a/2) == (a/2)) {
    moveTo(50, -a*500/speedlaenge+500);
    lineTo(40, -a*500/speedlaenge+500);
    createTextField(\"speed\"+a, a+100, -263, -a*500/speedlaenge+492, 300, 20);
    _root.dia[\"speed\"+a].text = a*5-(-_root.speeda.text);
    _root.dia[\"speed\"+a].setTextFormat(form);
    } else {
    moveTo(50, -a*500/speedlaenge+500);
    lineTo(45, -a*500/speedlaenge+500);
    }
    }
    //diagramme
    for (b=1; b<=_root.ganganzahl; b++) {
    switch (b) {
    case 1 :
    lineStyle(1, 0x993333, 80);
    break;
    case 2 :
    lineStyle(1, 0x999900, 80);
    break;
    case 3 :
    lineStyle(1, 0x669933, 80);
    break;
    case 4 :
    lineStyle(1, 0x003300, 80);
    break;
    case 5 :
    lineStyle(1, 0x009999, 80);
    break;
    }
    if (dz_to_speed(b, _root.resoa.text-3000)<_root.speeda.text) {
    moveTo(dz_to_x(speed_to_dz(b, _root.speeda.text)), 500);
    lineTo(dz_to_x(_root.resob.text-(-1000)), speed_to_y(dz_to_speed(b, _root.resob.text-(-1000))));
    } else {
    moveTo(50, speed_to_y(dz_to_speed(b, _root.resoa.text-3000)));
    lineTo(dz_to_x(_root.resob.text-(-1000)), speed_to_y(dz_to_speed(b, _root.resob.text-(-1000))));
    }
    if (b<_root.ganganzahl) {
    lineStyle(1, 0x000000, 80);
    //schaltlinien
    moveTo(dz_to_x(_root.schaltb.text), speed_to_y(dz_to_speed(b, _root.schaltb.text)));
    lineTo(dz_to_x(speed_to_dz(b+1, dz_to_speed(b, _root.schaltb.text))), speed_to_y(dz_to_speed(b, _root.schaltb.text)));
    //pfeile
    moveTo(5+dz_to_x(speed_to_dz(b+1, dz_to_speed(b, _root.schaltb.text))), speed_to_y(dz_to_speed(b, _root.schaltb.text))+3);
    lineTo(dz_to_x(speed_to_dz(b+1, dz_to_speed(b, _root.schaltb.text))), speed_to_y(dz_to_speed(b, _root.schaltb.text)));
    lineTo(5+dz_to_x(speed_to_dz(b+1, dz_to_speed(b, _root.schaltb.text))), speed_to_y(dz_to_speed(b, _root.schaltb.text))-3);
    lineStyle(1, 0x000000, 20);
    //schaltlinien hoch
    moveTo(dz_to_x(speed_to_dz(b, dz_to_speed(b+1, _root.schalta.text))), speed_to_y(dz_to_speed(b+1, _root.schalta.text)));
    lineTo(dz_to_x(_root.schalta.text), speed_to_y(dz_to_speed(b+1, _root.schalta.text)));
    //pfeile
    moveTo(-5+dz_to_x(speed_to_dz(b, dz_to_speed(b+1, _root.schalta.text))), speed_to_y(dz_to_speed(b+1, _root.schalta.text))+3);
    lineTo(dz_to_x(speed_to_dz(b, dz_to_speed(b+1, _root.schalta.text))), speed_to_y(dz_to_speed(b+1, _root.schalta.text)));
    lineTo(-5+dz_to_x(speed_to_dz(b, dz_to_speed(b+1, _root.schalta.text))), speed_to_y(dz_to_speed(b+1, _root.schalta.text))-3);
    }
    }
    }
    }
    [/linux]

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!