Aller au contenu

Classement

Contenu populaire

Affichage du contenu avec la meilleure réputation le 06/11/2024 dans toutes les zones

  1. Bonjour @helas Si vous voulez commencer à apprendre à programmer avec AutoLisp, je vais encore vous refroidir. C'est un peu trop compliqué pour un débutant. Il ne faut pas mettre la barre trop pour éviter l'écœurement et la frustration. Toutefois, le pseudo code devrait se rapprocher de ça : Sélection des objets Tri en fonction du type, lignes, points, bloc avec attributs Extraction des coordonnées de ces entités passage en 2D pour trouver les intersections Calcul des altitudes en fonction des XY des intersections en 2D Dessin de la coupe Cotation éventuellement Amicalement
    1 point
  2. Salut helas. Je te propose ceci, mais je n'ai rien pour tester : (defun c:tpo (/ ent ele lst sel res tot filtre) (setq Fichier (substr (getvar "dwgname") 1 (- (strlen (getvar "dwgname")) 4))) (setq Fichier (strcat (getvar "dwgprefix") Fichier ".txt")) (setq FichierEcrit (open Fichier "a")) (write-line "Total polyligne(s) type" FichierEcrit) (setq filtre 'Layer) ; 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)) ) ;_ Fin de if ) ;_ Fin de vlax-for (vla-delete sel) (setq tot 0) (mapcar '(lambda (x) (setq tot (+ tot (setq res (apply '+ (cadr x))))) (princ "\nTotal polyligne(s) type ") (princ filtre) (prin " --> ") (princ (car x)) (princ (strcat " : " (rtos res))) (write-line (strcat "Filtre --> " (car x) " : " (rtos res)) FichierEcrit) ) ;_ Fin de lambda (vl-sort lst '(lambda (a B) (< (car a) (car B)))) ) ;_ Fin de mapcar (princ (strcat "\nTotal : " (rtos tot))) (write-line (strcat "Total : " (rtos tot)) FichierEcrit) ) ;_ Fin de progn ) ;_ Fin de and (close FichierEcrit) (princ) ) ;_ Fin de defun
    1 point
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité