Boucler sur calques [Résolu] [VBA AutoCAD] - VB/VBA/VBS - Programmation
MarshPosté le 15-11-2011 à 14:36:27
Bonjour,
Je travaille actuellement sur une petite application sous AutoCAD 2011 (Hé oui! la dernière version prenant en charge le VBA, VB.NET pour les versions ultérieures).
Cela fait un petit moment que je bute sur un problème que voici: Je souhaite boucler sur la collection de calques à l'exception de celle des références externes (XREF).
J'arrive à boucler sur tous les calques du dessin courant, faisant appel la collection Layers, mais celle-ci renvoie également les calques des XREF. J'arrive aussi à boucler sur les calques des XREF, faisant appel à la collection Blocks et la méthode IsXref.
Ce que j'aimerais, c'est d'avoir la liste des calques sans les calques des XREF.
J'ai tenté de stocker dans une variable tableau la liste des noms de calques des XREF puis de la comparer à celle des noms de calques du dessin courant, mais là...c'est le drame!
Voici mon code:
Code :
Private Sub CommandButton1_Click()
'*****************************'
'* Déclaration des variables *'
'*****************************'
Dim MyLayer As AcadLayer
Dim MyBlock As AcadBlock
Dim i As Integer
Dim Message1 As String
Dim Message2 As String
Dim MyTab() As String
'Boucler sur les calques du dessin courant'
For Each MyLayer In ThisDrawing.Layers
Message1 = Message1 & MyLayer.Name & vbLf
Next MyLayer
MsgBox Message1, , "Liste des calques courants"
'Boucler sur les calques des XREF du dessin courant'
For Each MyBlock In ThisDrawing.Blocks
If MyBlock.IsXRef Then
ReDim MyTab(MyBlock.XRefDatabase.Blocks.Count)
For i = 0 To MyBlock.XRefDatabase.Blocks.Count - 1
Marsh Posté le 15-11-2011 à 14:36:27
Bonjour,
Je travaille actuellement sur une petite application sous AutoCAD 2011 (Hé oui! la dernière version prenant en charge le VBA, VB.NET pour les versions ultérieures).
Cela fait un petit moment que je bute sur un problème que voici:
Je souhaite boucler sur la collection de calques à l'exception de celle des références externes (XREF).
J'arrive à boucler sur tous les calques du dessin courant, faisant appel la collection Layers, mais celle-ci renvoie également les calques des XREF.
J'arrive aussi à boucler sur les calques des XREF, faisant appel à la collection Blocks et la méthode IsXref.
Ce que j'aimerais, c'est d'avoir la liste des calques sans les calques des XREF.
J'ai tenté de stocker dans une variable tableau la liste des noms de calques des XREF puis de la comparer à celle des noms de calques du dessin courant, mais là...c'est le drame!
Voici mon code:
Aidez-moi, s'il vous plaît! Merci.
Message édité par mmarle le 23-11-2011 à 15:16:58