Otarie Posté(e) le 6 novembre Partager Posté(e) le 6 novembre Bonjour à tous, Je souhaite créer des hachures qui ne sont pas forcément carrées, c'est-à-dire qui n'ont pas le même décalage en X et en Y. Pour des hachures simples comme un mur en parpaings de 50 cm de large par 20 cm de hauteur avec un joint de 2 cm entre chaque parpaing, j'arrive à créer un fichier .pat à la main via un éditeur de texte. Mais je souhaiterai utiliser un Lisp qui me permettrait de créer des hachures plus compliquées. En cherchant je suis tombé sur le Lisp HatchMaker.lsp Le problème est que ce Lisp ne permet que la création de hachures selon un carré de 1 par 1. Or dans l'exemple d'un parpaing de 50 x 20, le décalage en X n'est pas le même que celui en Y, et je n'arrive même pas à faire une hachure aussi simple satisfaisante avec ce Lisp, alors des hachures plus compliquées... Donc, auriez-vous une solution (un autre Lisp ou alors comment bien utiliser ce Lisp que je ne sais peut-être pas faire fonctionner correctement 😅) ou bien sauriez-vous ce qu'il faut modifier dans ce Lisp pour pouvoir utiliser une zone personnalisée (par homogène en X et en Y) pour la création des hachures ? Merci d'avance ! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
didier Posté(e) le 6 novembre Partager Posté(e) le 6 novembre Bonjour @Otarie C'est le principe des hachures d'être définies dans un carré de 1 par 1. Donc, il faut travailler avec un ratio. C'est à cause de cette limitation que les hachures "aléatoires" comme gravel deviennent incohérentes quand les valeurs de coordonnées grandissent démesurément. Le ratio de départ est "mis à l'échelle" et au loin le 0.00001 d'écart se révèle un grand écart. Amicalement Citer Éternel débutant... Mon site perso : Programmer dans AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
La Lozère Posté(e) le 6 novembre Partager Posté(e) le 6 novembre il y a 9 minutes, didier a dit : C'est à cause de cette limitation que les hachures "aléatoires" comme gravel deviennent incohérentes quand les valeurs de coordonnées grandissent démesurément. Le ratio de départ est "mis à l'échelle" et au loin le 0.00001 d'écart se révèle un grand écart. Problème pouvant être corrigé en redéfinissant le point d'origine de la hachure. Citer www.cad-is.fr Autocad Map 2021 - Covadis/Autopiste V18.0c Pisser sous la douche ne suffira pas Lien vers le commentaire Partager sur d’autres sites More sharing options...
Otarie Posté(e) le 6 novembre Auteur Partager Posté(e) le 6 novembre Bonjour @didier Je vous remercie bien pour votre réponse, mais je ne comprends pas trop votre phrase indiquant que Citation C'est le principe des hachures d'être définies dans un carré de 1 par 1. Car quand je regarde la définition des fichiers sur le site d'Autodesk, je n'ai pas vu de référence à une définition d'un ratio 1x1. Il est indiqué le format d'une ligne de définition des hachures : angle, x-origin, y-origin, delta-x, delta-y, dash-1, dash-2 Je pense avoir compris le principe et j'arrive à faire (par exemple) une hachure de parpaings 50 x 20 : 0,0,.02,.26,.22,.50,-.02 0,0,.22,.26,.22,.50,-.02 90,.50,.02,.22,.26,.20,-.24 90,0,.02,.22,.26,.20,-.24 Je pensais que les hachures d'Autocad étaient constituées de droites (lignes infinies) sur lesquelles on appliquait des espaces (traits négatifs) que l'on répétait avec un espacement en X et en Y (espacement qui pouvait ne pas être uniforme en X et en Y). Je pensais (sûrement naïvement) également que le décalage que l'on pouvait trouver sur certaines hachures provenaient du nombre de chiffres après la virgule des origines et des deltas, et donc de la non-coïncidence exacte des lignes contenues dans la définition de la hachure. Et que lorsque l'on créait une hachure à des coordonnées très éloignées de 0,0 (par exemple à quelques millions en X et en Y en coordonnées Lambert Conique Conforme), si les lignes au départ ne coïncidaient pas exactement, on se retrouvaient avec des décalages proportionnels aux coordonnées où on créait la hachure (car la définition restait à l'origine 0,0) ; problème qui peut-être corrigé comme l'a dit @La Lozère par une redéfinition de l'origine des hachures proche de l'endroit où elles ont été créées. Il faudrait donc que que je modifie ce Lisp HatchMaker pour arriver à recréer des hachures qui n'ont pas un décalage uniforme en X et en Y (comme l'exemple de cette hachure "parpaings" qui a un delta-x de 0.26 et un delta-y de 0.22 sur la 1ère ligne). Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
didier Posté(e) le 6 novembre Partager Posté(e) le 6 novembre Bonjour @Otarie Ce que vous dîtes n'est pas faux, mais incomplet. Vous parlez des hachures qui ne sont que des lignes espacées, mais parallèles. Celles-ci ne subissent aucune déformation si fait des coordonnées, les lignes sont toujours parallèles même à des millions de kilomètres. Pour ces types de hachures (ANSI) il n'y a jamais besoin de spécifier une nouvelle origine pour se rapprocher du dessin. Ce que vous voulez faire est un motif, c'est là que le carré de 1 par 1 prend son sens. Amicalement Citer Éternel débutant... Mon site perso : Programmer dans AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
Olivier Eckmann Posté(e) le 6 novembre Partager Posté(e) le 6 novembre Bonjour, Quelque chose comme cela, créé avec le lisp HatchMarker.lsp Olivier PAVE_50-20.pat Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Otarie Posté(e) vendredi à 07:07 Auteur Partager Posté(e) vendredi à 07:07 Bonjour @didier, Bonjour @Olivier Eckmann Je vous remercie pour votre réponse, et je suis désolé si je suis long à la détente, mais je ne comprends toujours pas la différence entre des "hachures" et des "motifs". Les "motifs" comme "GRAVEL" sont, il me semble (ou alors je n'ai rien compris, mais c'est fort possible), également définis par des droites (lignes infinies) dont on définit les segments pleins (valeur positive) et les segments vides (valeur négative comme dans la définition des types de lignes .lin), leur origine, leur répétition le long de la droite et le décalage de la droite. Je ne vois pas de différence dans leur définition. Ou bien alors Autocad les traite différemment : mais en se basant sur quoi pour les différencier ? Bon sinon je pense que je vais refaire le programme de création de fichier .pat, en demandant à l'utilisateur premièrement la sélection du rectangle (je ne parle pas de carré 😅) englobant les ligne de la hachure : la largeur de ce rectangle permettra la répétition en X des lignes et la hauteur en Y. Et deuxièmement la sélection des lignes (et points) constituant la hachure. Dans une première version le programme exporterait toutes les lignes et points de la sélection. Dans une seconde version du programme, j'aimerai l'optimiser de telle sorte que des lignes coplanaires ne soient définies que par une seule droite (et non plusieurs comme dans la première version). À voir si j'arrive à faire quelque chose (ça ne sera sûrement pas très optimisé vu mon niveau)... Le 06/11/2024 à 20:18, Olivier Eckmann a dit : Bonjour, Quelque chose comme cela, créé avec le lisp HatchMarker.lsp Olivier PAVE_50-20.pat 234.78 Ko · 10 téléchargements Je vous remercie bien pour l'envoi de ce fichier, mais celui-ci comporte plus de 4000 lignes, alors que la définition d'un motif de pavés ne nécessite que 4 lignes minimum... 😓 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Olivier Eckmann Posté(e) vendredi à 07:28 Partager Posté(e) vendredi à 07:28 Bonjour @Otarie, Pour pouvoir utiliser le programme tel quel, il faut définir un carré de 1 par 1. Dans votre cas, le pavé fait 50 par 20 plus 2 pour le joint, donc un motif de 52 par 22. Il suffit de faire un réseau de 22 par 52 pavés de base, puis un facteur d'échelle de 1/1144, puisque l'on a 52*22=1144 pavés dans chaque sens. A partir de là on a la base du motif de répétition carré et on peut utiliser le programme HatchMarker.lsp Cela crée un fichier de définition très long, mais ça peut s'appliquer quelque soit le motif. Par exemple si vous avez des coins biseautés dans les angles du pavé, ça fonctionne aussi simplement. Si vous ne dessinez que des pavés rectangulaires, alors oui, ce programme n'est pas le plus optimisé. Olivier Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Otarie Posté(e) vendredi à 08:08 Auteur Partager Posté(e) vendredi à 08:08 Bonjour @Olivier Eckmann Je vous remercie, je comprends mieux maintenant les 4000 lignes du fichier .pat 😅 Mon souhait à la base était de créer des hachures aux bonnes dimensions métriques pour que l'utilisateur ne se pose pas la question de l'échelle de la hachure et qu'en l'insérant à une échelle de 1, on ait les bonnes dimensions (par exemple 50 cm par 20 cm pour un parpaing standard). Parce que toutes les hachures récupérées à droite ou à gauche ne sont jamais à des échelles équivalentes : il faut toujours "jongler" avec les échelles pour avoir quelque chose de satisfaisant. Et certains hachures ne sont pas forcément bien définies (ni même bien dessinées), c'est dans cette optique que je voulais les refaire pour avoir des choses cohérentes. Je pense que je vais donc me lancer sur une réécriture complète du programme Lisp de création de hachures. Merci encore. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Otarie Posté(e) dimanche à 17:51 Auteur Partager Posté(e) dimanche à 17:51 Bon, je viens de me rendre compte de ma bêtise... En fait le problème d'essayer de faire des hachures dans un rectangle (et non un carré), c'est qu'il n'y a pas de répétition des lignes (selon les axes X et Y de la ligne) : en effet, avec un carré, il y a répétition (des fois loin du carré de base, mais ça permet de créer un espace vide, créé par une distance négative dans les "dash" de la définition de la ligne). Donc je pense que je vais me faire à la main toutes les hachures simples (c'est-à-dire celles qui ont des angles de linge de 0° ou de 90°). Pour les autres hachures (de type pierres ou autres), je vais les faire avec le lisp HatchMaker. Il faut bien par contre bien avoir un angle de base de 0 (variable ANGBASE) et un angle dans le sens trigonométrique (variable ANDIR à 0), sinon on a des surprises... 😅 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) dimanche à 21:41 Partager Posté(e) dimanche à 21:41 Salut, Je trouve que le fichier joint illustre bien comment décrire un motif de hachure. Tu peux trouver des exemple de motif non orthogonaux dans le lien de cette réponse, de celle là. ou encore celle là. HatchPattern.dwg Citer Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
Otarie Posté(e) lundi à 09:54 Auteur Partager Posté(e) lundi à 09:54 Bonjour @(gile) Merci bien pour ce fichier qui a le mérite de mettre en forme les explications du site Autodesk. Je vous remercie également pour les liens qui sont très instructifs, notamment sur les pavages apériodiques ! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés