x_all Posté(e) le 11 décembre 2014 Posté(e) le 11 décembre 2014 Bonjour j'avais vu passer ça, mais je n'arrive plus à remettre la main sur un lisp qui fasse la somme des polylignes sélectionnées en triant les épaisseurs. Les entrées sont une sélection dans un calque isolé ou il n'y a que des polylignes avec différentes épaisseur (c'est un réseau EP avec les diamètres noté sur la propriété "largeur globale" des poly que des segments séparés pour chaque diamètre) Cette routine sortait dans la fenêtre F2 la liste des totaux par épaisseur 0.2 -- 50.3m0.3 -- 10.8m... Si qq1 l'a sous la main ou si un codeur fou se sent de la pondre vous aurez ma reconnaissance éternelle merci par avance quelques trucs sur autocad
lecrabe Posté(e) le 11 décembre 2014 Posté(e) le 11 décembre 2014 Hello Ne s'agit il pas de cette routine de Gilles ? Je pense qu'il faut qu'un Pro la modifie car elle trie aussi les Types de Ligne ! Bye, lecrabe - METRE__200_Epaisseur.zip Autodesk Expert Elite Team
(gile) Posté(e) le 11 décembre 2014 Posté(e) le 11 décembre 2014 Salut, (defun c:ListPlines (/ padLeft selSet width item result) (vl-load-com) (or *acdoc* (setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object)))) (defun padLeft (s l) (if (< (strlen s) l) (padLeft (strcat " " s) l) s ) ) (if (ssget '((0 . "LWPOLYLINE"))) (progn (vlax-for pline (setq selSet (vla-get-ActiveSelectionSet *acdoc*)) (setq width (vla-get-ConstantWidth pline) result (if (setq item (assoc width result)) (subst (list (car item) (1+ (cadr item)) (+ (caddr item) (vla-get-Length pline))) item result ) (cons (list width 1 (vla-get-Length pline)) result) ) ) ) (vla-Delete selSet) ) ) (setq dimzin (getvar 'dimzin)) (setvar 'dimzin 0) (prompt "\n*** Liste polylignes ***\n\nLargeur Nombre Longueur\n") (foreach item (vl-sort result '(lambda (a B) (< (car a) (car B)))) (prompt (strcat (padLeft (rtos (car item) 2 2) 6) (padLeft (itoa (cadr item)) 6) (padLeft (rtos (caddr item) 2 2) 12) "m\n" ) ) ) (setvar 'dimzin dimzin) (textscr) (princ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
x_all Posté(e) le 11 décembre 2014 Auteur Posté(e) le 11 décembre 2014 yo !!! c'est noël avant l'heure !! La 1ere routine était bien celle que j'avais en mémoire, mais j'ai pas l'impression quelle marche bien sur la 2015...Par contre encore super merci à super (gille) ça marche du feu de dieu... Je vais pouvoir faire les métrés de mes EP de façon un peu plus rapide super merci !!! quelques trucs sur autocad
lovecraft Posté(e) le 11 décembre 2014 Posté(e) le 11 décembre 2014 Salut X_all, Moi j'utilise l'extraction de données . cf vidéo que j'ai faite rien que pour toi (ok les autres aussi) ;) Lien: https://drive.google...iew?usp=sharing Cordialement, Laurent http://www.youtube.com/user/CADMINATOR?feature=mhee
x_all Posté(e) le 11 décembre 2014 Auteur Posté(e) le 11 décembre 2014 :) je les connais les extractions, mais il faut reconnaitre que si c'est puissant c'est un peu lourd à l'utilisation.vu la taille du réseau que j'ai à me frappé, je me serai tourné vers cette solution en désespoir de cause (solution à la quelle je ne pense pas naturellement il est vrai), mais le code de (gile) et incomparablement plus pratique. On "jete" le lisp dans le dessin, et on récupère les longueurs pour le quantitatif, pas de tableau qui traine sur le dessin pas de fichier d'extraction à trimbaler... bref l'extraction c'est l'artillerie lourde, le lisp c'est le sniper de splinter cell quelques trucs sur autocad
lecrabe Posté(e) le 11 décembre 2014 Posté(e) le 11 décembre 2014 Hello Gilles 0) MERCI : c TIP-TOP !! 1) SVP petite micro-amelioration avec un Total general ! 2) SVP quel serait la variante sur les Calques (et non pas sur les Largeurs globales) ? 3) Et IDEM sur les Couleurs forcees ? Sur les Types de lignes forcees ?? Sur les Epaisseurs de ligne forcees ??? Sans doute 2/3/4 lignes de Lisp/VLIsp un peu differentes suivant les cas ... Merci d'avance, Bye, lecrabe Autodesk Expert Elite Team
Patrick_35 Posté(e) le 11 décembre 2014 Posté(e) le 11 décembre 2014 Hello Gilles 0) MERCI : c TIP-TOP !! 1) SVP petite micro-amelioration avec un Total general ! 2) SVP quel serait la variante sur les Calques (et non pas sur les Largeurs globales) ? 3) Et IDEM sur les Couleurs forcees ? Sur les Types de lignes forcees ?? Sur les Epaisseurs de ligne forcees ??? Sans doute 2/3/4 lignes de Lisp/VLIsp un peu differentes suivant les cas ... Merci d'avance, Bye, lecrabeSalut Un truc que j'avais, adapté à ta demande (defun c:tpo(/ ent ele lst sel res tot filtre) (setq filtre 'constantwidth) ; Constantwidth pour les épaisseurs, Layer pour les calques, Color pour les couleurs, Linetype pour les types de lignes (and (ssget (list (cons 0 "*POLYLINE"))) (progn (vlax-for ent (setq sel (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object)))) (if (setq ele (assoc (vlax-get ent filtre) lst)) (setq lst (subst (list (car ele) (cons (vla-get-length ent) (cadr ele))) ele lst)) (setq lst (cons (list (vlax-get ent filtre) (list (vla-get-length ent))) lst)) ) ) (vla-delete sel) (setq tot 0) (mapcar '(lambda(x) (setq tot (+ tot (setq res (apply '+ (cadr x))))) (princ "\nTotal polyligne(s) type ") (princ filtre) (princ " --> ") (princ (car x)) (princ (strcat " : " (rtos res))) ) (vl-sort lst '(lambda(a B)(< (car a) (car B)))) ) (princ (strcat "\nTotal : " (rtos tot))) ) ) (princ) ) ps : il ressemble beaucoup à celui de (gile)pps : (setq dimzin (getvar 'dimzin)) Celle-ci est très subtile ;) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
philsogood Posté(e) le 17 juin 2015 Posté(e) le 17 juin 2015 @gile,ton lisp est parfait, ma seule remarque (qui n'est pas grand chose) c'est l'arrondi qui se fait après la deuxième décimale (or, sur des plans en mètre il arrive fréquemment que certaines conduites aient besoin d'une 3ème décimale)@+Phil Projeteur Revit Indépendant - traitement des eaux/CVC
(gile) Posté(e) le 17 juin 2015 Posté(e) le 17 juin 2015 @Phil, Regarde les arguments de la fonction rtos. (padLeft (rtos (car item) 2 2) 6) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
CNéo Posté(e) le 1 juin 2016 Posté(e) le 1 juin 2016 Bonjour à tous, Je suis novice en programmation LISP mais j'ai besoin de certaines fonctions pour avancer sur un projet sur ZWCAD (un clone d'Autocad). La fonction "ListPlines" répondrait à mes attendes mais j'aurais besoin de faire quelques modifications : _ Pour les longueurs de polylignes, j'aurais besoin de rajouter à la longueur par épaisseur, une longueur d'un mètre par élément sélectionné._ Aussi je voulais savoir si quelqu'un avait entre les mains une méthode pour que les valeurs obtenues rentrent dans un tableau dans l'espace objet. Je souhaiterai récupérer ces longueurs dans une cellule d'un tableau qui se créerait avec le programme LISP. Merci d'avance pour votre aide.
x_all Posté(e) le 25 avril 2022 Auteur Posté(e) le 25 avril 2022 ça fait une paye... c'est en cherchant l'origine des lisp que j'utilise que je retombe sur ce thread.... et le code de notre regretté Patrick_35 qui me sort de la panade, une fois encore.... Le hasard fait que ça répond au souhait de CNéo car je me posait aussi la question des tableaux Si un codeur fou passe par ici, pour être parfait, le décompte des blocs dynamique mériterait 2 améliorations hors de mes maigres capacités il faudrait faire un tri des visibilités (comme pour les largeurs de poly mais faire un décompte par état de visibilité) et si une propriété "longueur" existe, en faire la somme en plus du décompte des occurrences ce serai le cœur du poulet j'ai mis mise à jour la page des métrés en tableaux avec des commandes par type de ligne, couleur pour les poly, compte les blocs et surfaces avec déjà mes remerciements aux codeurs du forum car j'ai pas fait grand chose finalement même si j'y ai passé 2 jours 🙂 http://joch04.free.fr/achtml/Metres.html quelques trucs sur autocad
x_all Posté(e) le 27 avril 2022 Auteur Posté(e) le 27 avril 2022 mise à jour avec des outils trouvé chez Lee Mac pour trier les états de visibilité et un truc bricolé pour les longueurs d'une propriété particulière des blocs dyn mes adaptations sont des insultes pour les codes originaux, j'en présente toutes mes excuses aux auteurs, mais ça va me faire du taff 🙂 et je partage... il y aura sans doute des trucs à améliorer mais ça me semble opérationnel http://joch04.free.fr/achtml/Metres.html quelques trucs sur autocad
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