Aller au contenu

Supprimer points communs sur poly 3D


Messages recommandés

Posté(e)

Bonjour,

J'ai un fichier avec plusieurs poly 3D avec les X et Y communs et un Z différents représentants des objets de ce type :

image.png.b5778cb9c42fec5eda83312bbed78dc5.png

 

Ce que je souhaite réaliser c'est ne conserver que les poly 3D supérieures 

image.png.d869b6d1040cc563b38016867b6dae16.png

J'ai essayé la commande filtre, sans succès

Une sélection rapide avec un filtrage Z me permet de supprimer les 4 poly du socle mais pas les arêtes

image.thumb.png.4c8b74545ac011fa86abde29889f032f.png

Auriez-vous une solution ?

Bon WK.

 

Covadis 18.3a

MAP3D 2023

Le Hamac est une science exacte qui ne tolère pas l'amateurisme.

Posté(e)

Slt Olivier,

C'est ce que j'ai commencé à faire, mais j'ai autour de 150 objets à traiter avec des poly basses à plusieurs niveaux...

Ça fonctionne mais c'est long.

 

 

Le Hamac est une science exacte qui ne tolère pas l'amateurisme.

Posté(e)

C'est ~150 objets, j'ai beaucoup plus de poly à traiter

Citation

OK, donc si j'ai bien compris, tu veux supprimer les polylignes 3D dont au moins 1 sommet est au Z bas.

C'est ça

Une partie des poly on un Z à 0, le reste c'est des montagnes russes ...

 

Citation

Mais s'il y a plusieurs Z bas

Le Z bas est constant à une altitude à 0 sur tous les objets.

Le Hamac est une science exacte qui ne tolère pas l'amateurisme.

Posté(e)

Essaie avec ça (ça demande de cliquer un point bas pour récupérer son Z).

Ca ne fonctionne que pour les Poly3D à 2 points.

(defun C:P3DZBAS ( / ssP3D PT dZBas ssP3DASuppr I oP3D PT1 PT2)
  (if (and (setq ssP3D (ssget "x" (list (cons 0 "POLYLINE") (cons 70 8))))
	   (setq PT (getpoint "\nPoint bas : "))
	   (setq dZBas (caddr PT))
      )
    (progn
      (setq ssP3DASuppr (ssadd))
      (setq I 0)
      (repeat (sslength ssP3D)
	(setq oP3D (ssname ssP3D I))
	(setq I (1+ I))
	(setq PT1 (cdr (assoc 10 (entget          (entnext oP3D) ))))
	(setq PT2 (cdr (assoc 10 (entget (entnext (entnext oP3D))))))
	(if (or (equal (caddr PT1) dZBas 0.001) (equal (caddr PT2) dZBas 0.001))
	  (ssadd oP3D ssP3DASuppr)
	)
      )
      (if (>= (sslength ssP3DASuppr) 1)
	(command "_ERASE" ssP3DASuppr "")
      )
    )
  )
)

 

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • 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é