PHILPHIL Posté(e) le 9 avril 2021 Posté(e) le 9 avril 2021 BOnjour je cherche a écrire un lisp pour nettoyer des fichiers issue de REVIT et ARCHICAD déja en décomposant les blocs "MUR" "POUTRE" et "POTEAU" autant les entités des blocs MUR et POTEAU sont dans les bonnes couches autant les POTEAUX sont dans la couche "annotations" ( pas vraiment sa place) avez vous un bout de lisp qui fait la liste des entités issu d'un bloc précédemment décomposé, suivant l'analyse de chaque entité de cette liste je repartis les entités dans une autre couche merci Phil ;; --------------------------------- ;; NETTOYER FICHIER DWG ISsU DE ARCHICAD ;; --------------------------------- (defun c:nettoyer_dwg_archicad () (setq selblocmur (ssget "_x" (list (cons 0 "INSERT") (cons 2 "Mur*")))) (if selblocmur (progn (setq i 0) (setq nbexp 0) (repeat (sslength selblocmur) (setq e (ssname selblocmur i)) (setq i (1+ i)) (command "_explode" e)) (strcat "\n" (itoa (sslength selblocmur)) " BLOCS MUR ONT ETE DECOMPOSE(S)") ) (strcat "\nAUCUN BLOCS MURS ONT ETE DECOMPOSE(S)") ) (setq selblocpoutre (ssget "_x" (list (cons 0 "INSERT") (cons 2 "Poutre*")))) (if selblocpoutre (progn (setq i 0) (setq nbexp 0) (repeat (sslength selblocpoutre) (setq e (ssname selblocpoutre i)) (setq i (1+ i)) (command "_explode" e) ) (strcat "\n" (itoa (sslength selblocpoutre)) " BLOCS POUTRE ONT ETE DECOMPOSE(S)") ) (strcat "\nAUCUN BLOCS POUTRES ONT ETE DECOMPOSE(S)") ) (setq selblocpoteau (ssget "_x" (list (cons 0 "INSERT") (cons 2 "Poteau*")))) (if selblocpoteau (progn (setq i 0) (setq nbexp 0) (repeat (sslength selblocpoteau) (setq e (ssname selblocpoteau i)) (setq i (1+ i)) (command "_explode" e) ) (strcat "\n" (itoa (sslength selblocpoteau)) " BLOCS POTEAU ONT ETE DECOMPOSE(S)") ) (strcat "\nAUCUN BLOCS POTEAUS ONT ETE DECOMPOSE(S)") ) (princ) ) FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
(gile) Posté(e) le 9 avril 2021 Posté(e) le 9 avril 2021 Salut, Avec vlisp : (vlax-invoke (vlax-ename->vla-object (car (entsel))) 'Explode) renvoie la liste des entités (vla-object) après décomposition. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
PHILPHIL Posté(e) le 9 avril 2021 Auteur Posté(e) le 9 avril 2021 HELLO Gile comme d'hab SUPERRRR MERCI Phil FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
Luna Posté(e) le 9 avril 2021 Posté(e) le 9 avril 2021 Coucou, Lorsque tu parles de couches, parles-tu du calques ou bien c'est parce que tu as des imbrications de blocs ? Ensuite petite question à part mais, si l'on récupère la liste des objets après décomposition pour modifier leurs propriétés, cela signifie que l'on effectue cette même opération multipliée par le nombre de références de bloc, nan ? Je n'ai jamais travaillé sur des .dwg issus de revit ou archicad donc ces fameux "blocs" de murs, poutres, poteaux ont-ils plusieurs références dans le dessin par définition de blocs ou bien 1 définition de bloc = 1 référence de bloc ? Car s'il y a plusieurs références par définitions de blocs, cela serait peut-être moins chronophage de modifier les propriétés des objets depuis la définition de bloc pour ensuite exploser les références (donc les objets résultants auront tous la bonne propriété). Encore une fois, c'est uniquement une réflexion sur le temps d'exécution donc cela dépend uniquement du nombre de références de bloc par définition de blocs :3 Bisous, Luna
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