PHILPHIL Posté(e) le 3 mars 2021 Posté(e) le 3 mars 2021 bonjour je cherche a créer une diagonale entre des lignes pour un calepinage les lignes forment bien des rectangles fermés ( ce sont des lignes pas des polylignes fermés ) j'ai trouvé un lisp de LEE MAC qui créer une diagonal en fonction des rectangles de polyligne fermés donc pour le faire fonctionner il me faut utiliser avant tout la commande "CONTOUR" en cliquant chaque point. soit deux opérations. avec vous un lisp faisant les deux opérations d'un coup sans passer par le fait de créer les polylignes fermées losangesou alors que la polylignes fermées soit effacer apres la création de la diagonale 1 cliquer un point central entre 4 lignes2 trouver les points de croisement des 4 lignes3 sélectionner les points opposés4 créer une ligne diagonale entre les points merci Phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
Luna Posté(e) le 3 mars 2021 Posté(e) le 3 mars 2021 Coucou, Question à part mais...pourquoi utiliser des lignes pour former un rectangle fermé (donc 4 objets distincts) alors qu'une polyligne fermée (donc 1 objet) revient strictement au même avec des propriétés supplémentaires ? 1 cliquer un point central entre 4 lignes2 trouver les points de croisement des 4 lignes3 sélectionner les points opposés4 créer une ligne diagonale entre les pointsSi je comprend bien, tu voudrais ne pas avoir à sélectionner toi-même les 4 lignes ? Parce que je ne vois pas vraiment comment sélectionner de manière automatique les 4 lignes qui forment un beau rectangle (ou du moins pas de manière simple). Ne serait-il pas plus simple de sélectionner une ligne et à partir des sommets de cette lignes, sélectionner les 3 lignes suivantes (à la manière de dominos) ? Nous sommes d'accord que les lignes forment un rectangle de manière visible (aucune projection d'intersection à faire pour dessiner le rectangle) ?Pour moi, l'utilisation des polylignes reste la plus appropriée (une commande JOINDRE sur les lignes juxtaposées permettront de générer automatiquement des rectangles et sera plus simple à gérer ensuite)..Parce que au final, le but du programme est d'économiser des clics mais dans l'exécution du programme tel que je le perçois, tu devras cliquer une première fois au centre du rectangle pour sélectionner tes lignes, puis une seconde fois sur un sommet du rectangle pour générer la diagonale et cela pour chacun des rectangles (au mieux)... Or pour dessiner une diagonale, il faut cliquer sur le premier sommet, et sur le second pour chaque rectangle ! Il n'y a aucune économie, ou alors je n'ai pas compris le programme et je m'en excuse >w< Bisous,Luna
didier Posté(e) le 3 mars 2021 Posté(e) le 3 mars 2021 Bonjour Il se trouve que sur mon site j'ai proposé un exemple de dessin de lignes, ces lignes sont les médianes d'un triangle sous forme de ligne pas de polyligne, close ou pas Je vous propose le lien à toutes fins utiles : ICI À bientôt Éternel débutant... Mon site perso : Programmer dans AutoCAD
PHILPHIL Posté(e) le 3 mars 2021 Auteur Posté(e) le 3 mars 2021 hello merci a vous deux j'ai plein de ligne verticales / horizontales qui se recoupent( en débordant ou pas )qui forment un quadrillage l'idée est de trouver les coordonnées des intersections des lignes extérieures en cliquant une fois a l'intérieur d'un rectangle formé par le quadrillagenormalement dans l'ordre trigonometrique ( bas gauche, bas droit, haut droit, haut gauche ), on prend le premier point puis le troisieme et on forme une ligne qui est la diagonale et de recommencer a la volée, sans a avoir a sélectionner des lignes, juste en cliquant un point( "centroides" ) la commande "CONTOUR" permet a la volée de créer des polyligne entre les entitées en cliquant un point mais je dois ensuite les effacerj'ai un lisp qui créer une diagonale d'un trapeze, losange ( polylignes a 4 angles ). l'idée est faire un mix des deux merci A+Phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
PHILPHIL Posté(e) le 3 mars 2021 Auteur Posté(e) le 3 mars 2021 HELLO trouver, avec des bouts de programmes trouver sur le net ;;;;; By Lee MAC (defun LWPoly (lst lprx) (setq ll (list (cons 0 "LWPOLYLINE") (cons 100 "AcDbEntity") (cons 100 "AcDbPolyline") (cons 90 (length lst)) )) (setq all (append ll lprx )) (entmakex (append all (mapcar (function (lambda (p) (cons 10 p))) lst))) ) (defun c:DIAGONALE_INTERNE (/ myboundary) (vl-arx-import 'bpoly) (setq myboundary 0) (while (/= myboundary nil) (setq myboundary (bpoly (getpoint "\nSPECIFIER UN POINT INTERNE POUR LA CREATION DES DIAGONALES :"))) (setq pt_lst nil) (setq entx (entget myboundary)) (setq linepr '()) (if (cdr (assoc 6 entx)) (setq linepr (cons (cons 6 (cdr (assoc 6 entx))) linepr)) ) (if (cdr (assoc 8 entx)) (setq linepr (cons (cons 8 (cdr (assoc 8 entx))) linepr)) ) (if (cdr (assoc 43 entx)) (setq linepr (cons (cons 43 (cdr (assoc 43 entx))) linepr)) ) (if (cdr (assoc 62 entx)) (setq linepr (cons (cons 62 (cdr (assoc 62 entx))) linepr)) ) (setq pl_obj (vlax-ename->vla-object myboundary) cc (vla-get-coordinates pl_obj) ) (setq pt_lst_cnt (/ (length (vlax-safearray->list (vlax-variant-value cc))) 2)) (setq cntr 0) (repeat pt_lst_cnt (setq pt_lst (cons (append (vlax-safearray->list (vlax-variant-value (vla-get-coordinate pl_obj cntr))) (list 0)) pt_lst ) cntr (1+ cntr) ) ) (if (> (length pt_lst) 3) (progn ;;(lwpoly (list (nth 0 pt_lst) (nth 2 pt_lst)) linepr) (lwpoly (list (nth 1 pt_lst) (nth 3 pt_lst)) linepr) ) ) (command-s "effacer" myboundary "") ) ) a+Phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
DenisHen Posté(e) le 5 mars 2021 Posté(e) le 5 mars 2021 Salut à la communauté... Je ne suis pas très sur d'avoir compris, mais j'ai ça :;;; ***************************************** ;;; Dessine une croix dans un quadrilatère ;;; ***************************************** (defun c:CroixDsQuadri (/ ent ent-liste n liste-sommets) (princ "\n\tDéveloppé par Denis H. (1.0)") (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (while (= "LWPOLYLINE" (cdr (assoc 0 (entget (setq ent (car (entsel "\nChoix de la polyligne\n"))))))) (setvar "clayer" (cdr (assoc 8 (entget ent)))) (setq ent-liste (entget ent) n 0 ent 0 liste-sommets nil ) ;_ Fin de setq (repeat (length ent-liste) (if (= 10 (car (nth n ent-liste))) (setq liste-sommets (cons (cdr (nth n ent-liste)) liste-sommets)) ) ;_ Fin de if (setq n (+ 1 n)) ) ;_ Fin de repeat (setq liste-sommets (reverse liste-sommets)) (command "_.line" (nth 0 Liste-sommets) (nth 2 Liste-sommets) "") (command "_.line" (nth 1 Liste-sommets) (nth 3 Liste-sommets) "") ) ;_ Fin de while (vla-endundomark doc) (princ) ) ;_ Fin de defun 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