(gile) Posté(e) le 22 novembre 2010 Posté(e) le 22 novembre 2010 Salut, Un petit truc qui permet de modifier l'échelle de polylignes de manière non uniforme (échelles différentes suivant les axes X et Y du SCU courant).Ne fonctionne qu'avec les polylignes optimisées qui ne contiennent que des segments droits. ;; SCL2PL (gile) ;; Modifie non uniformément l'échelle des ploylignes sélectionnées. ;; Les échelles X et Y sont définies parallèlement aux axes du SCU courant. ;; Ne fonctionne qu'avec les polylignes optimisées ne comportant que des ;; segments droits et dont le plan est parallèle à celui du SCU courant. (defun c:sclpl (/ ss base scl cnt n elst norm) (if (setq ss (ssget (list '(0 . "LWPOLYLINE")))) (progn (setq base (cond ((getpoint "\nPoint de base : ")) ('(0. 0.)) ) scl (list (progn (initget 6) (cond ((getdist "\nEchelle en X : ")) (1.0) ) ) (progn (initget 6) (cond ((getdist "\nEchelle en Y : ")) (1.0) ) ) ) base (mapcar '(lambda (x s) (- (* x s) x)) base scl) cnt 0 ) (repeat (setq n (sslength ss)) (setq elst (entget (ssname ss (setq n (1- n))))) (if (and (equal (trans '(0. 0. 1.) 1 0 T) (setq norm (cdr (assoc 210 elst))) 1e-9) (vl-every 'zerop (gc:massoc 42 elst)) ) (entmod (append (vl-remove-if '(lambda (x) (= (car x) 10)) elst) (mapcar '(lambda (p) (cons 10 (trans (mapcar '(lambda (x s b) (- (* x s) b)) (trans p norm 1) scl base) 1 norm ) ) ) (gc:massoc 10 elst) ) ) ) (setq cnt (1+ cnt)) ) ) (if ( (princ (strcat "\n" (itoa cnt) (if (= 1 cnt) " polyligne n'a pu être traitée " " polylignes n'ont pu être traitées " ) "(segment(s) en arc et/ou plan non parallèle au SCU)" ) ) ) ) ) (princ) ) ;; gc:massoc ;; Retourne la liste de toutes les valeurs pour le code spécifié dans une liste d'association ;; ;; Arguments ;; code : le code de groupe pour les entrées ;; alst : la liste d'association (defun gc:massoc (code alst) (if (setq alst (member (assoc code alst) alst)) (cons (cdar alst) (gc:massoc code (cdr alst))) ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lili2006 Posté(e) le 22 novembre 2010 Posté(e) le 22 novembre 2010 Bonsoir à toutes et toutes, Salut Gilles, l'échelle de polylignes C'est à dire ? Chez moi (V2008) => Commande:SCLPLChoix des objets: Spécifiez le coin opposé: 3 trouvé(s)Choix des objets:Echelle en X : 15Echelle en Y : 60Point de base : *Annuler*Commande:erreur: no function definition: MASSOC 2 petite erreurs (peut-être,..) en début de lisp => ;; [b][color=#FF0000]SCL2PL[/color][/b] (gile) ;; Modifie non uniformément l'échelle des [b][color=#FF0000]ploylignes[/color][/b] sélectionnées. ;; Les échelles X et Y sont définies parallèlement aux axes du SCU courant. ;; Ne fonctionne qu'avec les polylignes optimisées ne comportant que des ;; segments droits et dont le plan est parallèle à celui du SCU courant. (defun c:sclpl (/ ss scl base cnt n elst norm) ;; SCLPL (gile) ;; Modifie non uniformément l'échelle des polylignes sélectionnées. ;; Les échelles X et Y sont définies parallèlement aux axes du SCU courant. ;; Ne fonctionne qu'avec les polylignes optimisées ne comportant que des ;; segments droits et dont le plan est parallèle à celui du SCU courant. (defun c:sclpl (/ ss scl base cnt n elst norm) Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
(gile) Posté(e) le 22 novembre 2010 Auteur Posté(e) le 22 novembre 2010 Oupss !...J'avais oublié de préfixer certains appels à massoc (-> gc:massoc). Sinon, la commande fonctionne comme la commande ECHELLE (_SCALE) :- sélection des objets- spécification du point de base- spécification des échelles en X et Y (au lieu d'un échelle globale) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lili2006 Posté(e) le 22 novembre 2010 Posté(e) le 22 novembre 2010 Re, Va être trés pratique dans certains cas,... Merci Gilles, Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
bonuscad Posté(e) le 22 novembre 2010 Posté(e) le 22 novembre 2010 Bonsoir (gile) Je ne comprends pas pourquoi tu as crée cette fonction ! :o Mais je l'ai testée rapidement... Je me suis donc dit, je vais compresser un ressort dessiné schématiquement. Cela fonctionne si on respecte le système de coordonnée, mais si mon ressort est incliné, ben c'est pas top (déforme mon ressort). Passer par un bloc (en acceptant la décomposition d'échelle déformée), me donne un meilleur résultat. Je pense qu'il faudrait au minimum pouvoir choisir l'orientation des axes de déformation pour que cette fonction puisse devenir intéressante. Bonne soirée ;) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
(gile) Posté(e) le 22 novembre 2010 Auteur Posté(e) le 22 novembre 2010 Je pense qu'il faudrait au minimum pouvoir choisir l'orientation des axes de déformation pour que cette fonction puisse devenir intéressante. Les axes de déformation sont les axes X et Y du SCU courant. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lecrabe Posté(e) le 23 novembre 2010 Posté(e) le 23 novembre 2010 Hello Ne pas oublier d'ajouter un : (vl-load-com) Le Decapode Autodesk Expert Elite Team
lecrabe Posté(e) le 23 novembre 2010 Posté(e) le 23 novembre 2010 Hello Sinon apres qq tests sur MAP 2066, ca marche bien et en effet la deformation suit les axes du SCU courant ! J'aime bien ce developpement ... :) Le Decapode Autodesk Expert Elite Team
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