DenisHen Posté(e) le 23 mai 2006 Posté(e) le 23 mai 2006 Voilà, j'ai fait une petite routine qui dessine la façade d'un batiment et ses amorces de 2 mètres (une de chaque côté du bati) puis un prolongement de 3 mètres de ces deux amorces en pointillé (pour montrer que cette partie est "suposée", puis, je ferme ce bâtiment avec une polyligne qui cera dans un calque gelé à l'impression. Bref, je me retrouve avec quatre polylignes, que je ne peut joindre, qui forment à elles quatre un rectangle fermé.Ma question est donc... Comment hachurer ca batiment ? Voici ma routine : (defun c:_PhBatiOuvert () (setvar "cmdecho" 0) (setq p1 (getpoint "\nDébut du bâtiment : ")) (setq p2 (getpoint p1 "\nFin du bâtiment : ")) (setq Co (getstring "\nCoté bâti (<+> / -): ")) (cond ((= Co "-") (setq p3 (polar p1 (+ (angle p1 p2) (/ pi 2)) 2)) (setq p4 (polar p3 (+ (angle p1 p2) (/ pi 2)) 3)) (setq p5 (polar p2 (+ (angle p1 p2) (/ pi 2)) 2)) (setq p6 (polar p5 (+ (angle p1 p2) (/ pi 2)) 3)) ) (T (setq p3 (polar p1 (- (angle p1 p2) (/ pi 2)) 2)) (setq p4 (polar p3 (- (angle p1 p2) (/ pi 2)) 3)) (setq p5 (polar p2 (- (angle p1 p2) (/ pi 2)) 2)) (setq p6 (polar p5 (- (angle p1 p2) (/ pi 2)) 3)) ) ) (command "-calque" "e" "Bâtiments (Contour)" "") (command "_.pline" "_non" p3 "_non" p1 "_non" p2 "_non" p5 "") (command "-calque" "e" "Bâtiments (non levé)" "") (command "_.pline" "_non" p3 "_non" p4 "") (command "_.pline" "_non" p5 "_non" p6 "") (command "-calque" "e" "Titre Cache" "") (command "_.pline" "_non" p4 "_non" p6 "") ) Nota, Comment faire si la façade de mon batiment comporte plus que 2 sommets ? Merci d'avance... 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)
Patrick_35 Posté(e) le 23 mai 2006 Posté(e) le 23 mai 2006 SalutEn faisant un jeu de sélection(setq js (ssadd)) (command "calque....") (command "_pline....") (setq js (ssadd (entlast) js)) ..... ..... (command "_.hatch" "" "" "" js) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
DenisHen Posté(e) le 23 mai 2006 Auteur Posté(e) le 23 mai 2006 Waow ! ! Merci Patrick_35... Mais cela ne me sélectionne que le dernier élément créé... Pourtant, Ca devrait marcher... 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)
Patrick_35 Posté(e) le 23 mai 2006 Posté(e) le 23 mai 2006 oui, enfin tu continues avec les commands puis avec le ssadd et ainsi de suite Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
DenisHen Posté(e) le 24 mai 2006 Auteur Posté(e) le 24 mai 2006 Tu veux dire qu'après chaque commande qui dessine une entité, je place "(setq js (ssadd (entlast) js))" sur la ligne suivante pour qu'il ajoute l'entité créée dans la liste "js" ? J'avais pas compris comme çà... Je vais essayé de ce pas... Merci encore... 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 24 mai 2006 Auteur Posté(e) le 24 mai 2006 Génial, ca marche super ! ! Merci mille fois Patrick_35 ! ! ! Denis... (<- très content) ;) 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 24 mai 2006 Auteur Posté(e) le 24 mai 2006 Encore un truc. Si la facede de mon bâtiment (ma Pline entre p1 et p2) fait contient plus de deux sommets, c-a-d que la pline serait composée de x sommet, je devrais donc gérer des getpoint pour nourir une liste.... Et les deux extrémités de la liste seraient le p1 et p2... Mais je ne sait pas gérer les liste en Lisp...Et je pense qu'en Lisp , çà me serait TRÈS utile, non ? Enfin, merci encore... 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)
Tramber Posté(e) le 24 mai 2006 Posté(e) le 24 mai 2006 Pas besoin de gérer une liste, apprend splutôt le truc de la variable CMDACTIVE :Un sujet qui m'a beaucoup appris à l'époque. Maintenant, tu peux faire une poly à x sommets, avec toutes les options que tu veux, sans interrompre le programme. Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
bonuscad Posté(e) le 24 mai 2006 Posté(e) le 24 mai 2006 Pour le "Fun" et si ça peut te donner des idées, un exemple de ce qu'on peut faire ausssi pour avoir un contour un peu "spécial" hachuré. (defun make_line (flag p10 p11 / ) (entmake (list (cons 0 "LINE") (cons 100 "AcDbEntity") (cons 67 (if (eq (getvar "CVPORT") 2) 0 1)) (cons 410 (getvar "CTAB")) (cons 8 (getvar "CLAYER")) (cons 60 flag) (cons 62 (if (eq (getvar "CECOLOR") "BYLAYER") 256 (getvar "CECOLOR"))) (cons 6 (getvar "CELTYPE")) (cons 370 (getvar "CELWEIGHT")) (cons 100 "AcDbLine") (cons 39 (getvar "THICKNESS")) (cons 10 p10) (cons 11 p11) (cons 210 (list 0.0 0.0 1.0)) ) ) ) (defun c:bound_hatch ( / pt1 pt2 pt_o mod js) (setvar "cmdecho" 0) (initget 9) (setq pt1 (getpoint "\nPoint de départ: ") pt_o pt1 mod 0 js (ssadd)) (initget 9 "Invisible Clore") (while (not (equal pt2 pt_o)) (setq pt2 (getpoint pt1 "\nPoint suivant ou segment [invisible/Clore]: ")) (if (listp pt2) (progn (make_line mod (trans pt1 1 0) (trans pt2 1 0)) (setq mod 0 pt1 pt2 js (ssadd (entlast) js)) ) (if (eq pt2 "Invisible") (setq mod 1) (progn (make_line mod (trans pt1 1 0) (trans pt_o 1 0)) (setq pt2 pt_o js (ssadd (entlast) js)) ) ) ) (initget 9 "Invisible Clore") ) (cond ((> (sslength js) 2) (command "_.-bhatch" "_select" js "" "") ) (T (princ "\nIl faut 3 segments pour hachurer cette zone.")) ) (setvar "cmdecho" 1) (prin1) ) [Edité le 24/5/2006 par bonuscad] Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
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