GEGEMATIC Posté(e) le 7 mai 2023 Posté(e) le 7 mai 2023 Salut à toutes et tous, J'ai un projet où il y a beaucoup de plateformes avec peu de talus, mais beaucoup de structures différente. Donc pas besoin d'entrée en terre, mais dans un 1er temps un fichier de point avec les coordonnées x,y,z du fond de forme serai bien approprié. J'ai pas l'impression que ce soit possible de base ? a+ Gégé ----------------------------------------------------------------------Site: https://www.g-eaux.frBlog: http://g-eaux.over-blog.com
GEGEMATIC Posté(e) le 7 mai 2023 Auteur Posté(e) le 7 mai 2023 Au final, c'est simple d’avoir la liste des sommets, et c'est très simple d'avoir la profondeur totale: ;;*************************************************************************** ;;§/poly/ Délivre la liste des sommets du fond de forme d'une plateforme /nepol ;;retourne une seule liste de liste de points 3d avec le nom de la plateforme au début ;;(pw_lsomm_FF_3d_covgrading (enam)) ;;("Herisson Dallage 40cm + finition 20 cm 2" (1.99604e+06 2.23606e+06 98.4) (1.99604e+06 2.23606e+06 98.4) (1.99603e+06 2.23606e+06 99.39) (1.99604e+06 2.23606e+06 99.39) (1.99604e+06 2.23606e+06 99.39) (1.99603e+06 2.23606e+06 99.39) (1.99603e+06 2.23606e+06 99.39)) (defun pw_lsomm_FF_3d_covgrading (epol / enget ltmp res prof nom x y z) (setq enget (entget epol)) (setq nom (cdr (assoc 1 enget))) (setq prof (cdr (assoc 140 enget))) ;(mapcar 'cdr (setq prem (vl-remove-if-not '(lambda (x) (or (= 10 (car x)) (= 92 (car x)) ) ) enget ) ) ;) (foreach l prem (if (/= 92 (car l)) (setq ltmp (cons (cdr l) ltmp)) (setq res (cons (reverse ltmp) res) ltmp nil ) ) ) ;;liste points niveau fini (if ltmp (setq res (cons ltmp res)) ) (setq res (pw_flatten_list res)) (setq res (mapcar '(lambda (pt) (setq x (car pt) y (cadr pt) z (last pt)) (list x y (- z prof)) ) res)) (cons nom res) ) ;; ***************************************************************************** ;;§/listes/ ecrase une liste de liste a une liste d'élements/lst ;;non recursive, ne gère qu'un niveau ;(pw_flatten_list '((1 2)(3 4) 4.5 (5 6))) -> (1 2 3 4 4.5 5 6) ; (defun pw_flatten_list (lst / l deb) (setq deb (car lst)) (setq lst (cdr lst)) (if (not (listp deb)) (setq deb (list deb)) ) (foreach l lst (if (listp l) (setq deb (append deb l )) (setq deb (append deb (list l ))) ) ) deb ) ----------------------------------------------------------------------Site: https://www.g-eaux.frBlog: http://g-eaux.over-blog.com
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