Aller au contenu

maillage polyface


Tramber

Messages recommandés

Pourquoi et comment le maillage polyface (pas une maille ou un maillage polygonal) est-il codé comme ceci ?

 

((-1 . ) (0 . "POLYLINE") (330 . ) (5 . "105") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 . "AcDbPolyFaceMesh") (66 . 1) (10 0.0 0.0 0.0) (70 . 64) (40 . 0.0) (41 . 0.0) (210 0.0 0.0 1.0) (71 . 4) (72 . 2) (73 . 0) (74 . 0) (75 . 0))

 

 

Il y a 2 noms d'entités et 2 groupes 100.

Donc, j'imagine qu'il faut fouiller l'entité 330 pour trouver les points.

 

 

Question, comment crée-t-on un maillage polyface en lisp ?

 

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

Invité Patrick

certains codes DXF apparaissent plusieurs Fois par objet .il Fautdonc boucler pour les parcourir . c'est le cas des LWPOLYLIGNES

 

(message envoyé à partir d'un appareil mobile)

Lien vers le commentaire
Partager sur d’autres sites

C'est gentil mais ca n'est pas en rapport avec le mailage polyface et ca ne m'aide pas beacoup à comprendre.

 

Je tente de fouiller le code,...bof, j'arrive pas à lire les points, au moins des faces qui composent le maillage ou alors des points seuls du maillage.

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

Je continue à formuler ma question.

 

J'arrive à automatiser la création des "_3dfaces" et à gérer la visibilité des arrêtes.

Mais je n'arrive pas à transformer ça en maillage polyface. Mais alors pas du tout.

 

Je ne suis pas très fort non plus en exploration de codes DXF et celui ci-dessus me resiste pas mal.

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

coucou

ben, moi je ne sais même pas faire

des POLYFACES à la main,

alors de là à les automatiser en Lisp,

il y a un obstacle que je ne suis pas sur le point de franchir.

 

Explique CLAIREMENT, la méthode

pour obtenir tes fameuses POLYFACES,

quelles entités au départ, et surtout le mode opératoire

et je vais me pencher sur ton souci.

 

à bientôt

 

 

Lien vers le commentaire
Partager sur d’autres sites

Salut Tramber,

 

On laisse tomber le script ;)

 

Plus sérieusement, pour les entités "INSERT" (bloc) et "POLYLINE" , tu es obligé de parcourir la définition avec (entnext).

Cette fonction te retournera des entités "VERTEX" tant qu'il y en aura, tu sauras que tu es arrivé au bout quand (entnext) te renverra une entité "SEQEND".

 

Ton code doit donc contenir une boucle pour parcourir ce type d'entité. Soit tu utilise l'entité "SEQEND", soit le code 71 pour déterminer l'arrêt de ta boucle.

 

exemple d'accés aux sous-entités:

(entget (entnext (cdar (entget (car (entsel "\nChoix d'une entité POLYLINE ou INSERT "))))))

 

Cela retourne la défintion du 1er sommet (pour 1 polyligne)

 

Pour Didier

On dessine des Polyface avec la commande PMAILLE (_PFACE)

Cette commande est franchement inutilisable manuellement, son intérêt est de l'utiliser en programmation.

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

Bojour

OK, merci,

mais le but de Tramber est d'automatiser,

donc il faut partir de quelque chose,

et ce quelque chose, c'est quoi ?

-- des points ?

-- des entités lignes ou arcs ?

-- faut il des polylignes ?

-- le tout en 3D ?

 

je ne vois pas la finalité, donc je ne serai pas d'une grande aide,

désolé

 

Lien vers le commentaire
Partager sur d’autres sites

Je suis en train de galérer aujourd'hui avec mon vieux 2000 à verrou physique et je perds mon temps à désinstaller et réinstaller et me prendre la tête avec le fameux ac1st15.dll :casstet:

 

Mais je me dois d'avancer sur ce sujet même si je n'ai pas la main sur Autocad.

 

La base du maillage polyface, c'est la face3D.

 

Cher Didier, si tu lances _3dface, tu définis une face3D et tu peux gérer au fur et à mesure la visibilité des arrêtes. Jusque là tout va bien. Tu peux t'y essayer, c'est super facile.

 

Maintenant, je butte sur un problème : le maillage polyface (PMAILLE en génére mais celui que je veux traiter vient d'un autre logiciel par un import DXF).

 

Le maillage polyface, c'est, en gros, comme un bloc qui contiendrait un nombre X de faces 3D. L'intérêt, au final, étant d'obtenir une surface (composée de faces 3D) que l'on peut manipuler en un seul objet.

Pour preuve, si tu explose une 3Dmaille, tu obtiens des faces3D.

 

Voilà le hic, je pense que c'est un lisp qui crée PMAILLE, mais je ne sais pas lire les entités contenues dedans et encore moins rassembler des faces pour en faire une PMAILLE (ni en lisp ni en session de dessin normale).

 

Voilà voilà, je vais chercher un peu dans les lisp d'Autocad pour voir si je peux comprendre qqe chose.

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

salut Tramber,

 

ben c'est clair que c'est pas clair,

je blague, ça baigne.

envoie moi un dwg exemple, et dis moi ce que tu souhaites obtenir,

je vais regarder ça au travers de la fumée éclaircissante de mes sans filtre...

ciao

un pour tousse

tousse pour un,

Lien vers le commentaire
Partager sur d’autres sites

Très volontiers, je le fais et puis on publiera ce qu'on aura trouvé.

 

La commande PMAILLE est qd même hyper balaise à comprendre (je dirai que c'est super facile une fois que j'y serai arrivé ;) ).

 

Bon, pour la commande _3Dface, y a pas de problèmes, hein ? C'est fastoche.

 

en lisp, on peut faire :

 

(defun C:pilefaces ( / pt1 pt2 pt3 pt4 pt5 pt6)

(setq pt5 nil)

(setq pt1 (getpoint "\n1er vertex: "))

(setq pt2 (getpoint "\nVertex suivant: "))

(setq pt3 (getpoint "\nVertex suivant: "))

(setq pt4 (getpoint "\nVertex suivant: "))

(setq pt6 pt4)

(if (= pt4 nil) (command "_3dface" pt1 pt2 pt3 pt3 pt5))

(if (= pt4 nil) (setq pt6 nil))

(if (/= pt4 nil) (command "_3dface" pt1 pt2 pt3 "i" pt3

pt5))

(while (/= pt4 nil)

(setq pt2 pt3)

(setq pt3 pt4)

(setq pt4 (getpoint "Next vertex: "))

(if (/= pt4 nil) (command "_3dface" "i" pt1 pt2 pt3 "i" pt3

pt5)(command "_3dface" "i" pt1 pt2 pt3 pt3 pt5))

)

)

 

Pour patienter, mais comment rassembler tout ca dans une PMAILLE ?

Et comment lire les entités d'une PMAILLE

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

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é