Aller au contenu

[PLF] Listing des fonds de formes ?


Messages recommandés

Posté(e)

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.fr

Blog: http://g-eaux.over-blog.com

Posté(e)

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.fr

Blog: http://g-eaux.over-blog.com

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • 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é