PHILPHIL Posté(e) le 29 juillet 2009 Partager Posté(e) le 29 juillet 2009 hello toutes tous dans les expresse tool il y a le prpgramme qui permet de rattacher les ligne de repereau Mtext : leaderex mais voila bien malin ses messieurs d'autodesk c'est pratiquement le seul en fichier *.arx plus malin encore ca ne marche que si l'extremite de la ligne de repere est pile poil sur le point dinsertion du MTEXT sauf que bien sur quand on creer cette ligne de repere on demande a ce qu'elle se décale un peu du mtexte et si plante que toutes les lignes se détachent et bien le "LEADEREX" devient inutilisable par ce que aucune tolérance dans ce programme pour que la ligne retrouve le mtext ha encore mieux les demandes d'assistance chez autodesk sont en radeeee ce soir coolllll question : avez un tit truc sous la mains pour rattacher moultsss ligne de reperes a leurs Mtext en donnant au moins une cote de tolérance a+ merci phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal Lien vers le commentaire Partager sur d’autres sites More sharing options...
rebcao Posté(e) le 29 juillet 2009 Partager Posté(e) le 29 juillet 2009 Bonsoir, Tu as quelle version ? Parce que depuis 2008 tu as les lignes de repère multiple Christian Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @) Lien vers le commentaire Partager sur d’autres sites More sharing options...
PHILPHIL Posté(e) le 29 juillet 2009 Auteur Partager Posté(e) le 29 juillet 2009 hello je suis sur AA2010 et pour ce fichier la j'utilise les anciennes ligne de reperespar habitude faut que j'essaie la nouveauté plus si nouvelle que ca il est vrai a+ phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal Lien vers le commentaire Partager sur d’autres sites More sharing options...
PHILPHIL Posté(e) le 30 juillet 2009 Auteur Partager Posté(e) le 30 juillet 2009 hello bon grace a gilles j'ai résolu 95% du probleme apres modification de ton LISp gile ce LISP deplace les points de ligne, de polyligne, de ligne de repereau point le plus proche d'insertion d'un mtext, de point , de centre cercle, d'insertion de blocsuivant une distance déterminée tous ca a la volée apres je n'avais plus qu"a passer le programme des express tools "_.qlattachset" ca a régler 95% du truc merci gilles a+ phil ;;; AC_OB Accroche l'extémité des objets (ligne, polyligne spline) située ;;; en deçà d'une distances spécifiée au centre, point d'insertion, ou point ;;; du cercle bloc point sélectionné. (defun c:acobLM ( ;;/ dist ent elst ucszdir elev cen circle ss nlst pt_lst ) (initget 7) (setq dist (getdist "\nSpécifiez le rayon du cercle d'acrrochage: ")) (setq ENTX NIL) (prompt "\nSELECTIONNER LE(S) TEXTE(S) DE REFERENCE :") (while (null ENTX) (setq ENTX (ssget '((0 . "MTEXT,CIRCLE,POINT,INSERT")))) ) (setq COMPT 0) (setq COM (sslength ENTX)) ;;;(while (setq ent (car (entsel))) (while (< COMPT COM) ;;;(setq elst (entget entx)) (setq elst (entget (ssname ENTX COMPT))) (setq ent (cdr (car (entget (ssname ENTX COMPT))))) (if (member (cdr (assoc 0 elst)) '("MTEXT" "CIRCLE" "POINT" "INSERT")) (progn (setq ucszdir (trans '(0 0 1) 1 0 T) elev (caddr (trans (getvar "ucsorg") 0 ucszdir)) ) (if (= (cdr (assoc 0 elst)) "POINT") (setq cen (trans (cdr (assoc 10 elst)) 0 ucszdir)) (setq cen (trans (cdr (assoc 10 elst)) ent ucszdir)) ) (if (equal (caddr cen) elev 1e-9) (progn (entmake (list '(0 . "CIRCLE") (cons 10 cen) (cons 40 dist) (cons 210 ucszdir) ) ) (setq circle (entlast)) (setq ss (SelByObj circle "CP" '((0 . "LEADER,LINE,LWPOLYLINE"))) ) (if ss (foreach n (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))) (setq nlst (entget n)) (cond ((and (= (cdr (assoc 0 nlst)) "LINE") (equal (caddr (trans (cdr (assoc 10 nlst)) 0 ucszdir)) elev 1e-9 ) (equal (caddr (trans (cdr (assoc 11 nlst)) 0 ucszdir)) elev 1e-9 ) ) (if (<= (distance cen (trans (cdr (assoc 10 nlst)) 0 ucszdir) ) dist ) (entmod (subst (cons 10 (trans cen ucszdir 0)) (assoc 10 nlst) (entget n) ) ) ) (if (<= (distance cen (trans (cdr (assoc 11 nlst)) 0 ucszdir) ) dist ) (entmod (subst (cons 11 (trans cen ucszdir 0)) (assoc 11 nlst) (entget n) ) ) ) ) ((and (= (cdr (assoc 0 (entget n))) "LWPOLYLINE") (equal (cdr (assoc 210 nlst)) ucszdir 1e-9) (equal (cdr (assoc 38 nlst)) elev 1e-9) ) (setq pt_lst (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) nlst ) ) ) (if (<= (distance cen (car pt_lst)) dist) (entmod (subst (cons 10 (list (car cen) (cadr cen))) (assoc 10 nlst) nlst ) ) ) (if (<= (distance cen (last pt_lst)) dist) (entmod (subst (cons 10 (list (car cen) (cadr cen))) (assoc 10 (reverse nlst)) nlst ) ) ) ) ((and (= (cdr (assoc 0 (entget n))) "LEADER") (equal (cdr (assoc 210 nlst)) ucszdir 1e-9) ;;; (equal (cdr (assoc 38 nlst)) elev 1e-9) ) (setq pt_lst (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) nlst ) ) ) (if (<= (distance cen (car pt_lst)) dist) (entmod (subst (cons 10 (list (car cen) (cadr cen))) (assoc 10 nlst) nlst ) ) ) (if (<= (distance cen (last pt_lst)) dist) (entmod (subst (cons 10 (list (car cen) (cadr cen))) (assoc 10 (reverse nlst)) nlst ) ) ) ) ) ) ) (entdel circle) ) (alert "\nL'objet sélectionné n'est pas\ndans le plan XY du SCU." ) ) ) (alert "\nL'objet sélectionné n'est pas\nun point, un cecle ou un bloc." ) ) ;;;(entmod ENT) (setq COMPT (1+ COMPT)) ) (princ) ) ;;; SelByObj -Gilles Chanteau- 06/10/06 ;;; Crée un jeu de sélection avec tous les objets contenus ou ;;; capturés, dans la vue courante, par l'objet sélectionné ;;; (cercle, ellipse, polyligne fermée). ;;; Arguments : ;;; - un nom d'entité (ename) ;;; - un mode de sélection (Cp ou Wp) ;;; - un filtre de sélection ou nil (defun SelByObj (ent opt fltr / dist n lst prec dist p_lst) (vl-load-com) (if (= (type ent) 'ENAME) (setq ent (vlax-ename->vla-object ent)) ) (cond ((member (vla-get-ObjectName ent) '("AcDbCircle" "AcDbEllipse") ) (setq dist (/ (vlax-curve-getDistAtParam ent (vlax-curve-getEndParam ent) ) 50 ) n 0 ) (repeat 50 (setq lst (cons (trans (vlax-curve-getPointAtDist ent (* dist (setq n (1+ n)))) 0 1 ) lst ) ) ) ) (T (setq p_lst (vl-remove-if-not '(lambda (x) (or (= (car x) 10) (= (car x) 42) ) ) (entget ent) ) ) (while p_lst (setq lst (append lst (list (trans (append (cdr (assoc 10 p_lst)) (list (cdr (assoc 38 (entget ent)))) ) ent 1 ) ) ) ) (if (/= 0 (cdadr p_lst)) (progn (setq prec (1+ (fix (* 50 (abs (cdadr p_lst))))) dist (/ (- (if (cdaddr p_lst) (vlax-curve-getDistAtPoint ent (trans (cdaddr p_lst) ent 0) ) (vlax-curve-getDistAtParam ent (vlax-curve-getEndParam ent) ) ) (vlax-curve-getDistAtPoint ent (trans (cdar p_lst) ent 0) ) ) prec ) n 0 ) (repeat (1- prec) (setq lst (append lst (list (trans (vlax-curve-getPointAtDist ent (+ (vlax-curve-getDistAtPoint ent (trans (cdar p_lst) ent 0) ) (* dist (setq n (1+ n))) ) ) 0 1 ) ) ) ) ) ) ) (setq p_lst (cddr p_lst)) ) ) ) (ssget (strcat "_" opt) lst fltr) ) FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal Lien vers le commentaire Partager sur d’autres sites More sharing options...
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