Aide pour dessiner un patron sur logiciel DAO gratuit

Fanny - 18 mars 2024 à 12:04
hypothetix Messages postés 191 Date d'inscription dimanche 19 janvier 2020 Statut Membre Dernière intervention 24 avril 2024 - 27 mars 2024 à 09:36

Bonjour, Je suis abat-jouriste et quand je fais des patrons d'abat jour de grande taille, je n'arrive pas à les faire à la main avec un compas donc il faut que je trouve une autre solution. Librecad me parait ultra compliqué et je ne trouve pas d'autre logiciel de dessin facile à prendre en main d'autant plus que j'ai juste besoin d'un dessin/patron de base sur lequel j'aurais juste à changer les dimensions pour l'adapter. Est ece que quelqu'un pourrait m'aider? Merci par avance.


Windows / Chrome 122.0.0.0

A voir également:

6 réponses

mariam-j Messages postés 1033 Date d'inscription mercredi 9 mars 2022 Statut Membre Dernière intervention 26 avril 2024
18 mars 2024 à 16:25

Bonjour,

Pour tracer un grand cercle (ou arc), on attache un fil à une aiguille qu'on plante au centre, et de l'autre coté une mine de crayon.

Il suffit de maintenir le fil tendu pour avoir un cercle parfait.

2
contrariness Messages postés 19434 Date d'inscription samedi 10 juillet 2010 Statut Membre Dernière intervention 27 avril 2024 6 053
18 mars 2024 à 17:46

Un logiciel de dessin vectoriel peut tres bien faire l'affaire..
Dans les gratuits vous avez Inkscape  https://inkscape.org/fr/
Mais comme pour tout logiciel il faudra quand meme apprendre les bases..

3
Fanny > contrariness Messages postés 19434 Date d'inscription samedi 10 juillet 2010 Statut Membre Dernière intervention 27 avril 2024
20 mars 2024 à 10:49

Merci beaucoup pour votre réponse. Je viens de poster le schéma dont j'ai besoin. Vous me confirmez qu'un logiciel de dessin vectoriel est suffisant ? Je veux bien apprendre les bases bien entendu mais je ne suis pas sûre de pouvoir arriver à dessiner le schéma dont j'ai besoin. Partir d'un modèle de base que je pourrais adapter me paraît plus abordable pour moi c'est pour cette raison que je demande de l'aide...,????

0

Merci j'ai le matériel nécessaire mais quand les diamètres sont trop grands c'est très difficile à faire et manque de précision. 

0

Zut je crois que je n'ai posté ma réponse à votre commentaire au bon endroit mais elle est dans la discussion merci en tout cas 

0

Salut

a part ton logiciel qui a pourtant l'air au mieux

tu peux préciser?

-juste besoin d'un dessin/patron de base

1 seul patron quel genre cône, cylindre, une seule forme ou  pente tu as une base existante metal ou pas

-juste à changer les dimensions pour l'adapter

en %? garder le rapport? ou pouvoir tout modifier?

c'est à dire, car tu dois dessiner en grande taille, comment tu passes au papier ensuite par exemple

-grande taille      pas à les faire à la main

min-max?          juste dessiner les cercles?  ou la découpe aussi

T'aurais 2-3 photos qui ressemblent avec une règle au milieu pour le rapport

0

Bonjour j'ai posté ma réponse un peu plus bas sans doute pas au bon endroit désolée merci en tout cas

0

Bonjour et merci pour ta réponse. J'ai besoin d'un patron uniquement pour les abat jours coniques c'est à dire pour ceux qui ont un diamètre du haut différent de celui du bas et surtout quand ils sont très peu coniques. Quand il y a beaucoup de différence de taille entre les diamètres le patron n'est pas difficile a faire car les deux lignes se croisent rapidement (voir dessin en photo lignes AK et BK). En revanche quand par exemple le diamètre du haut est de 45 cm et le diamètre du bas 55 les lignes se croisent très haut sur le schéma et je n'arrive pas à le faire à la main car il faut beaucoup de précision. J'ai donc besoin de le dessiner sur ordinateur. Les mesures qui changent sont donc les diamètres du bas (entre A et B) et du haut (ente C et D) et la'hauteur de l'abat jour (entre H et I) mais le mode de calcul est toujours le même. Ensuite j'imprime et découpe le trapèze central (ABCD) que je reproduis 3 fois et demi sur mon tissu.

