Patrick05 Posté(e) le 16 novembre 2007 Posté(e) le 16 novembre 2007 bonjour.sur mon écran j'ai un point et au dessus, une ligne en biais, disons à 45degrés.je voudrai tracer en une seule fois, a partir du point, une ligne verticale jusqu'a la droite en biais. pour l'instant je trace la ligne verticale un peu plus haut puis je fais ajuster sur la ligne en biais.il y a sans doute un moyen de tracer à partir du point, cette ligne verticale qui trouve directement l'intersection avec la ligne en biais.j'ai essayé intersection projetée mais je ne doit pas bien l'utiliser, ou ce n'est pas la bonne méthode...merci.Patrick
usegomme Posté(e) le 16 novembre 2007 Posté(e) le 16 novembre 2007 SalutAvec les modes polaire et accroche objet activés et paramétrés , autocad trouve l'intersection .
Patrick05 Posté(e) le 16 novembre 2007 Auteur Posté(e) le 16 novembre 2007 bonjour.ben oui, il y a des pros sur ce forum...merci.Patrick.
Bred Posté(e) le 16 novembre 2007 Posté(e) le 16 novembre 2007 Salut,par "jeux", j'ai écrit un petit lisp qui fait ce que tu demandes... en fait, pas vraiment petit...Mais tu peux selectionner comme objet sur lequel projeter ta ligne un cercle, une polylgne, un arc, ....(ps : piquage de routines... merci) (defun c:lint (/ L OB/PT P P1 P2) (setq p1 (getpoint "\n Spécifiez le premier point:")) (while (not ob/pt) (setq ob/pt (entsel "\n Sélectionner l'objet sur lequel projeter la droite Orthogonalement :"))) (if (or (<=val<= (/ pi 4) (angle p1 (setq p (cadr ob/pt))) (* 3 (/ pi 4))) (<=val<= (* 5 (/ pi 4)) (angle p1 (setq p (cadr ob/pt))) (* 7 (/ pi 4)))) (setq p (list (car p1) (cadr p) (caddr p))) (setq p (list (car p) (cadr p1) (caddr p)))) (setq l (vla-AddLine (getSpace)(vlax-3d-point p1)(vlax-3d-point p)) p2 (vlax-invoke l 'IntersectWith (vlax-ename->vla-object (car ob/pt)) acExtendBoth)) (if (> (length p2) 3) (progn (setq lst (lst2mat p2 3) d (distance p1 (setq p2 (car lst))) i (1- (length lst))) (repeat i (if (< (distance p1 (nth i lst)) d) (setq p2 (nth i lst))) (setq i (1- i)))) ) (if p2 (vla-AddLine (getSpace)(vlax-3d-point p1)(vlax-3d-point p2)) (princ "\n ** Impossible de trouver l'intersection avec l'objet. **")) (vla-delete l) (princ) ) (defun getSpace () (if (= (getvar "CVPORT") 1) (vla-get-PaperSpace (vla-get-ActiveDocument (vlax-get-acad-object))) (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object))) ) ) ; Valeur +Grande ou égale et +Petite ou égale que ; 2<=50<=90 -> (<=val<= 2 50 90) => T ; 45<=48<=48 -> (<=val<= 45 48 48) => T (defun <=val<= (val- val val+) (if (and (> val val-) (< val val+)) t (if (or (equal val val-) (equal val val+)) t)) ) ;;; SUBLST Retourne une sous-liste ;;; Premier élément : 1 ;;; (sublst '(1 2 3 4 5 6) 3 2) -> (3 4) ;;; (sublst '(1 2 3 4 5 6) 3 -1) -> (3 4 5 6) ;;; (sublst '(1 2 3 4 5 6) 3 12) -> (3 4 5 6) ;;; (sublst '(1 2 3 4 5 6) 3 nil) -> (3 4 5 6) (defun sublst (lst start leng / rslt) (if (not (<= 1 leng (- (length lst) start))) (setq leng (- (length lst) (1- start))) ) (repeat leng (setq rslt (cons (nth (1- start) lst) rslt) start (1+ start) ) ) (reverse rslt) ) ;;; LST2MAT Retourne un liste de listes du nombre d'éléments spécifié (matrice) ;;; (lst2mat '(1 2 3 4 5 6) 2) -> ((1 2) (3 4) (5 6)) ;;; (lst2mat '(1 2 3 4 5 6) 3) -> ((1 2 3) (4 5 6)) (defun lst2mat (lst n) (if (and lst (zerop (rem (length lst) n))) (cons (sublst lst 1 n) (lst2mat (sublst lst (1+ n) (- (length lst) n)) n) ) ) ) [Edité le 16/11/2007 par Bred] Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
lili2006 Posté(e) le 17 novembre 2007 Posté(e) le 17 novembre 2007 Bonjour à toutes et à tous, Bred, vraiment super ta petite ("en fait, pas vraiment petit...") routine ! Merci. Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
Bred Posté(e) le 17 novembre 2007 Posté(e) le 17 novembre 2007 Bred, vraiment super ta petitemerci ;) .J'avoue que je n'en vois pas trop une "utilité indispensable" (surtout que l'on peut faire pareil en quelques manipulations), mais faire ce genre de code permet de se poser des problèmes (et d'essayer de trouver des solutions) qui peuvent se rencontrer dans des lisp plus interressant. Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
lili2006 Posté(e) le 17 novembre 2007 Posté(e) le 17 novembre 2007 Bonjour à toutes et tous, J'avoue que je n'en vois pas trop une "utilité indispensable" ( surtout que l'on peut faire pareil en quelques manipulations Cela dépend dans quel secteur tu travailles car en topo et en structure, je vois comment je peux utiliser ta routine. ( surtout si ça peut éviter de le faire en quelques manipulations,....au contraire, comme tous bons professeurs, j'apprend également à mes étudiants à être "feignant"!). ce genre de code permet de se poser des problèmes (et d'essayer de trouver des solutions) qui peuvent se rencontrer dans des lisp plus interressant.. Je comprend bien ce que tu veux dire, malheuresement pour moi, ces écritures restent encore du chinois, mais de voir passer des codes et les tester, cela permet de s'y mettre gentiment. J'ai également pris conscience qu'il va falloir dégager un temps important (que je n'ai malheuresement pas pour le momment,..). Une fois de plus, merci à tous les développeurs de ce site et, comme c'est d'actualité, longue vie aux 40000 inscrits sur ce formidable site. Bon WE. Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
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