jeremy69 Posté(e) le 24 février 2017 Posté(e) le 24 février 2017 Bonjour à tous ! Je suis métallier et je voudrai éviter d'avoir à chaque fois tracer le même type de garde corps (voir fichier ci dessous). http://www.casimages.com/img.php?i=17022402393122360114872141.jpg Ce que j'aimerai se serait de crée un bloc qui me permet d'étier mon garde corps et en même temps que mon espacement entre barreaux ne dépasse pas 110 mm (norme des gardes-corps). Toutefois, tout mes espacements entre barreaux doivent être égales (donc il faudrait que sa s'adapte en fonction de l'étirement).et donc vue que l'espacement entre barreau ne doit pas dépasser 110 mm, si jamais sa devait arriver il faudrait rajouter des barreaux pour que l'espacement soit inférieur à 110 mm. Du coup j'ai donc crée un bloc avec une fonction d'étirement pour modifier la longueurs des garde corps (jusque la tout vas bien.)Ensuite je pense qu'il faudrait insérer une fonction réseaux mais c'est la que je bloque. Des idées ? Cordialement Tout ce que nous avons à décider c'est que faire du temps qui nous à été impartie.
x_all Posté(e) le 24 février 2017 Posté(e) le 24 février 2017 Voila un petit exemple de bloc avec un réseau.caniveaugrille.dwg par contre l'écart entre les éléments reste fixe dans la longueur de l'étirement est un étiré de la longueur totale.Pour avoir une longueur d'étirement comme tu le souhaite, je suis pas sur qu'il y ait moyen sans programmation et j'ai même du mal a trouver une expression litérale pour trouver N en ft de la longueur totale pour un écart au plus proche de 11cm max quelques trucs sur autocad
Diege 19 Posté(e) le 24 février 2017 Posté(e) le 24 février 2017 Très intéressant ce sujet. Merci beaucoup x_all pour le caniveau. Ca fait un moment que je me dis faut que je m'en fasse un. Par ailleurs, je profite de ce sujet pour demander des informations à propos des normes garde-corps. A quelle norme fais-tu référence ? A partir de quelle hauteur de chute le garde-corps est-il nécessaire ? Autocad Map 3D 2019Covadis version 17.0b
x_all Posté(e) le 24 février 2017 Posté(e) le 24 février 2017 Google est ton ami... aussihttp://www.horizal.c..._francaises.pdfhttps://www.google.fr/search?q=A+partir+de+quelle+hauteur+de+chute+le+garde-corps+est-il+n%C3%A9cessaire&oq=A+partir+de+quelle+hauteur+de+chute+le+garde-corps+est-il+n%C3%A9cessaire&aqs=chrome..69i57&sourceid=chrome&ie=UTF-8 quelques trucs sur autocad
jeremy69 Posté(e) le 24 février 2017 Auteur Posté(e) le 24 février 2017 J'ai réussi à reproduire ton principe sur mon garde corps jusque la tout vas bien. Maintenant le souci c'est de faire en sorte que mon espacement entre barreaux soit toujours identique. On pourrait pas le faire avec une contrainte ou quelque chose dans ce genre ? Tout ce que nous avons à décider c'est que faire du temps qui nous à été impartie.
michejl Posté(e) le 24 février 2017 Posté(e) le 24 février 2017 Bonjourle sujet a été evoqué récemment Mon lien
x_all Posté(e) le 24 février 2017 Posté(e) le 24 février 2017 oui... c'est là out le pb...sans programmation je suis pas sur qu'on puisse le faire.car dans l'action "mise en réseau le pas est fixée. on ne peu pas le renseigner avec un champ (par exemple) pour faire varier la valeur. La solution, la plus simple c'est de faire le bloc étirable sans les barreaux, puis un bloc de barreaux que tu recopies n fois Voici un lisp qui copie les objet n fois avec 2 clic pour définir le pas et la direction (defun c:mc (/ mcopy_err v1 v2 ss pt1 pt2 nb) (defun mcopy_err (msg) (if (= msg "Fonction annulée") (princ) (princ (strcat "\nErreur: " msg)) ) (setvar "cmdecho" v1) (setvar "osmode" v2) (setq *error* m:err m:err nil ) (princ) ) (setq m:err *error* *error* erreur v1 (getvar "cmdecho") v2 (getvar "osmode") ) (setq ss (ssget)) (initget 1) (setq pt1 (getpoint "\nSpécifiez le décalage, premier point: ")) (initget 1) (setq pt2 (getpoint pt1 "\nDeuxième point: ")) (initget 1) (setq nb (getint "\nNombre d'éléments: ")) (setvar "cmdecho" 0) (setvar "osmode" 0) (repeat (1- nb) (command "_copy" ss "" '(0 0) '(0 0)) (command "_move" ss "" pt1 pt2) ) (setvar "cmdecho" v1) (setvar "osmode" v2) (setq *error* m:err m:err nil ) (princ) ) quelques trucs sur autocad
cheum Posté(e) le 27 février 2017 Posté(e) le 27 février 2017 Bonjour, je fais comme ça.Il doit avoir moyen d'améliorer en centrant le barreaudage, mais je sèche... https://www.youtube.com/watch?v=OgkvaV8r-ls In girum imus nocte et consumimur igni.
jeremy69 Posté(e) le 1 mars 2017 Auteur Posté(e) le 1 mars 2017 Bonjour, je fais comme ça.Il doit avoir moyen d'améliorer en centrant le barreaudage, mais je sèche... https://www.youtube....h?v=OgkvaV8r-ls Bas mois j'en suis à ce stade la justement, J'ai réussie à faire sa sauf que le dernier espacement est pas bon ! oui... c'est là out le pb...sans programmation je suis pas sur qu'on puisse le faire.car dans l'action "mise en réseau le pas est fixée. on ne peu pas le renseigner avec un champ (par exemple) pour faire varier la valeur. La solution, la plus simple c'est de faire le bloc étirable sans les barreaux, puis un bloc de barreaux que tu recopies n fois Voici un lisp qui copie les objet n fois avec 2 clic pour définir le pas et la direction Malheureusement je n’utilise pas le LISP (faut que je mi mette !) Sa consiste en quoi ce que tu ma envoyé ? Tout ce que nous avons à décider c'est que faire du temps qui nous à été impartie.
x_all Posté(e) le 1 mars 2017 Posté(e) le 1 mars 2017 c'est une copie multiple suivant un vecteur tu définies une copie de N élément suivant 2 points par exemple pour dessiner le profil d'un escalier, tu dessine la 1er marche et tu la copie 17 fois pour aller jusqu'à l'étage du dessus. c'est une petite commande pratique qui évite les fastidieuse recopie régulièrement espacées. Les lisp sont des macro qui pallient aux manques d'Autocad. Il y a pourtant énormément de fonctions dans ce soft, mais il en manque pas mal de super utiles toutes simple, mais pas implémentées Dans ton cas, avec cette fonction tu trace ton 1er barreau et tu le copie N fois pour aller au bout de ton GCMais pour trouver l'écartement il te faudra le calculer. Mais si c'est simple à énoncer, c'est pas super facile à traduire mathématiquement, on cherche E pour que E< 11cm et ExN=longueur totale, mais E doit être le plus proche possible de 11, bref c'est sans doute jouable, mais c'est un peu galère à mettre en équation. Malheureusement je n’utilise pas le LISP (faut que je mi mette !)le lisp, c'est pas un gros mot c'est une possibilité d'autocad. Ne pas en écrite ok, il faut s'y mettre, bosser pas mal pour comprendre comment ça marche, et pondre son code c'est passionnant si tu es passionné, mais super casse bonbon si tu y es hermetique. Mais pour les utiliser c'est franchement trivial et si tu fait le choix de ne pas t'en servir, passe sur autocad LT tu gagnera des sous...je te renvoie vers la prose du maître pour un rappel de comment on charge un lisp quelques trucs sur autocad
bonuscad Posté(e) le 1 mars 2017 Posté(e) le 1 mars 2017 Une tentative d'épure, le barreaudage c'est pas mon rayon. Si d'autres veulent creuser... NB: C'est en millimètre, ça peut se changer. (defun z_dir (p1 p2 / ) (trans '(0.0 1.0 0.0) (mapcar '(lambda (k) (/ k (sqrt (apply '+ (mapcar '(lambda (x) (* x x)) (mapcar '- p2 p1) ) ) ) ) ) (mapcar '- p2 p1) ) 0 ) ) (defun c:barreaudage ( / sect d_tub h_bar x_sect y_sect dlt js ent dxf_ent vlaobj lg_obj div inc_dist partial_dist pt_start pt_end lst_pt ang dxf_210) (setq sect (getpoint "\nSection de votre barreaudage (ou <18,0> pour diamètre tube)? <18,18>: ")) (if (not sect) (setq sect '(18.0 18.0 0.0))) (if (zerop (cadr sect)) (setq d_tub (car sect) x_sect (car sect) sect nil) (setq d_tub nil x_sect (car sect) y_sect (cadr sect) dlt (* 0.5 (sqrt (+ (* x_sect x_sect) (* y_sect y_sect))))) ) (setq h_bar (getdist "\nHauteur du barreaudage? <900.0>: ")) (if (not h_bar) (setq h_bar 900.0)) (princ "\nChoix de l'objet à mesurer: ") (while (not (setq js (ssget "_+.:E:S" (list (cons 0 "*POLYLINE,LINE,ARC") (cons -4 "<NOT") (cons -4 "&") (cons 70 112) (cons -4 "NOT>") ) ) ) ) ) (setq ent (ssname js 0) dxf_ent (entget ent) vlaobj (vlax-ename->vla-object ent) ) (redraw ent 3) (if (vlax-property-available-p vlaobj 'Length) (setq lg_obj (vlax-get vlaobj 'Length)) (setq lg_obj (vlax-get vlaobj 'ArcLength)) ) (setq div (1+ (fix (/ lg_obj (+ 110.0 x_sect)))) inc_dist (/ lg_obj div) partial_dist inc_dist pt_start (vlax-curve-getStartPoint vlaobj) pt_end (vlax-curve-getEndPoint vlaobj) lst_pt (list pt_start) ) (while (< partial_dist lg_obj) (setq lst_pt (cons (vlax-curve-getPointAtDist vlaobj partial_dist) lst_pt) partial_dist (+ partial_dist inc_dist) ) ) (setq lst_pt (reverse (cons pt_end lst_pt))) (foreach n lst_pt (setq ang (angle '(0.0 0.0 0.0) (vlax-curve-getFirstDeriv vlaobj (vlax-curve-getParamAtPoint vlaobj n))) dxf_210 (z_dir n (polar n ang inc_dist)) ) (if d_tub (entmake (list '(0 . "CIRCLE") '(100 . "AcDbEntity") (assoc 67 dxf_ent) (assoc 410 dxf_ent) (cons 8 (getvar "CLAYER")) '(100 . "AcDbCircle") (cons 39 h_bar) (cons 10 n) (cons 40 (* d_tub 0.5)) (cons 210 dxf_210) ) ) (entmake (list '(0 . "LWPOLYLINE") '(100 . "AcDbEntity") (assoc 67 dxf_ent) (assoc 410 dxf_ent) (cons 8 (getvar "CLAYER")) '(100 . "AcDbPolyline") '(90 . 4) '(70 . 1) '(43 . 0.0) (cons 38 (caddr n)) (cons 39 h_bar) (cons 10 (polar n (+ ang (- (* 1.5 pi) (atan (/ x_sect y_sect)))) dlt)) '(40 . 0.0) '(41 . 0.0) '(42 . 0.0) '(91 . 0) (cons 10 (polar n (+ ang (* 1.5 pi) (atan (/ x_sect y_sect))) dlt)) '(40 . 0.0) '(41 . 0.0) '(42 . 0.0) '(91 . 0) (cons 10 (polar n (+ ang (- (* 0.5 pi) (atan (/ x_sect y_sect)))) dlt)) '(40 . 0.0) '(41 . 0.0) '(42 . 0.0) '(91 . 0) (cons 10 (polar n (+ ang (* 0.5 pi) (atan (/ x_sect y_sect))) dlt)) '(40 . 0.0) '(41 . 0.0) '(42 . 0.0) '(91 . 0) (cons 210 dxf_210) ) ) ) ) (redraw ent 4) (prin1) ) Modifications apportées:* Possibilité de section carré ou tube.* Mise en hauteur des barreaux générés* Correction pour optimisation distance inter-barreaux (< 110 mm) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
jeremy69 Posté(e) le 2 mars 2017 Auteur Posté(e) le 2 mars 2017 Ouais donc sans programation c'est pas possible, Je vais mi mettre ! Tout ce que nous avons à décider c'est que faire du temps qui nous à été impartie.
dardene Posté(e) le 12 octobre 2017 Posté(e) le 12 octobre 2017 Bonjour. Je cherche à faire un bloc dynamique de calepinage de bardage.Dans un sens le bloc s'étire et dans l'autre le bloc fonctionne en réseau.Sa c’était la partie facile. Maintenant je voudrais qu'il y ai une cote en diagonale dans ce bloc ou serait renseigné la valeur de mes 2 contraintes longueur et nombre. Comment j'attache cette cote? lien du bloc: https://we.tl/eVEXv9a6L4 Merci d'avance.
Aleck_Ultimate Posté(e) le 12 octobre 2017 Posté(e) le 12 octobre 2017 Salut. Voila ton bloc modifié : Mon lien J'ais pus ajouter la diagonale et deux attributs, par contre là tout de suite je me souviens plus comment faire pour les remplir automatiquement avec les données des paramètres, donc il faudra voir avec quelqu'un d'autre. Les explications : On peut lier plusieurs actions à un même paramètre. En occurrence, j'ais juste ajouté deux action d'étirement au paramètre horizontal, et modifié ceux du vertical. J'ais ensuit lié les deux attributs à un paramètre de point avec action de déplacement, qu'il faudra déplacer manuellement au milieu de la diagonale. Petite astuce en plus : il est possible de déplacer les poignée des paramètres sans déplacer leur point de base. Comme ça, on peut avoir des paramètres avec des points de base en commun, mais dont les poignées ne se superposent pas. NOTA : En l'occurrence il aurais mieux valu créer un autre fil de discussion. N'hésite pas si tu a d'autres questions, mais ouvre un autres sujet pour ne pas polluer celui-ci. Cordialy. Je suis dysorthographique alors lâchez-moi les basques avec ça, je fait déjà de mon mieux. Membre d'Extinction Rebellion, car pour sauver le monde il n'est jamais trop tard, amour et rage ! Pour écrire un vraie point médian (e·x·e·m·p·l·e) [Alt + 0183] ou ajout d'un raccourci clavier personnalisé (ex. [AltGr + ;]) Utilisateur d'AutoCAD 2021 sous Windows 10
dardene Posté(e) le 12 octobre 2017 Posté(e) le 12 octobre 2017 Merci beaucoup c'est déjà mieux que ce que j'avais fais mais j'avoue que sans les textes qui se remplissent tout seul sa reste du même acabits que de faire des réseaux et des étirés à la main. Je continue à chercher donc.
Aleck_Ultimate Posté(e) le 12 octobre 2017 Posté(e) le 12 octobre 2017 Ouvre un nouveau sujet avec un titre du genre "Attribut automatique de valeur de paramètre de bloc". Si ça existe, tu devrait avoir une réponse, fut-ce par LISP. Ça n'a de toute façon plus grand chose à voir avec le titre du présent sujet. Je suis dysorthographique alors lâchez-moi les basques avec ça, je fait déjà de mon mieux. Membre d'Extinction Rebellion, car pour sauver le monde il n'est jamais trop tard, amour et rage ! Pour écrire un vraie point médian (e·x·e·m·p·l·e) [Alt + 0183] ou ajout d'un raccourci clavier personnalisé (ex. [AltGr + ;]) Utilisateur d'AutoCAD 2021 sous Windows 10
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