A ce jour je n'ai pas de logiciel et c'est donc l'objet de ma demande.

Je joins le dessin d'un patron adapté à un abat jour de 30 cm diamètre du bas et 15 cm diamètre du haut et 20 de hauteur. J'ai juste besoin de calculer le triangle AKB et pas de la partie indiquée face intérieure. 

J'espère que me explications sont claires. Merci par avance pour ton aide.

0
Patron abat jour conique
0
contrariness Messages postés 19434 Date d'inscription samedi 10 juillet 2010 Statut Membre Dernière intervention 27 avril 2024 6 053
Modifié le 20 mars 2024 à 13:43

Ce genre de dessin est possible à faire dans Inkscape..
Il y a peut-etre plusieurs facon de le faire..
Perso je partirais de 2 cercles.Sur la trace j'ajouterais des points nodaux pour ne garder que certaines parties de cercle..
Peut-etre qu'il faut d'abord tracer les droites de reperes.. ce qui permettra de s'en servir pour la decoupe des sections de cercle...
Pour appliquer la cotation, je ne sais pas comme Inkscape gere ca.. Perso je suis beaucoup plus a l'aise avec Corel qu'avec Inkscape !
Par contre pour le calcul de KAB il faudra sortir la calculette car si vous avez les infos, le logiciel ne fera pas les calculs..
Quoi que peut etre que qq'un a fait un plugin !.. avec les logiciel open-source, certains font des adaptations et les partagent a la communautés.
Vous avez aussi les forums dédiés aux logiciels.

0
Fanny > contrariness Messages postés 19434 Date d'inscription samedi 10 juillet 2010 Statut Membre Dernière intervention 27 avril 2024
20 mars 2024 à 14:13

Merci. En fait il n'y a aucun calcul à faire. Il faut d'abord tracer le diamètre du bas entre A et B a partir de H ensuite la hauteur I et le diamètre du haut entre C et D a partir de I. Ensuite il faut joindre a et c et B et D  jusqu'à l'intersection qui forme le point k et ensuite à partir de k tracer les cercles qui passent par par c et D et par a et b

0
contrariness Messages postés 19434 Date d'inscription samedi 10 juillet 2010 Statut Membre Dernière intervention 27 avril 2024 6 053 > Fanny
20 mars 2024 à 16:34

Quelle est la distance K-C et C-A ?
Car si vous avez 15 entre A et H, je suis septique sur ce que vous indiquez en C-I...

0
Fanny > contrariness Messages postés 19434 Date d'inscription samedi 10 juillet 2010 Statut Membre Dernière intervention 27 avril 2024
20 mars 2024 à 18:46

je ne peux pas vous dire le schéma n'est pas à la bonne échelle mais il est correct

0
Fanny > Fanny
20 mars 2024 à 18:48

entre C et I il y a 7,5 soit la moitié du diamètre du haut le diamètre total étant de 15 cm

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mariam-j Messages postés 1033 Date d'inscription mercredi 9 mars 2022 Statut Membre Dernière intervention 26 avril 2024
Modifié le 20 mars 2024 à 10:46

Avec la méthode: "aiguille, fil, mine de crayon" on obtient des tracés précis à 0,3mm près (on peut aussi utiliser une chainette à la place du fil).

0

Le problème n'est pas de tracer les cercles bien que... Mais d'arriver à faire se croiser les lignes avec précision car avec des grands diamètres cela peut aller jusqu'à un mètre cinquante voire plus...

0
mariam-j Messages postés 1033 Date d'inscription mercredi 9 mars 2022 Statut Membre Dernière intervention 26 avril 2024 > Fanny
20 mars 2024 à 11:50

De quels croisements parles-tu ?

0
Fanny > mariam-j Messages postés 1033 Date d'inscription mercredi 9 mars 2022 Statut Membre Dernière intervention 26 avril 2024
20 mars 2024 à 13:27

