lecrabe Posté(e) le 30 avril 2009 Partager Posté(e) le 30 avril 2009 Hello Je tiens à remercier Gilles pour cet excellent programme suite à ma demande ! :) Cette routine permet d'éliminer certains arcs sur les polylignes 2D d'AutoCAD si et seulement SI le rayon est compris entre 2 valeurs précises ET SI l'angle décrit est aussi compris entre 2 valeurs précises :casstet: Cela permet de supprimer par exemple les arcs qui forment des "ponts" dans les dessins de réseaux ou canalisations pour montrer que le réseau (ou cana) passe au dessus (ou en dessous) d'un autre réseau (ou cana) ! Les outils de nettoyage de MAP ne permettent pas du tout ce genre de traitement ! ;; Routine d elimination des arcs par GC ;; Criteres de selection : ;; entre rayon mini et rayon maxi ;; entre angle mini et angle maxi (vl-load-com) (defun c:RectArc (/ rmin rmax amin amax ss n pl elst plst blst edit ang) (or (setq rmin (getdist "\nRayon minimum : ")) (setq rmin 0.2) ) (or (setq rmax (getdist "\nRayon maximum : ")) (setq rmax 0.8) ) (or (setq amin (getangle "\nAngle minimun : ")) (setq amin (* (/ pi 18) 17)) ) (or (setq amax (getangle "\nAngle maximun : ")) (setq amax (* (/ pi 18) 19)) ) (setq n 0) (if (setq ss (ssget '((0 . "LWPOLYLINE")))) (while (setq pl (ssname ss n)) (setq elst (entget pl) plst (massoc 10 elst) blst (massoc 42 elst) edit nil n (1+ n) ) (while (cadr plst) (if (and ( ( (/ (distance (cdar plst) (cdadr plst)) (* 2 (sin (/ ang 2))) ) rmax ) ) (setq elst (subst '(42 . 0.0) (car blst) elst) edit T ) ) (setq plst (cdr plst) blst (cdr blst) ) ) (and edit (entmod elst)) ) ) (princ) ) ;; MASSOC ;; Retourne la liste de toutes les entrées du code spécifié d'une liste d'association ;; ;; Arguments ;; code : le code de groupe pour les entrées ;; lst : la liste d'association (defun massoc (code lst) (apply 'append (mapcar '(lambda (x) (if (= (car x) code) (list x) ) ) lst ) ) ) Bon WE, Le Decapode Autodesk Expert Elite Team 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