CADxp: AUTOMATISER LE NETTOYAGE DE SOLIDE 3D - CADxp

Aller au contenu

Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

AUTOMATISER LE NETTOYAGE DE SOLIDE 3D pour réduire la taille des fichiers et fluidifier l'affichage

#1 L'utilisateur est hors-ligne   famaice 

  • ceinture bleue
  • Groupe : Membres
  • Messages : 108
  • Inscrit(e) : 18-avril 07
  • LocationMarseille - France

Posté 06 avril 2018 - 10:46

Bonjour à tous,

Une fois n'est pas coutume, j'ai récupéré sur AutoCAD une maquette numérique 3D d'un batiment venant de CATIA. Le problème est que j'arrive sans (trop) de soucis à transformer le surfacique en solide mais cela génère des solides "dégueulasses" avec plein de faces partout !! :(
J'utilise la fonction "NETTOYER" (commande _SOLIDEDIT) pour obtenir des solides plus propres. Le problème est que j'ai un grand nombre de solides à traiter et que cette commande ne traite pas en lots (c'est un solide à la fois). <_<

Je cherche donc à automatiser cette action mais je n'ai pas le temps en ce moment d’écrire cette macro. L'idée serait de :
1 Lister tous les solides 3D contenu dans le dessin en cours,
2 Prendre un solide dans la liste, le nettoyer puis passer au suivant jusqu'à ce que la liste soit vide,

Est-ce que quelqu'un a du temps pour rédiger ce genre de macro ? :mellow:

Merci d'avance,

Fabrice
""Nous avons un avenir et il sera fait de nos rêves si nous avons le courage de bousculer les idées reçues" - S. HONDA
0

#2 L'utilisateur est hors-ligne   Fraid 

  • ceinture noire 3em dan
  • Groupe : Membres
  • Messages : 1816
  • Inscrit(e) : 08-août 05
  • LocationST Malo 35

Posté 06 avril 2018 - 13:57

Bonjour,

Essaye cela, je ne peux pas tester sur tes solides
si cela ne fonctionne pas, envoye en un pour que l'on puisse tester

(defun c:netsol (/ sols nb)
(setq sols (ssget "_x" '((0 . "*solid")))
      nb (sslength sols)
)
   (if nb
    (repeat nb
     (command "_SOLIDEDIT" "C" "N" (ssname sols nb))
     (setq nb (- nb 1))
    )
   )
(princ (strcat "\n" (itoa (sslength sols)) " Solides 3D traitées."))
(princ)
)



dit moi si ça marche
...plus je sais où je suis, moin je sais où je vais.... Extrait d''une double interview simultanée d'une particule élémentaire.
0

#3 L'utilisateur est hors-ligne   (gile) 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 11036
  • Inscrit(e) : 02-septembre 05

Posté 06 avril 2018 - 14:58

@Fraid,
Attention :
- ton jeu de sélection prend aussi les solides 2d (SOLID)
- tu testes si ton jeu de sélection n'est pas nil après l'avoir utilisé dans (sslength ...)

(if (setq sols (ssget "_X" '((0 . "3DSOLID))))
  (repeat (setq nb (sslength sols))
    (command "_SOLIDEDIT" "C" "N" (ssname sols (setq nb (1- nb))))
  )
)

Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
Image IPB
0

#4 L'utilisateur est hors-ligne   Fraid 

  • ceinture noire 3em dan
  • Groupe : Membres
  • Messages : 1816
  • Inscrit(e) : 08-août 05
  • LocationST Malo 35

Posté 06 avril 2018 - 15:33

Merci, Gile

tu as un oeil de gabian
comme je me refuse le plus possible de copier coller, je fait des fautes.

le code mise à jour

(defun c:netsol (/ sols nb)
  (if (setq sols (ssget "_X" '((0 . "3DSOLID))))
    (repeat (setq nb (sslength sols))
      (command "_SOLIDEDIT" "C" "N" (ssname sols (setq nb (1- nb))))
   )
  (princ (strcat "\n" (itoa (sslength sols)) " Solides 3D traitées."))
  (princ)
)


...plus je sais où je suis, moin je sais où je vais.... Extrait d''une double interview simultanée d'une particule élémentaire.
0

#5 L'utilisateur est hors-ligne   famaice 

  • ceinture bleue
  • Groupe : Membres
  • Messages : 108
  • Inscrit(e) : 18-avril 07
  • LocationMarseille - France

Posté 09 avril 2018 - 10:00

Voir le messageFraid, le 06 avril 2018 - 15:33 , dit :

Merci, Gile

tu as un oeil de gabian
comme je me refuse le plus possible de copier coller, je fait des fautes.

le code mise à jour

(defun c:netsol (/ sols nb)
  (if (setq sols (ssget "_X" '((0 . "3DSOLID"))))
    (repeat (setq nb (sslength sols))
      (command "_SOLIDEDIT" "C" "N" (ssname sols (setq nb (1- nb))))
    )
    (princ (strcat "\n" (itoa (sslength sols)) " Solides 3D traitées."))
    (princ)
  )
)




Bonjour les amis,

Merci d'avance pour le coup de main ! ;)
Après correction d'une erreur de syntaxe (une apostrophe manquante) et d'une parenthèse manquante (corrigé dans le code ci-dessus), j'ai testé la routine et j'ai 2 problèmes :huh: :
1. Une fois la routine chargé, il ne trouve pas la commande netsol.
2. Dans l'editeur VLISP, après une vérif., j'ai comme erreur un nombre d'arguments trop important dans la boucle IF

Je regarde ça ce midi entre la poire et le dessert et je vous tiens au jus ! Entre temps, je finis de réceptionner mes 1600 platines et 460 rails prescellées de mon bâtiment... <_<

Bien à vous,
Fabrice
""Nous avons un avenir et il sera fait de nos rêves si nous avons le courage de bousculer les idées reçues" - S. HONDA
0

#6 L'utilisateur est hors-ligne   (gile) 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 11036
  • Inscrit(e) : 02-septembre 05

Posté 09 avril 2018 - 10:04

(defun c:netsol (/ sols nb)
  (if (setq sols (ssget "_X" '((0 . "3DSOLID"))))
    (progn
      (repeat (setq nb (sslength sols))
	(command "_SOLIDEDIT" "C" "N" (ssname sols (setq nb (1- nb))))
      )
      (princ (strcat "\n" (itoa (sslength sols)) " Solides 3D traitées."))
    )
    (princ)
  )
)

Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
Image IPB
0

#7 L'utilisateur est hors-ligne   lecrabe 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 8029
  • Inscrit(e) : 10-décembre 03
  • LocationLoire (42)

Posté 09 avril 2018 - 10:33

Hello Mr Famaice

SVP peux tu nous donner un lien de Download de l'un de tes dessins 3D CATIA
( Si ce n'est pas Top-Secret !? )
particulierement MOCHE en 3DSOLID AutoCAD avant nettoyage
et superbe apres nettoyage grace a la commande _SOLIDEDIT ?

Si possible le fichier CATIA original et le DWG ...

Merci, Bye, lecrabe
Autodesk Expert Elite Team
0

#8 L'utilisateur est hors-ligne   famaice 

  • ceinture bleue
  • Groupe : Membres
  • Messages : 108
  • Inscrit(e) : 18-avril 07
  • LocationMarseille - France

Posté 12 avril 2018 - 10:04

Voir le messagelecrabe, le 09 avril 2018 - 10:33 , dit :

Hello Mr Famaice

SVP peux tu nous donner un lien de Download de l'un de tes dessins 3D CATIA
( Si ce n'est pas Top-Secret !? )
particulierement MOCHE en 3DSOLID AutoCAD avant nettoyage
et superbe apres nettoyage grace a la commande _SOLIDEDIT ?

Si possible le fichier CATIA original et le DWG ...

Merci, Bye, lecrabe


Salut,
J'peux pas ! Ça concerne un gros projet international confidentiel... sur lequel tous les ingés du Sud de la France travaillent. ;)
Désolé...
""Nous avons un avenir et il sera fait de nos rêves si nous avons le courage de bousculer les idées reçues" - S. HONDA
0

#9 L'utilisateur est hors-ligne   famaice 

  • ceinture bleue
  • Groupe : Membres
  • Messages : 108
  • Inscrit(e) : 18-avril 07
  • LocationMarseille - France

Posté 12 avril 2018 - 10:06

Voir le message(gile), le 09 avril 2018 - 10:04 , dit :

(defun c:netsol (/ sols nb)
  (if (setq sols (ssget "_X" '((0 . "3DSOLID"))))
    (progn
      (repeat (setq nb (sslength sols))
	(command "_SOLIDEDIT" "C" "N" (ssname sols (setq nb (1- nb))))
      )
      (princ (strcat "\n" (itoa (sslength sols)) " Solides 3D traitées."))
    )
    (princ)
  )
)



Un (Progn)... quel con, j'y pensais pas. :angry:
Un grand merci Gile pour ton assistance bienveillante :)
Je teste et vous tiens au jus
""Nous avons un avenir et il sera fait de nos rêves si nous avons le courage de bousculer les idées reçues" - S. HONDA
0

#10 L'utilisateur est hors-ligne   famaice 

  • ceinture bleue
  • Groupe : Membres
  • Messages : 108
  • Inscrit(e) : 18-avril 07
  • LocationMarseille - France

Posté 15 mai 2018 - 08:12

Bonjour à tous,

Bon la conversion de ce fichier CATIA a été reprise par un collègue B)
Il a pris le temps de préciser la manip à réaliser. Voici donc les différentes étapes pour nettoyer et convertir en solide 3D que l'on souhaiterait automatiser.

Citation

Bonjour,
J'aurais besoin d'aide pour créer une macro.

Mon fichier Autocad (import CATIA) est constitué de plus de mille Blocs dont le nom commence par "CGR" (exemple "CGR3341"). A l'intérieur du Bloc, il y a un ou plusieurs objet(s) maillé(s).

Je dois transformer les objets maillés en Solid3D (ou en Surface si ça ne fonctionne pas) en Solid3D.

Ma méthode :
1. J'insère un Bloc "CGR" n'importe où dans l'espace objet.
2. J'édite le Bloc dans le dessin même.
3. Je sélectionne tous les objets maillés à l'intérieur.
4. Je lance la commande "convtosurface" (conversion du maillage définie sur: A facettes et optimisé),
puis, je les re-sélectionne et je lance la commande "convtosolid" (conversion du maillage définie sur : A facettes et optimisé).
5. J'enregistre les modification du bloc.
6. Je le supprime.
et je recommence sur le cgr suivant.

Mon idée :
1. Faire un tableau qui liste tous les blocs commençant par "CGR".
2. Insérer le premier de la liste dans l'espace objet.
3. Faire la manip de conversion. (éditer le bloc, tout sélectionner, convertir en surface, tout sélectionner, convertir en solide, enregistrer l’édition du bloc)
4. Supprimer le bloc de l'espace objet.
5. Insérer le bloc suivant de la liste.


Merci pour ton aide


Sachant que l'on est tous à un moment donné confronté à des conversions de fichiers CAO :angry: , cette macro pourrait servir à d'autres camarades dessineu' :P et donc partagé avec vous tous.

Question : Est ce que ce genre de macro est faisable ? Si oui, merci d'avance pour ceux qui se lancerait dans le développement d'une telle macro. (Je sais que gérait les blocs et les objets 3D en LISP est laborieux (qui a dit chiant ?).

Bien à vous tous,

NB : La variable FACETERSMOOTHLEV est réglé sur 0
""Nous avons un avenir et il sera fait de nos rêves si nous avons le courage de bousculer les idées reçues" - S. HONDA
0

#11 L'utilisateur est hors-ligne   lecrabe 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 8029
  • Inscrit(e) : 10-décembre 03
  • LocationLoire (42)

Posté 15 mai 2018 - 16:48

Hello

ITER ?

Bye, lecrabe
Autodesk Expert Elite Team
0

#12 L'utilisateur est hors-ligne   famaice 

  • ceinture bleue
  • Groupe : Membres
  • Messages : 108
  • Inscrit(e) : 18-avril 07
  • LocationMarseille - France

Posté 16 mai 2018 - 08:30

Voir le messagelecrabe, le 15 mai 2018 - 16:48 , dit :

Hello

ITER ?

Bye, lecrabe


Bon Dieu, v'la que le Crabe est aussi devin... :D

J'arrive pas à mettre un dwg en PJ pour faire les tests. Donne moi ton adresse mail par message privé pour que je puisse te l'envoyer. Sur CadXP, j'ai une erreur serveur dés que je veux joindre un fichier.

Bien à toi, camarade !!
""Nous avons un avenir et il sera fait de nos rêves si nous avons le courage de bousculer les idées reçues" - S. HONDA
0

#13 L'utilisateur est hors-ligne   lecrabe 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 8029
  • Inscrit(e) : 10-décembre 03
  • LocationLoire (42)

Posté 16 mai 2018 - 09:48

Hello

cadxp at hotmail point fr

Merci d'avance, Bye, lecrabe

PS: cela fait longtemps que l'on ne peut plus joindre des fichiers sur cadxp.com !
Autodesk Expert Elite Team
0

#14 L'utilisateur est hors-ligne   Aleck Ultimate 

  • ceinture noire 1er dan
  • Groupe : Membres
  • Messages : 749
  • Inscrit(e) : 18-novembre 16
  • LocationAlpes de Hautes Provences (04)

Posté 16 mai 2018 - 10:08

Salut.

Le pourquoi et le comment pour joindre des PJ et afficher des images : Mon lien

Cordialy.
En DAO, la passion me porte ! Le plus important n'est pas l'objectif mais je chemin parcourut pour l'atteindre.
C'est pourquoi il faut continuer à courir après les utopie même quant on se rend compte qu'elle sont inatteignables.

Utilisateur d'AutoCAD 2018 sous Windows 10
0

#15 L'utilisateur est hors-ligne   famaice 

  • ceinture bleue
  • Groupe : Membres
  • Messages : 108
  • Inscrit(e) : 18-avril 07
  • LocationMarseille - France

Posté 16 mai 2018 - 10:57

Voir le messagelecrabe, le 16 mai 2018 - 09:48 , dit :

Hello

cadxp at hotmail point fr

Merci d'avance, Bye, lecrabe

PS: cela fait longtemps que l'on ne peut plus joindre des fichiers sur cadxp.com !


Mail envoyé avec la pj !
""Nous avons un avenir et il sera fait de nos rêves si nous avons le courage de bousculer les idées reçues" - S. HONDA
0

Partager ce sujet :


Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)