Des lignes AK et BK du schéma que j'ai posté 

0
mariam-j Messages postés 1033 Date d'inscription mercredi 9 mars 2022 Statut Membre Dernière intervention 26 avril 2024 > Fanny
20 mars 2024 à 14:51

Bah, il faut prendre une règle de grande longueur.

0
hypothetix Messages postés 191 Date d'inscription dimanche 19 janvier 2020 Statut Membre Dernière intervention 24 avril 2024 53
27 mars 2024 à 09:36

Bonjour Fanny,

J'ai vu passer fugitivement un message ou tu voulais utiliser libre office draw.
Je te propose de rester dans le dessin vectoriel, en genererant un fichier .svg que l'on peut ouvrir avec un navigateur Web (Chrome ou Firefox par exemple),
ou  Inkscape pour faire des ajustements.
Pour ce faire il faut recopier le code ci-joint dans un fichier avec l'extention .html (abatjour.html par exemple) et l'ouvrir dans ton navigateur Web.

Je n'ai essayé que sur une feuille 21x27 donc il faudra peut-être faire quelques ajustements pour utiliser une table de tracage.

<!DOCTYPE HTML>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style>
            input, button {
                border-radius: 4px;
            }
        </style>
    </head>
    <body>
        <h3> Patron pour abat-jour conique simple </h3>
        <h4> Produit un fichier svg qui peut etre ouvert par un logiciel de dessin vectoriel comme Inkscape.</h4>
        <div>
            <span>diametre du cercle superieur (le plus petit) en mm:</span>
            <input id="dSup" type="number" min="10" max="1000" value="200">
            <br />
            <span>diametre du cercle inferieur (le plus grand) en mm:</span>
            <input id="dInf" type="number" min="10" max="1000" value="300">
            <br />
            <span>hauteur en mm:</span>
            <input id="h" type="number" min="10" max="1000" value="210">
            <br />
            <label for="trapeze">Montrer les contours de l'abat-jour</label>
            <input type="checkbox" id="trapeze" />
            <br />
            <button id="generate" onclick="draw()">Generer le svg</button>&nbsp;
            <button id="save" onclick="save_svg()" disabled >Sauver le fichier svg</button>
        </div>
        <svg id="cone" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 800">
        </svg>
        
        
        <script>
            let d_top_mm=1,d_bot_mm=2,h_mm=2;//globales
            
            function pt2str(pt) {
                return  pt[0].toString() + " " + pt[1].toString();
            }
            
            function px2mm(px) {
              let n = 2;
              let cpi = 25.4; // millimeters per inch
              let dpi = 96; // dots per inch
              let ppd = 1; // window.devicePixelRatio; // pixels per dot for screen view only
              return (px * cpi / (dpi * ppd)).toFixed(n);
            }
            
            function mm2px(mm) {
              let n = 0;
              let cpi = 25.4; // millimeters per inch
              let dpi = 96; // dots per inch
              let ppd = 1; // window.devicePixelRatio; // pixels per dot for screen view only
              //console.log("ppd: ",ppd,"    dpi: ",dpi,"    mm: ",mm,"    px: ",(mm / (cpi / (dpi * ppd))).toFixed(n))
              return (mm / (cpi / (dpi * ppd))).toFixed(n);
              
            }
            
            function save_svg(){
                //let name=prompt("Enter file name","abatjour_"+d_top_mm+"x" +d_bot_mm+"x"+h_mm+".svg");
                let name="abatjour_"+d_top_mm+"x" +d_bot_mm+"x"+h_mm+".svg";
                if (name){
                    if (name.trim()!=""){
                        let filename=name;
                        let g = document.getElementById('cone'); 
                        let text=g.outerHTML;
                        let element = document.createElement('a');
                        element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
                        element.setAttribute('download', filename);
                        
                        element.style.display = 'none';
                        document.body.appendChild(element);
                        element.click();
                        document.body.removeChild(element);
                        //confirm("file is normally in the downloads folder.");
                    }else confirm("need a file name");
                }
            }
            
            function draw(){
            
                // dimensions abat-jout
                let scale= 1;//just for test normally  = 1
                d_top_mm= document.getElementById("dSup").value;
                d_bot_mm= document.getElementById("dInf").value;
                h_mm= document.getElementById("h").value;
                
                let d_top= (mm2px(d_top_mm))*scale; //diametre superieur en mm converti en pixel
                let d_bot= (mm2px(d_bot_mm))*scale; //diametre inferieur en mm converti en pixel
                let h= (mm2px(h_mm))*scale; //hauteur en mm converti en pixel
                
                
                //Pour eviter les mesures aberrantes
                if (d_top<d_bot) {
                    
                    //calculs
                    let a= d_top/2;
                    let A= d_bot/2;
                    let b= h / ((A/a) - 1);
                    let B= h+b;
                    let r= Math.sqrt(b*b+a*a);
                    let R= Math.sqrt(B*B+A*A);
                    let beta=-Math.acos(-d_bot/2/R);//
                    let alpha=((3.14/2)+beta)*2;//delimité par les droites qui chevauchent les cotés du trapeze
                    //console.log(R,r);
                    
                    // targeting the svg itself
                    const svg = document.getElementById("cone");
                    const svgns = "http://www.w3.org/2000/svg";
                    
                    //redim svg
                    let newWidth=Math.trunc(20+(2*R)),newHeight=Math.trunc(20+(2*R));
                    svg.setAttribute("width", newWidth.toString());
                    svg.setAttribute("height", newHeight.toString());
                    svg.setAttribute("viewBox", "0 0 " + newWidth.toString() + " " + newHeight.toString());
                    
                    
                    //remove svg elements on redraw
                    while (svg.lastElementChild) {
                        svg.removeChild(svg.lastElementChild);
                    }
                    
                    //draw alls elements
                    let rect = document.createElementNS( svgns,'rect' );//main rectangle
                    rect.setAttributeNS( null,'width','100%' );
                    rect.setAttributeNS( null,'height','100%' );
                    rect.setAttributeNS( null,'fill','none');
                    svg.appendChild(rect);
                    
                    let center=[newWidth/2,newHeight/2];//centre  des 2 cercles concentriques
                    
                    let dep= [center[0]-(d_top/2),center[1]+b];//premier point du trapeze haut a gauche
                    let pts=[[dep[0]+d_top, dep[1]],[dep[0]+(d_top/2)+(d_bot/2), dep[1]+h],[dep[0]-((d_bot-d_top)/2), dep[1]+h]];
                    let  polygon = document.createElementNS(svgns, 'polygon');//les contours de l'abat-jour
                    polygon.setAttribute("points", pt2str(dep) + "," + pt2str(pts[0]) + "," + pt2str(pts[1]) + "," + pt2str(pts[2]));
                    polygon.setAttribute("stroke", "black");
                    polygon.setAttribute("stroke-width", "2");
                    polygon.setAttribute("fill", "none");
                    if(trapeze.checked)svg.appendChild(polygon);
                    
                    
                    let line_limit_start = document.createElementNS(svgns, "line");// ligne limite finale du secteur
                    line_limit_start.setAttribute("x1", center[0]);
                    line_limit_start.setAttribute("y1", center[1]);
                    line_limit_start.setAttribute("x2", center[0]-(d_top/2)-((d_bot-d_top)/2));
                    line_limit_start.setAttribute("y2", center[1]+b+h);
                    line_limit_start.setAttribute("stroke", "black");
                    line_limit_start.setAttribute("stroke-width", "1");
                    svg.appendChild(line_limit_start);
                    
                    let line_bord_tapeze = document.createElementNS(svgns, "line");// ligne limite finale du secteur
                    line_bord_tapeze.setAttribute("x1", center[0]);
                    line_bord_tapeze.setAttribute("y1", center[1]);
                    line_bord_tapeze.setAttribute("x2", center[0]+(d_top/2));
                    line_bord_tapeze.setAttribute("y2", center[1]+b);
                    line_bord_tapeze.setAttribute("stroke", "black");
                    line_bord_tapeze.setAttribute("stroke-width", "1");
                    svg.appendChild(line_bord_tapeze);
                    
                    
                    let circle = document.createElementNS(svgns,'circle'); // le petit cercle
                    circle.setAttribute('cx',center[0]);
                    circle.setAttribute('cy',center[1]);
                    circle.setAttribute('r',r);
                    circle.setAttribute("stroke", "black");
                    circle.setAttribute("stroke-width", "1")
                    circle.setAttribute('fill','none');
                    svg.appendChild(circle);
                    
                    let circle2 = document.createElementNS(svgns,'circle'); // le grand cercle
                    circle2.setAttribute('cx',center[0]);
                    circle2.setAttribute('cy',center[1]);
                    circle2.setAttribute('r',R);
                    circle2.setAttribute("stroke", "black");
                    circle2.setAttribute("stroke-width", "1")
                    circle2.setAttribute('fill','none');
                    svg.appendChild(circle2);
                    
                    let x2= Math.cos((alpha*3.14)- beta)*R;
                    let y2= Math.sin((alpha*3.14)- beta)*R;
                    //console.log("line: ",beta,alpha,x2,y2);
                    let line_limit_end = document.createElementNS(svgns, "line");// ligne limite finale du secteur
                    line_limit_end.setAttribute("x1", center[0]);
                    line_limit_end.setAttribute("y1", center[1]);
                    line_limit_end.setAttribute("x2", center[0]+x2);
                    line_limit_end.setAttribute("y2", center[1]+y2);
                    line_limit_end.setAttribute("stroke", "black");
                    line_limit_end.setAttribute("stroke-width", "1");
                    line_limit_end.setAttribute("stroke-dasharray", "5,1");
                    svg.appendChild(line_limit_end);
                    
                    
                    
                    let raccord=mm2px(30);//30mm
                    let x1_2=0,y1_2=0,x2_2=0,y2_2=0
                    if(raccord<=r){
                        x1_2= Math.cos((alpha*3.14)- beta-Math.asin(raccord/r))*r;
                        y1_2= Math.sin((alpha*3.14)- beta-Math.asin(raccord/r))*r;
                    }else{
                        raccord=r;
                        x1_2= Math.cos((alpha*3.14)- beta-Math.asin(raccord/r))*r;
                        y1_2= Math.sin((alpha*3.14)- beta-Math.asin(raccord/r))*r;
                    }
                    x2_2= Math.cos((alpha*3.14)- beta-Math.asin(raccord/R))*R;
                    y2_2= Math.sin((alpha*3.14)- beta-Math.asin(raccord/R))*R;
                    //console.log(x1_2,y1_2,x2_2,y2_2);
                    let line_raccord = document.createElementNS(svgns, "line");// ligne raccord
                    line_raccord.setAttribute("x1", center[0]+x1_2);
                    line_raccord.setAttribute("y1", center[1]+y1_2);
                    line_raccord.setAttribute("x2", center[0]+x2_2);
                    line_raccord.setAttribute("y2", center[1]+y2_2);
                    line_raccord.setAttribute("stroke", "green");
                    line_raccord.setAttribute("stroke-width", "1");
                    line_raccord.setAttribute("stroke-dasharray", "5,5");
                    svg.appendChild(line_raccord);
                    
                    document.getElementById("save").disabled = false;
                    window.confirm("R Rayon du grand cercle = "+ px2mm(Math.trunc(R)) +" mm ("+ Math.trunc(R) + " pixels)" 
                                    +"\nr rayon du petit cercle = "+ px2mm(Math.trunc(r)) +" mm ("+ Math.trunc(r) + " pixels)" 
                                    +"\na angle delimité par les cotés du trapèze = "+ Math.abs(alpha*(180/3.14)).toFixed(2) + " degrés"
                                    +"\nA angle qui delimite le secteur à découper (3.14 fois a) = "+ Math.abs(3.14*alpha*(180/3.14)).toFixed(2) + " degrés");
                }else window.alert("Le diametre sup doit etre inferieur diametre inf");
            }
            
            
        </script>
    </body>
</html>

0