create a screew - réer un pas de vis

Scripting
2015-08-25
2015-08-28
  • Gérard Couvert

    Gérard Couvert - 2015-08-25

    Suggestions bienvenues

    Suggestions welcome

    /*******
    PAS de VIS
    Bean Shell script

    Copyrigth 2015 ArtInfo
       g.couvert@free.fr
    
        Vous pouvez m'écrire en français
        Si posso scrivermi in italiano
        You can write me in inglish
    
        hablo un poquito español
    

    *******/

    /*
    <?xml version='1.0' standalone='yes' ?>

    <script> <name>Pas de Vis</name> <author>Gérard Couvert(g.couvert@free.fr)</author> <version>1.1</version> <date>23/08/2015</date> <description> Ce programme crait un pas de vis directement en mode "maillage" La plupart des dimmensions sont paramétrables. </description> </script>

    */

    /-------------------------------------------------
    hauteur : profondeur des filets
    rayon : rayon au fond des filets
    spire : nombre de spires (tours)
    segments : nombre de segments (subdivisions) par spire
    pas : eccart entre deux spires
    épaisseur : largeur du filet à sa base
    -------------------------------------------------
    /
    double h = 0.8 // hauteur
    double r = 2; // rayon
    double t = 6.0; // spire
    double s = 64.0; // segments par tour
    double p = 1; // pas
    double e = 0.5; // épaisseur
    //-------------------------------------------------

    double r2 = r + h;
    double n = s * t + 1;
    double secteurAngulaire = Math.PI * 2.0 / s;
    double pasParSecteur = p / s;

    Vec3[] vertexPos = new Vec3[n * 3];
    int[][] faces = new int[(n-1) * 6 + 2][3];

    double x, y, z, y2, ye;
    int i, sommetFace, sommet, face;

    y = 0;
    y2 = e;
    ye = e / 2; 
    z = Math.cos(0) * r;
    x = Math.sin(0) * r;
    
    vertexPos[0] = new Vec3(x, y2, z);
    vertexPos[1] = new Vec3(x, y, z);
    z = Math.cos(i * secteurAngulaire) * r2;
    x = Math.sin(i * secteurAngulaire) * r2;    
    vertexPos[2] = new Vec3(x, ye, z);
    
    faces[0][0] = 0;            // le "bout" A FAIRE la même chose à la fin
    faces[0][1] = 1;
    faces[0][2] = 2;
    
    sommet = 3;
    face = 1;
    
    sommetFace = 0;
    for (i = 1; i < n ; i++)
    {
        faces[face][0] = sommetFace;
        faces[face][1] = sommetFace + 3;
        faces[face][2] = sommetFace + 4;
        face++;
        faces[face][0] = sommetFace;
        faces[face][1] = sommetFace + 4;
        faces[face][2] = sommetFace + 1;        
        face++;
    
        faces[face][0] = sommetFace;
        faces[face][1] = sommetFace + 3;
        faces[face][2] = sommetFace + 5;
        face++;
        faces[face][0] = sommetFace;
        faces[face][1] = sommetFace + 5;
        faces[face][2] = sommetFace + 2;        
        face++;
    
        faces[face][0] = sommetFace + 2;
        faces[face][1] = sommetFace + 5;
        faces[face][2] = sommetFace + 1;
        face++;
        faces[face][0] = sommetFace + 1;
        faces[face][1] = sommetFace + 5;
        faces[face][2] = sommetFace + 4;        
        face++;
        sommetFace += 3;
    
        y = i * pasParSecteur;  
        y2 = y + e;
        ye = y + (e / 2);
        z = Math.cos(i * secteurAngulaire) * r;
        x = Math.sin(i * secteurAngulaire) * r;
        vertexPos[sommet] = new Vec3(x, y2, z);
        sommet++;
        vertexPos[sommet] = new Vec3(x, y, z);
        sommet++;
        z = Math.cos(i * secteurAngulaire) * r2;
        x = Math.sin(i * secteurAngulaire) * r2;    
        vertexPos[sommet] = new Vec3(x, ye, z);
        sommet++;
    }
    

    MaillagePyramide = new TriangleMesh(vertexPos, faces);
    MaillagePyramide.autosmoothMeshEdges(1.0)

    /-------------------------------------------------
    ICI vos modifications sur l'objet
    -------------------------------------------------
    /

    //MaillagePyramide.setSmoothingMethod( )
    //MaillagePyramide.setMaterial( )
    //MaillagePyramide.setTexture( )

    window.addObject(MaillagePyramide, new CoordinateSystem(), "vis", null);

     
  • Pete

    Pete - 2015-08-26

    Hi!

    If I understand right, the above is supposed to be one script, but on the post it somehow has been split into several pieces. Could you send the .bsh-file as an attachment? -- It'd be easied to handle.

    Thanks.

     
  • Gérard Couvert

    Gérard Couvert - 2015-08-28

    As you can see i'am not familiar to use this "forum" ...
    A new version ...

     

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:





No, thanks