Aller au contenu

Messages recommandés

Posté(e)

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

Posté(e)

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

Posté(e)

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

Posté(e)

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

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é