Aller au contenu

Messages recommandés

Posté(e)

Bonjour,

 

Je souhaite pouvoir récupérer dans un fichier excel la liste des blocs définis dans un ensemble de fichiers autocad.

 

Pour l'instant je n'ai trouvé des solutions que pour récupérer les blocs insérés dans le dessin...

 

La commande en ligne -bloc (avec ensuite les réponses ? puis *) permet de lister l'ensemble des blocs... mais j'aimerais automatiser le processus pour un ensemble de fichier et récupérer le tout dans un fichier excel ou similaire (cvs...).

 

Merci de votre aide.

 

Posté(e)

Le plus souvent tout est déjà plus ou moins fait par quelqu'un. Dans mon nettoyeur disponible en open source tu trouveras comment boucler dans la collection des blocs dans le module actions_blocs :

 

ça permet de le renomme en ajoutant un préfixe... à toi d'adapter. Si je peux me permettre un conseille fait un fichier cvs en respectant les standards car si un jour tu changes pour openoffice(même s'il sait lire les cvs mal construit) ou un l'autre logiciel, tu pourrais être gêné. En effet l'exportation en cvs d'EXCEL ne respecte pas les séparateurs.

 

Function modifier_nom_bloc()

Dim objBlock As AcadBlock

Dim IntN As Integer

Dim intJ As Integer

Dim strNom_bloc_ini As String

Dim strDebut As String

Dim strPrefixe As String

 

 

10 strModule = "actions_blocs"

20 strProcedure = "modifier_nom_bloc"

 

 

'si erreur aller dans la partie gestion :

 

30 On Error GoTo gestion

 

'Demande à l'utilisateur le nom pour le préfixe du bloc

40 strPrefixe = Nparametres.TB_nom_bloc.Text

50 If strPrefixe = "" Then

 

'ne rien faire

60 Else

 

 

'compter le nombre de lettre du préfixe

70 intJ = VBA.Len(strPrefixe)

 

 

 

'faire une boucle dans la collection des blocs

80 For Each objBlock In ThisDrawing.Blocks

 

 

 

'test pour savoir si le bloc est un Xref

90 If objBlock.IsXRef Then

100 Debug.Print "objBlock.Name", objBlock.Name, "objBlock.IsXRef", objBlock.IsXRef

 

110 Else

 

120 strNom_bloc_ini = objBlock.Name

 

'si les 12 permiers caractères du nom du bloc commence par...

130 Select Case VBA.Left(strNom_bloc_ini, 12)

 

'"*model_space ou "*paperspace"

Case "*Model_Space", "*Paper_Space"

'ne rien faire ce ne sont pas des blocs

 

'si non

140 Case Else

 

'récupérer le prefixe du bloc de la longueur du préfixe indiqué par l'utilisateur

150 strDebut = VBA.Left(strNom_bloc_ini, intJ)

 

'tester si le bloc possède déjà le préfixe

160 If strDebut <> strPrefixe Then

 

'si erreur lire la ligne suivante

170 On Error Resume Next

 

'Ajouter le préfixe au nom du bloc

180 objBlock.Name = strPrefixe & strNom_bloc_ini

 

'Si un bloc porte dejà ce nom bis

190 If Err.Number = "-2145386405" Then

 

 

'initialiser la variable pour le suffixe variable

200 IntN = 0

 

'Faire ça jusqu'à ce que ...

210 Do

 

'Effacement de l'enregistrement de l'erreur

220 Err.Clear

 

230 IntN = IntN + 1

'Ajouter le préfixe au nom du bloc + un suffixe incrémentiel pour éviter l'erreur si un bloc porte le nom du nom + le préfixe + intN-1

240 objBlock.Name = strPrefixe & strNom_bloc_ini & "_" & IntN

 

'...l'erreur enregistré sous "-2145386405" soit invalidée

250 Loop Until Err.Number <> "-2145386405"

 

260 End If 'Si un bloc porte dejà ce nom bis

 

270 Else

'DP "ne rien faire"

280 End If 'tester si le bloc possède déjà le préfixe

 

 

290 End Select

 

300 End If

310 Next objBlock

 

320 End If

 

330 Exit Function

 

gestion:

 

340 Call erreurs.gestion_erreur(Err.Number, Err.Description, strModule, strProcedure, Erl())

 

End Function

 

[code]

ATEGIE - Bureau d'Études Fluides

http://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.png

Exécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffrage

www.ategie.fr

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é