DenisHen Posté(e) le 5 mai 2022 Posté(e) le 5 mai 2022 Bonjour à la communauté... Voilà, aujourd'hui, je cherche à dessiner une polyligne, mais je n'arrive pas a faire les arcs de cercle. Pour info (voir image), l'utilisateur saisie les trois points de base, en magenta (PtA, PtB et PtC), ensuite, il tape ce qu'on appelle les "enrobages" (un getreal), qui sont représentés par les "5" en rouge, c'est du centimètres, puis le prolongement, les 8.5, qui seront calculés selon le type de polyligne. L'angle aussi peut changer, il sera saisi aussi en getreal aussi, mais il sera toujours entre 180° (demi-tour) et 90° (droit)... Pour toutes ces données saisies (les getreal) je pense faire un petit DCL, pour les enregistrer dans le dessin, car on peut en avoir des dizaines à saisir... Le diamètre de l'arc est un calcul qui oscille entre 6 et 16 centimètre, environ, toujours selon le type de polyligne... Ce sont des barres d'armatures dans des murs en béton armé ou en parpaing... Le truc que je ne n'arrive pas à faire, c'est l'arc de cercle... Je pense qu'il faudrait calculer les point de couleur cyan (Pt1a, Pt2a...) avant des dessiner la polyligne... Mais je n'en suis pas certain... Si quelqu'un a une solution, un exemple, une astuce... Je suis preneur... Bien à toi la communauté... Denis... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
Olivier Eckmann Posté(e) le 6 mai 2022 Posté(e) le 6 mai 2022 Si le rayon de l'arc est R, alors le centre de l'arc est à 5+R de la droite A-B et 5+R de la droite A-C. Une fois que tu as le centre, tu trouves ton point de tangence sur la droite horizontale et tu ouvres de ton angle complémentaire à 180° Olivier
Zugzwang Posté(e) le 6 mai 2022 Posté(e) le 6 mai 2022 ça me rappelle un truc... une ft de (Gile) BulgeData, qui renvoyait les valeurs cachées derrière le code 42 des polyligne avec un arc....voir ici cherche la ft dans les codes...
Luna Posté(e) le 6 mai 2022 Posté(e) le 6 mai 2022 Coucou, En effet tout est caché dans les bulges (code DXF 42) des polylignes. Personnellement je me suis aidé de ce cours pour mieux comprendre : https://www.afralisp.net/autolisp/tutorials/polyline-bulges-part-1.php Ensuite il me semble qu'il existe le logiciel ADFER qui permet de réaliser du ferraillage plus ou moins complexe et plutôt complet (je me souviens avoir eu une formation sur ce logiciel), si jamais cela peut répondre à tes besoin également (mais je ne connais pas les prix...donc à voir) ! Bisous, Luna
fabcad Posté(e) le 6 mai 2022 Posté(e) le 6 mai 2022 Bonjour à tous, Et pourquoi ne pas créer des blocs dynamiques : https://vincent-cavuoto.jimdosite.com/ Fabcad - Le Rennais Métropolitain
(gile) Posté(e) le 6 mai 2022 Posté(e) le 6 mai 2022 Salut, Pour faire simple, pas besoin de "bulge". Une fois les points calculés, il suffit d'utiliser les options de la commande POLYLIGN (_PLINE). (command "_pline" pt1a pt2a "_arc" pt3a "_line" pt4a "_arc" pt5a "_line" pt6a "") Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
DenisHen Posté(e) le 6 mai 2022 Auteur Posté(e) le 6 mai 2022 Bonjour à tous et mille mercis pour vos réponses. Je pense m'être mal fais comprendre, je n'arrive pas à calculer les points Pt1a, Pt2a, Pt5a et Pt6a. Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
Luna Posté(e) le 6 mai 2022 Posté(e) le 6 mai 2022 Coucou, Oki, sur le plan mathématique je résoudrais cela ainsi : A partir des données ci-dessus, je ferais ceci : En connaissant PtA tel que PtA = (Xa Ya) (setq Pt3a (list (+ Xa en ep r) (+ Ya en (/ ep 2.)))) (setq O (list (+ Xa en ep r) (+ Ya en ep r))) (setq Pt2a (polar O (+ a (/ pi 2.)) r)) (setq Pt3a (polar Pt2a a lg)) Du moins pour moi le problème peut se résoudre ainsi pour connaître Pt1a, Pt2a et Pt3a en connaissant PtA, en, ep, r, a et lg 😉 Bisous, Luna
(gile) Posté(e) le 6 mai 2022 Posté(e) le 6 mai 2022 Il y a 23 heures, DenisHen a dit : mais il sera toujours entre 180° (demi-tour) et 90° (droit) Donc sur ton dessin, c'est 135° au lieu de 45° ? Ou alors c'est entre 0° (demi-tour) et 90° (droit) ? Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
DenisHen Posté(e) le 6 mai 2022 Auteur Posté(e) le 6 mai 2022 Chalut Luna. Mille mercis pour cette aide précieuse et détaillée... Dans ton schéma, il y a deux fois "en" et pas "ep", mais ne t'inquiète pas, je ferais avec sans problèmes, j'ai compris le principe... Encore un grand merci à toi... Je posterais mon résultat, au cas où... Bisous aussi... Denis... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
DenisHen Posté(e) le 6 mai 2022 Auteur Posté(e) le 6 mai 2022 Bonsoir (gile). Oui, je ne sais pas pourquoi, mais en ferraillage, on parle de l'angle complémentaire... Donc, on saisi "135" pour que le véritable angle soit "45". C'est donc un angle droit (le plus grand, 90°) jusqu'à un angle "demi-tour" (le plus "petit", mais en fait, ils disent "180°" au lieu de "0°") Bien vu Monsieur, je n'avais pas précisé ce détail... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
(gile) Posté(e) le 6 mai 2022 Posté(e) le 6 mai 2022 Tu devrais pouvoir t'inspirer de ça : (setq *angle* (* pi 0.75)) (setq *rayon* 3.0) (setq *enrobage* 5.0) (setq *prolongement* 8.5) (defun c:toto (/ a r e p ptA ptB ptC os c pt1 pt2 tp3 tp4 pt5 pt6) (if (setq a (getangle (strcat "\nAngle <" (angtos *angle*) ">: "))) (setq *angle* a) (setq a *angle*) ) (if (setq r (getdist (strcat "\nRayon <" (rtos *rayon*) ">: "))) (setq *rayon* r) (setq r *rayon*) ) (if (setq e (getdist (strcat "\nEnrobage <" (rtos *enrobage*) "> "))) (setq *enrobage* e) (setq e *enrobage*) ) (if (setq p (getdist (strcat "\nProlongement <" (rtos *prolongement*) ">: "))) (setq *prolongement* p) (setq p *prolongement*) ) (if (and (setq ptA (getpoint "\nPoint de base A: ")) (setq ptB (getpoint ptA "\nPoint de base B: ")) (setq ptC (getpoint ptA "\nPoint de base C: ")) ) (progn (setq os (getvar 'osmode)) (setvar 'osmode 0) (command-s "_UCS" "_3p" ptA ptB ptC) (setq pt3 (list (+ e r) e) c (list (car pt3) (car pt3)) pt2 (polar c (- (* 1.5 pi) a) r) pt1 (polar pt2 (- pi a) p) pt4 (list (- (distance ptA ptb) e r) 5) c (list (car pt4) (car pt3)) pt5 (polar c (- a (* 0.5 pi)) r) pt6 (polar pt5 a p) ) (command-s "_pline" pt1 pt2 "_arc" pt3 "_line" pt4 "_arc" pt5 "_line" pt6 "" ) (command-s "_UCS" "_previous") (setvar 'osmode os) ) ) (princ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
DenisHen Posté(e) le 6 mai 2022 Auteur Posté(e) le 6 mai 2022 Bonsoir (gile), alors là, je ne sais pas comment tu as fais... Je ne me souvient tellement pas de cette routine que je ne sais même plus à quoi elle sert... Certes, elle se nomme "denish", mais je n'ai pas le souvenir d'avoir créé une commande à mon pseudo (si non, il y a des dizaines d'années, voir plus), en plus, il y a des "mapcar"... J'ai peur des mapcar... Mais si j'ai fais un truc pareil, je devrais pouvoir le refaire... Et ta mémoire éléphantesque pourrait me dire de quand ça date ? En tous cas, merci à toi, je vais creuser... Denis... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
(gile) Posté(e) le 6 mai 2022 Posté(e) le 6 mai 2022 J'ai écrit cette routine juste avant de la poster. Je l'avais appelée c:denish parce c'était le premier truc qui m'est venu à l'esprit, mais ce n'est vraiment pas le nom de la commande qui est important. J'ai modifié la routine : - correction d'un dysfonctionnement avec la commande _UCS (comme ça il n'y a plus de mapcar*) - valeur par défaut stockées dans des variables globales - changement de nom pour éviter toute équivoque. * comprendre et apprivoiser mapcar est une étape majeure dans l'apprentissage du LISP, idem pour la récursivité. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
DenisHen Posté(e) le 7 mai 2022 Auteur Posté(e) le 7 mai 2022 Oui, je pensais que c'était une vieille macro de moi à cause de son nom, mais tu as raison, le nom de la commande n'a aucune importance... Par contre, ça fonctionne nickel, des tonnes de mercis à toi ! ! ! Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
Luna Posté(e) le 9 mai 2022 Posté(e) le 9 mai 2022 Denis, J'ai considéré 'en' pour 'Enrobage', 'ep' pour 'épaisseur' (car le diamètre de ton acier est important dans le calcul à mes yeux !), 'a' pour 'angle', 'lg' pour 'longueur' et 'r' pour le 'rayon'. Pour l'histoire des 90° à 180° d'angle au lieu de 0° à 90°, c'est parce qu'une barre d'acier est droite à la base, donc pour obtenir un angle de 45° comme sur ton exemple, il faut tordre la barre d'acier de 135°. Donc donner les valeurs entre 90° et 180° est logique 🙂 Donc cela me semble cohérent de prendre en compte le diamètre de ta barre d'acier, car c'est lui qui va d'ailleurs déterminer ton rayon de torsion ! Et si tu considères le centre de ton acier dans les calculs, alors ton enrobage et ton rayon sont faussés justement par le manque de l'épaisseur (sur ton exemple tu montres très bien que ton acier à un diamètre, que l'enrobage est pris entre la surface du béton et l'extérieur de ton acier, et que le rayon est pris par rapport à l'intérieur de ton acier) Bisous, Luna
didier Posté(e) le 9 mai 2022 Posté(e) le 9 mai 2022 Bonjour @DenisHen Je pense que pour faire ce que tu souhaites, le bloc dynamique est, de très loin, la meilleure solution. C'est bien plus léger en code lisp et hyper fonctionnel dans la vie de tous les jours, pour faire les métrés par exemple le nom des blocs et les paramètres suffisent à faire le travail. Les polylignes telles que tu t'apprêtes à le faire sont bien plus lourdes à gérer en cas de modifications. Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
Luna Posté(e) le 9 mai 2022 Posté(e) le 9 mai 2022 Autrement il me semble que _zebulon avait justement réalisé un programme complet et gratuit pour le ferraillage Bref, je pense qu'il y a suffisamment d'outils existants pour faire ce que tu désires car tu n'es pas le premier à vouloir faire cela ^^" L'idée des blocs dynamiques est pas mal autrement, bien que certains points me semble difficilement faisable en utilisant un bloc dynamique (la torsion de la barre en fonction de l'angle par exemple)... Bisous, Luna
didier Posté(e) le 9 mai 2022 Posté(e) le 9 mai 2022 Bonjour @Luna Je ne vois pas ce qui est délicat, car je ne comprends pas ce que signifie "la torsion de la barre en fonction de l'angle". Les plans d'armatures respectent des normes bien précises, taille de mandrin en fonction du diamètre de la barre, longueur des crochets en fonction du diamètre de la barre etc, l'angle aussi est une norme, quant à la torsion ? Ce genre de dessins est un bonheur pour qui veut programmer, mais pour être efficace c'est le bloc dynamique qui emporte le marché. Je me suis pas mal amusé avec ces armatures... Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
Luna Posté(e) le 9 mai 2022 Posté(e) le 9 mai 2022 Ma question c'est, comment gères-tu l'angle avec des paramètres dynamiques ? En clair comment "enroules"-tu la barre en fonction de l'angle et du rayon ? Bisous, Luna
didier Posté(e) le 9 mai 2022 Posté(e) le 9 mai 2022 L'angle ? Le rayon ? Le rayon est donné par le diamètre du mandrin, le diamètre du mandrin est défini par le diamètre de la barre. L'angle aussi est donné des normes et n'est pas "variable". Contacte-moi en privé si tu veux pour ne pas continuer à polluer les messages, on déposera nos exemples à la fin le cas échéant. Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
DenisHen Posté(e) le 9 mai 2022 Auteur Posté(e) le 9 mai 2022 Bonsoir Luna, et merci pour toutes tes observations. Oui, le rayon, le prolongement, le diamètre, l'encombrement... Tout ça dépend du HA, je n'arrivais juste pas à créer les Pt1 et Pt2 (donc, les 5 et 6 aussi). Car je lis aussi que je me suis très mal expliqué, j'ai oublié de dire qu'il peut il y avoir 4 enrobages différents, et les angles de crosses différentes aussi... Maintenant que (gile) m'a fait un super code, qu'il faut encore que je le domestique (le code, pas gile), je peux commencer à mieux envisager mes macros, pour l'instant, je fais mon mode d'emploi et l'interface utilisateur. Surtout que je ne compte pas me limité aux barres droites, je vais aussi faire mon code pour les épingles, les cadres, les U (tu trouveras en pièces jointes mes aides graphiques qui serviront aux futurs utilisateurs)... J'ai testé le programme de Zébulon, qui est franchement impressionnant, et carrément incroyable ! ! Mais je dois faire le mien, car je vais ajouter le métré des armatures (linéaire HA8, HA10, cadre HA6, épingles pour en faire des tableaux...), gérer les calques utilisés, et des (vlax-ldata que je collerais aux éléments créé, pour faire ce métré grâce à d'autres routines (que j'ai déjà partiellement pour d'autre macros)... Mais je te remercie encore pour ton aide et tes judicieuses observations. Bisous à toi aussi... Denis. Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant