DenisHen Posté(e) le 26 mai 2022 Posté(e) le 26 mai 2022 Bonjour à la communauté. Aujourd'hui, je tente de faire une petite macro qui insert un bloc (le petit zigzag), à la fin d'un mur "coupé" (voir image). J'ai écris ce petit bout de code, mais il fonctionne quand le mur est vertical (hachures possibles) mais pas quand il est horizontal (le bloc est joint). ;;; ******************************************* ;;; Dessine un zigzag à la fin d'un mur coupé ;;; ******************************************* (defun c:FinMur (/ p1 p2 pM) (princ "\n\tDéveloppé par Denis H. (1.0)") ;;; Nom du bloc = "TraitCoupeMur.dwg" (setq old_Osmode (getvar 'osmode)) (if (and (setq p1 (getpoint "\nPremier point: ")) (setq p2 (getpoint p1 "\nDernier point: "))) (progn (setq rot (* 180.0 (/ (angle p1 p2) pi)) ech (distance p1 p2) pM (polar p1 rot (/ ech 2)) ) ;_ Fin de setq (setvar 'osmode 0) (command "inserer" "TraitCoupeMur" pM ech ech rot) ) ;_ Fin de progn ) ;_ Fin de if (setvar 'osmode old_Osmode) (princ) ) ;_ Fin de defun Quelqu'un aurait une idée, une astuce, un conseil ? Bonne journée à la communauté. Denis. TraitCoupeMur.dwg 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)
JPhil Posté(e) le 26 mai 2022 Posté(e) le 26 mai 2022 Quand le mur est en biais ça donne quoi ? [Edit] Titre : Ça fonctionne à l'horizontale, mais pas à la verticale (insertion de bloc aligné). Message : il fonctionne quand le mur est vertical (hachures possibles) mais pas quand il est horizontal Ça fonctionne à quel moment ^^ ?
DenisHen Posté(e) le 26 mai 2022 Auteur Posté(e) le 26 mai 2022 Salut JPhil. Merci pour ton intérêt. Curieusement, ça donne ça : 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 26 mai 2022 Auteur Posté(e) le 26 mai 2022 Chose plus inquiétante, voici quand les fins du mur "vertical" ne sont pas alignées horizontalement (en épais). J'avoue ne plus rien comprendre... 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)
JPhil Posté(e) le 26 mai 2022 Posté(e) le 26 mai 2022 Dans la fonction polar, la valeur de la variable rot doit être en radian. Est-ce le cas ? En regardant ailleurs sur d'autres forums il s'avère que la variable rot est définie comme cela (setq rot (angle p1 p2)). Pour ech et pM c'est bon.
Luna Posté(e) le 26 mai 2022 Posté(e) le 26 mai 2022 +1 avec @JPhil ! La fonction (polar), et même la quasi totalité des fonctions nécessitant un angle ont besoin que l'angle soit exprimé en radian ! Donc comme ta variable 'rot' est justement exprimée en degrés donc cela va pouvoir fonctionner pour la commande (à partir du moment où tes unités sont bien en degrés décimaux) mais pour la fonction polar, cela ne sera pas bon. Si tu regardes bien au niveau de tes captures, le point d'insertion de ton bloc semble en effet être à 1/2 de la distance entre P1 et P2 mais c'est uniquement l'angle qui n'est pas bon 😉 Mais la rotation, elle est bonne Bisous, Luna
DenisHen Posté(e) le 29 mai 2022 Auteur Posté(e) le 29 mai 2022 Bonjour à tous. Effectivement, j'avais oublié cette notion de radian... J'ai donc modifié un peu mon code, sui fonctionne parfaitement maintenant, grace à vous... Encore merci à vous... Je vous donne le code et le bloc... ;;; ******************************************* ;;; Dessine un zigzag à la fin d'un mur coupé ;;; ******************************************* (defun c:MurCoupe (/ p1 p2 pM) (princ "\n\tDéveloppé par Denis H. (1.0)") ;;; Nom du bloc = "TraitCoupeMur.dwg" (setq old_Osmode (getvar 'osmode)) (if (and (setq p1 (getpoint "\nPremier point: ")) (setq p2 (getpoint p1 "\nDernier point: "))) (progn (setq rot (* 180.0 (/ (angle p1 p2) pi)) ech (distance p1 p2) pM (polar p1 (angle p1 p2) (/ ech 2)) ) ;_ Fin de setq (setvar 'osmode 0) (command "inserer" "TraitCoupeMur" pM ech ech rot) ) ;_ Fin de progn ) ;_ Fin de if (setvar 'osmode old_Osmode) (princ) ) ;_ Fin de defun TraitCoupeMur.dwg 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