Aller au contenu

plusieurs blocs mais tous identiques ?


davidcad01

Messages recommandés

lors de réception de fichier dwg venant d'une conversion d'archicad ou revit architecture, je rencontre souvent le meme probleme.

 

De nombreux blocs (prenons l'exemple d'un arbre) ont des noms différents alors qu'ils sont tous identiques.

dans le cas de mon exemple, si mon plan possede 500 arbres identiques, ils y aura 500 blocs (arbre1, arbre2, arbre3...ect).

Toujours dans cet exemple, le probleme est que je me retrouve avec un fichier d'une taille disproportionnée et l'interet des blocs disparait alors car le dessin d'un arbre (par un archi) est souvent un modele complexe et pas seulement un cercle.

 

existe t'il un lisp qui sait reconnaitre quand plusieurs blocs ont la meme structure pour pouvoir n'en faire qu'un seul qui remplace les 500 existants (dans le cas de mon exemple)?

 

Merci pour vos réponses.

poser une question c'est prendre le risque de paraitre bete 5 minutes. ne pas en poser c'est prendre le risque de le rester toute sa vie.

Lien vers le commentaire
Partager sur d’autres sites

 

Hello

 

Gilles avait developpe en Juillet 2009 un truc un peu comparable

 

;; 07/2009 - par GC

;; Programme qui à partir d'une selection AutoCAD classique trouve

;; tous les blocs "*Uxxxxx" et les transforme en bloc BB_xxxxx par exemple !

;; avec question prealable du prefixe

;; Les blocs dynamiques inseres dans le dessin (pas ceux imbriques) sont epargnes.

 

Pour ton probleme, il faut avoir une version parfaitement adapte a ton besoin !

 

Questions :

Demande du prefixe des noms de blocs a traiter, par exemple : ARBRE*

Demande du nom de bloc final, par exemple : ARB

et on utilise bien sur le graphique du 1er bloc ARBRE* traite ...

 

On espere que TOUS ces blocs ont les memes attributs (si ils ont des attributs)

 

Voila ce que j'a compris de ton besoin ...

 

Le Decapode

 

 

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Tiens, tiens, cela me dit quelque chose ce problème blocs :cool:

 

Chez moi, ce n'était pas les arbres, mais les portes et fenêtres.

Il y en avait dans 200-300 blocs étalés sur pas loin de 150définitions.

 

En fait après avoir un peu regardé(à la main) des blocs identiques ayant

le même nom sous autocad avaient les mêmes propriétés (sauf le point d'insertion)

 

Le même bloc (visuellement) mais simplement pivoté ou en miroir générait

un bloc d'un autre nom.

 

Et là, c'est pas génial :(

Tous pour lisp, Lisp pour tous!

Avec Revit, cela ne vas trop vite...

Lien vers le commentaire
Partager sur d’autres sites

Merci Mr 10pieds (le crabe n'en a pas 8 ?).

 

Malheureusement le probleme est plus complexe.

 

Dans l'exemple d'un hopital (un des projets sur lequelle j'ai rencontré ce probleme)

 

Chaque dalle au sol (un rectangle donc) est un bloc. Chaque dalle est sur le meme calque et fait la meme dimension (d'ou l'interet d'un bloc)

Mais chaque dalle est en réalité un bloc différent.

J'ai donc 600 blocs qui s'appellent "dalleXX"

 

 

J'ai aussi 250 blocs "porteXX" ou 400 "baie vitréeXX"(Baignoires, douches, eviers, tables, chaises... toujours identiques mais systematiquement avec un nom de blocs différents et parfois meme imbriqué dans d'autres blocs !)

 

MAIS...

 

j'ai plusieurs type de porte quand meme 90cm de large pour certaines ou double porte ou porte vitrée... ect, et toutes s'appellent : "portesXX".

 

Ces blocs n'ont (pour la plupart) pas d'attributs.

ils sont en tout point similaire a l'exception de leur position et de leur noms (et parfois echelle rotation ou miroir)

 

Je ne pense pas etre le seul à rencontrer ce probleme car c'est un souci récurent que je rencontre avec différents architectes travaillants avec d'autre logiciel (archicad et autres ).

 

Le bipede.

poser une question c'est prendre le risque de paraitre bete 5 minutes. ne pas en poser c'est prendre le risque de le rester toute sa vie.

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir,

 

avec ce petit bout de lisp

 

(defun C:RBL ( / JEU I NbElt Bloc sNomBloc BlocLst)

(setq JEU (ssget (list (cons 0 "INSERT"))))

(setq NbElt (sslength JEU) I 0)

(repeat NbElt

(setq Bloc (ssname JEU I))

;SI c'est le 1er bloc, ALORS stocke son nom

(if (= I 0)

(progn

(setq sNomBloc (cdr (assoc 2 (entget Bloc))))

)

;SINON remplace son nom par celui stocké

(progn

(setq BlocLst (entget Bloc))

(setq BlocLst (subst (cons 2 sNomBloc) (assoc 2 BlocLst) BlocLst))

(entmod BlocLst)

)

)

(setq I (1+ I))

)

)

 

Sélectionne tous les blocs de même type et il prenne tous le nom du 1er bloc sélectionné.

 

Support Technique Covadis

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é