Fruity Posté(e) le 24 septembre 2018 Posté(e) le 24 septembre 2018 BonjourAlors depuis quelques jours, je m'embête à faire ca a la main (et souvent je dois faire ca par catégorie d'objet), et c'est le genre de chose qui doit être facile a programmer:Modifier l’échelle de type de ligne de tous les objets présent sur le plan.Quelqu'un saurait? Merci https://www.facebook.com/aedenhivanovahttp://ca-vous-enerve.blogspot.com/
PHILPHIL Posté(e) le 24 septembre 2018 Posté(e) le 24 septembre 2018 hello ECHLTP = 5 OU 10 par exemple a+ Phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
La Lozère Posté(e) le 24 septembre 2018 Posté(e) le 24 septembre 2018 Bonjour,Je ne sais pas si j'ai bien compris la question, mais en passant par la palette des propriétés, c'est possible non? Tu fais un Ctrl+A, et tu mets la valeur que tu veux à la place de *Varie* www.cad-is.fr Autocad Map 2021 - Covadis/Autopiste V18.2c Pisser sous la douche ne suffira pas
philous2 Posté(e) le 24 septembre 2018 Posté(e) le 24 septembre 2018 BonjourAlors depuis quelques jours, je m'embête à faire ca a la main (et souvent je dois faire ca par catégorie d'objet), et c'est le genre de chose qui doit être facile a programmer:Modifier l’échelle de type de ligne de tous les objets présent sur le plan.Quelqu'un saurait? MerciBonjour, Si tu veux modifier seulement l'échelle de l'ensemble des polylignes de ton fichier, moi j'aurais utilisé la commande "sélection rapide", tu indiques les objets à sélectionner soit dans ton cas les polylignes, toutes les polylignes de ton fichier vont s'afficher avec les grips, tu vas alors dans propriété et tu changes le rapport d'échelle, tout simplement.A+Phil
lecrabe Posté(e) le 24 septembre 2018 Posté(e) le 24 septembre 2018 Hello Ou bien Mr Open-Mind desire une routine Lisp/VLisp ("ScaleLineTypes" ??) qui multiplie par un facteur xx.yy TOUTES les echelles LOCALES de type de ligne des objets graphiques !? ET on ne touche surtout pas a ECHLTP/LTSCALE ! Ce qui peut etre TRES PRATIQUE ! MERCI Gilles, Bye, lecrabe PS: Ci-apres l'excellente routine "ScaleLineTypes" de Maitre Gilles ... ;; ;; Routine: ScaleLineTypes by GC for Patrice ;; (defun c:ScaleLineTypes (/ ss i scl dxf) (prompt "\nSelectionnez les Objets ou Entree pour Tous : ") (setq ss (cond ((ssget)) ((ssget "X")))) (initget 7) (setq scl (getreal "\nEntrez le Facteur de Changement RELATIF du Facteur d Echelle LOCAL: ")) (repeat (setq i (sslength ss)) (setq dxf (entget (ssname ss (setq i (1- i))))) (if (setq lts (assoc 48 dxf)) (entmod (subst (cons 48 (* scl (cdr lts))) lts dxf)) (entmod (append dxf (list (cons 48 scl)))) ) ) (princ) ) Autodesk Expert Elite Team
rebcao Posté(e) le 24 septembre 2018 Posté(e) le 24 septembre 2018 Bonjour, Et la commande CHPROP ! Elle marche très bien ! 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 @)
Fruity Posté(e) le 25 septembre 2018 Auteur Posté(e) le 25 septembre 2018 Merci pour vos réponses. Bonjour,Je ne sais pas si j'ai bien compris la question, mais en passant par la palette des propriétés, c'est possible non? Tu fais un Ctrl+A, et tu mets la valeur que tu veux à la place de *Varie* C'est ainsi que je fais, cependant, la plupart du tps, la ligne est grisée et je dois alors filtrer par type d'objet (ligne, puis arc, puis polyligne, etc.) pour changer la valeur. Ce qui est long. D'autant plus quand le fichier est lourd. Sans parler du risque de plantage à faire une sélection complète.D'où ma demande d'une commande qui automatiserait tout ca. Quant à la routine "ScaleLineTypes" , j'ai un doute. Si j'ai bien compris, on applique un même facteur à l'ensemble des objets. Mais quand différentes échelles locales existent sur un dessin, la différence resterait après avoir appliqué un facteur. CHPROP, ca avait l'air pas mal, mais ca revient à modifier par la fenêtre de propriétés, et ca ne fonctionne pas quand celle-ci est grisée. https://www.facebook.com/aedenhivanovahttp://ca-vous-enerve.blogspot.com/
lecrabe Posté(e) le 25 septembre 2018 Posté(e) le 25 septembre 2018 Hello En effet je pense que ScaleLineTypes ne te concerne pas !? SAUF si tu avais le MEME Facteur d'Echelle LOCAL (1.0 par exemple) sur tous tes objets et que tu ne veux pas toucher a LTSCALE / ECHLTP !! Bye, lecrabe Autodesk Expert Elite Team
PHILPHIL Posté(e) le 25 septembre 2018 Posté(e) le 25 septembre 2018 HELLO j'ai modifie un lisp pour changer la hauteur des texte, en changement de l'echelle des lignes ou polyligne ca sous entend de choisir les entités quand meme tu sélectionnes les entité lignes ou polyligneou un CTR+A pour tout sélectionner tu appuies sur "+" augmente l'échelle de type de ligne de 0.1ou "-" diminue l'échelle de type de ligne de 0.1ou "0" sort du lisp a+ Phil ;;;------------------------------------------------------------------ ;;;CHANGE L ECHELLE DES TYPE DE LIGNE OU POLYLIGNE AVEC LES TOUCHES + OU - EJECT AVEC 0 ;;; + = touche N°43 ;;; - = touche N°45 ;;; 0 = touche N°48 ;;; enter = touche N°13 ;;;------------------------------------------------------------------ (defun C:CECT (/ ENTX) (setvar "cmdecho" 0) (setq ENTX NIL) (prompt "\nSELECTIONNER LE(S) LIGNE(S) POLYLIGNE(S) A MODIFIER :") (while (null ENTX) (setq ENTX (ssget '((0 . "LINE,LWPOLYLINE"))))) (setq COM (sslength ENTX)) (setq BOUCLE1 1) (while (= BOUCLE1 1) (initget "0 + -") (prompt "\nSELECTIONNER LE TYPE D'ACTION DESIRE ( 0 + - ) ") (setq ACTION (grread NIL 4 0)) (if (= (cadr ACTION) 43) (progn (setq COMPT 0) (while (< COMPT COM) (setq ECHELLETYPELINE (vlax-get-property (vlax-ename->vla-object (cdr (assoc -1 (entget (ssname ENTX COMPT))))) 'LinetypeScale)) (vla-put-LinetypeScale (vlax-ename->vla-object (cdr (car (entget (ssname ENTX COMPT))))) (+ (ROUND-PREC ECHELLETYPELINE 1) 0.1) ) (setq COMPT (1+ COMPT)) ) (if (= COM 1) (prompt (strcat "\nL'ECHELLE DE LA LIGNE, POLYLIGNE EST DE < " (rtos (+ (ROUND-PREC ECHELLETYPELINE 1) 0.1) 2 1) " >: ") ) (prompt "\nL'ECHELLE DES LIGNES, POLYLIGNES A AUGMENTEE DE 0.1 :") ) ) ) (if (= (cadr ACTION) 45) (progn (setq COMPT 0) (setq CHANG 0) (while (< COMPT COM) (setq ECHELLETYPELINE (vlax-get-property (vlax-ename->vla-object (cdr (assoc -1 (entget (ssname ENTX COMPT))))) 'LinetypeScale)) (if (> (- (ROUND-PREC ECHELLETYPELINE 1) 0.1) 0) (progn (vla-put-LinetypeScale (vlax-ename->vla-object (cdr (car (entget (ssname ENTX COMPT))))) (- (ROUND-PREC ECHELLETYPELINE 1) 0.1) ) (setq CHANG (1+ CHANG)) ) (progn (prompt "\nL'ECHELLE DE LA LIGNE, POLYLIGNE N'A PAS ETE CHANGE CAR DEVENU NEGATIVE :")) ) (setq COMPT (1+ COMPT)) ) (if (> COM 1) (progn (if (> CHANG 0) (prompt "\nL'ECHELLE DES LIGNES, POLYLIGNES A DIMINUEE DE 0.1 :") ) ) (progn (if (> CHANG 0) (prompt (strcat "\nL'ECHELLE DE LA LIGNE, POLYLIGNE EST DE < " (rtos (- (ROUND-PREC ECHELLETYPELINE 1) 0.1) 2 1) " >: ") ) (prompt (strcat "\nL'ECHELLE DE LA LIGNE, POLYLIGNE EST DE < " (rtos (ROUND-PREC ECHELLETYPELINE 1) 2 1) " >: ")) ) ) ) ) ) (if (= (cadr ACTION) 48) (setq BOUCLE1 0) ) ) (princ) ) ;;; ROUND-PREC Arrondit à la valeur la plus proche en fonction de prec ;;; (round pi 2) -> 3.14 ;;; (round pi 5) ->3.14159 ;;; (round 5456.50 0) -> 5457 ;;; (round 5456.50 -1) -> 5460 (defun round-prec (num prec /) (setq rslt (/ (fix (+ (* num (expt 10.0 prec)) (/ (abs num) (* 2 num)))) (expt 10.0 prec))) (if (< 0 prec) rslt (fix rslt) ) ) FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
Fruity Posté(e) le 26 septembre 2018 Auteur Posté(e) le 26 septembre 2018 Merci mais ca ne marche pas. Enfin si mais les différences restent.Un objet qui est à un 10 , un autre à 5, après utilisation de ce lisp, on se retrouve avec 6 et 1 par exemple. L'écart reste inchangé.Là où je souhaiterai tout mettre à la même valeur. ps: et il faudrait que ca fonctionne sur les arcs, les cercles, etc... enfin tout) https://www.facebook.com/aedenhivanovahttp://ca-vous-enerve.blogspot.com/
Fruity Posté(e) le 26 août 2019 Auteur Posté(e) le 26 août 2019 un petit up :) https://www.facebook.com/aedenhivanovahttp://ca-vous-enerve.blogspot.com/
PHILPHIL Posté(e) le 26 août 2019 Posté(e) le 26 août 2019 HELLO fruity quoi comme "UP" ? Phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
didier Posté(e) le 26 août 2019 Posté(e) le 26 août 2019 Coucou Allez ! on va appeler les vieux à la rescousse...Ils passent leur temps à bloquer les sites porno ces derniers temps, Un peu de lisp va leur dégourdir les doigts... Essaie-ça : Amicalement(defun c:Ch-F-LT ( / ssets acadDocument newsset n item NF) (vl-load-com) (setq NF (getreal "\nNouveau Faceur d'échelle du type de ligne : "));NF pour Nouveau Facteur (setq acadDocument (vla-get-activedocument (vlax-get-acad-object))) (setq ssets (vla-get-selectionsets acadDocument)) (setq newsset (vla-add ssets "JeuSel")) (vla-selectOnScreen newsset) (setq n 0) (repeat (vla-get-count newsset) (setq item (vla-item newsset n)) (setq check (vlax-property-available-p item "LinetypeScale" T)) (if check (vlax-put-property item 'LinetypeScale NF) );if (setq n (1+ n)) );repeat (vla-delete (vla-item ssets "JeuSel")) (princ) ) 1 Éternel débutant… Mon site perso : Programmer dans AutoCAD
philsogood Posté(e) le 27 août 2019 Posté(e) le 27 août 2019 helloun lisp à 2 balles (pcq court et très efficace);;;echelle type de ligne = 1 (defun c:ech(/ doc ele obj) (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (vlax-for ele (vla-get-blocks doc) (vlax-for obj ele (vl-catch-all-apply 'vla-put-linetypescale (list obj 1.0)) ) ) (vla-endundomark doc) (princ) )++Phil 1 Projeteur Revit Indépendant - traitement des eaux/CVC
rebcao Posté(e) le 27 août 2019 Posté(e) le 27 août 2019 Bonjour, Et avec la bonne vieille commande CHANGER ? ça donne une petite MACRO toute simple qui va traiter l'ensemble des OBJETS du dessin : ^c^c_CHANGE;_ALL;;_P;_E;0;_T;0;; _E = Elévation _T = Hauteur Z 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 @)
x_all Posté(e) le 27 août 2019 Posté(e) le 27 août 2019 le problème quand on fait Ctrl A ou Chprop, c'est quand il y a des blocs dans la sélection j'avais récupérer un bout de code pour sortir ces derniers de la sélection(defun c:moinsbloc () (sssetfirst nil (ssget '((-4 . "<NOT") (0 . "INSERT") (-4 . "NOT>")))) ) après tu passe tout à 1 puis la routine qui applique un facteur multiplicateur fait des miracles quelques trucs sur autocad
lecrabe Posté(e) le 27 août 2019 Posté(e) le 27 août 2019 Hello PERSO: j adore la routine que Gilles m a développée ! Bye, lecrabe "triste" Autodesk Expert Elite Team
Fruity Posté(e) le 5 septembre 2019 Auteur Posté(e) le 5 septembre 2019 Philsogood et Didier, vos lisp semblent fonctionner a merveille! Je me les garde tous les 2 sous le coude, merci :D https://www.facebook.com/aedenhivanovahttp://ca-vous-enerve.blogspot.com/
LUDWIG Posté(e) le 8 décembre 2020 Posté(e) le 8 décembre 2020 Hello Ou bien Mr Open-Mind desire une routine Lisp/VLisp ("ScaleLineTypes" ??) qui multiplie par un facteur xx.yy TOUTES les echelles LOCALES de type de ligne des objets graphiques !? ET on ne touche surtout pas a ECHLTP/LTSCALE ! Ce qui peut etre TRES PRATIQUE ! MERCI Gilles, Bye, lecrabe PS: Ci-apres l'excellente routine "ScaleLineTypes" de Maitre Gilles ... C'est ce qu'il me fallait depuis des années. Je ne l'avais pas trouvé, faute de l'avoir cherché !! En effet très pratique :Quand on insère un bloc défini en mètre dans un dessin au millimètre, le bloc subit une conversion de 1000 ("facteur d'unité" du bloc), mais pas les types de lignes ! Les pointillés ressemblent donc à des lignes continues.Echtp pourrait régler le problème mais ça agit sur tous le dessin. Donc aussi sur des objets dont les pointillés et autres type de lignes sont déjà visuellement correct et qu'il ne faut pas changer... Autocad 2021 - Revit 2022 - Windows 10
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