Aller au contenu

Les codes DXF : J\'pige\'kdal


Messages recommandés

Posté(e)

Quelqu'un pourrait m'expliquer comment on se sert des codes DXF ?

Je veux mettre un filtre pour selectionner que les textes et les MTextes mais :

 

Textmult : code de groupe =100

Text : code de groupe =100

Line :code de groupe =100

:(

 

et que fait-on quand il y a plusieurs codes ?

 

(MText) 71 Point d'attache :

 

1 = En haut à gauche ; 2 = En haut au centre ; 3 = En haut à droite

4 = Au milieu à gauche ; 5 = Au milieu au centre ; 6 = Au milieu à droite

7 = En bas à gauche ; 8 = En bas au centre ; 9 = En bas à droite

 

On les additionne ?

 

 

 

Nous n’ héritons pas de la terre de nos ancêtres.Nous l’empruntons à nos enfants.

Posté(e)

C'est le groupe 0 qui contient le type d'entité et no le code 100.

 

Mais en VBA, il n'y a pas d'interet à expliter le DXF, sachant qu'on est en programmation objet.

 

Enfin, à mon sens, je ne connais pas le VBA, sinon par le Vlisp.

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
  • 3 semaines après...
Posté(e)

En fait, en VBA, l'objet SelectionSet peut utiliser les GroupCodes. Comme Winfield a dit, le code à utiliser est le 0.

 

Voici une exemple qui recherche dans le dessin toutes les Layers utilisé...

 

Dim collCurrentLayers As New Dictionary

 

Dim LayerObj As IAcadLayer2

Dim SSet As AcadSelectionSet

 

Dim gpCode(0) As Integer

Dim dataValue(0) As Variant

 

Dim groupCode As Variant, dataCode As Variant

'-----------------------Code qui évite le problème du SelectionSet déjà existant.

For Each SSet In ThisDrawing.SelectionSets

If SSet.Name = "PerLayer" Then Exit For

Next SSet

If SSet Is Nothing Then

Set SSet = ThisDrawing.SelectionSets.Add("PerLayer")

End If

'-----------------------Code qui évite le problème du SelectionSet déjà existant.

 

collCurrentLayers.RemoveAll

Dim x As AcadObject

'-------------Building the dictionary of collCurrentLayers

For Each LayerObj In ThisDrawing.Layers

SSet.Clear

 

gpCode(0) = 8

dataValue(0) = LayerObj.Name

 

groupCode = gpCode

dataCode = dataValue

 

SSet.Select acSelectionSetAll, , , groupCode, dataCode

If SSet.COUNT > 0 Then

collCurrentLayers.Add LayerObj.Name, LayerObj

End If

Next LayerObj

SSet.Delete

'------------------------------------------------------

'------------Building the dictionary of StandardLayers

 

Donc ici, la variable "gpCode(0)" devrais avoir une valeur de "0",

et "dataValue(0)" devrais être le nom DXF des objects que tu cherche.

 

Malheureusement, je crois que tu devras faire un sélection pour chaque type d'objets que tu recherche. Je crois pas que tu puisses le faire en un coup....

 

J'espère que ça l'aide.

Apprentis-expert....

"The human mind, once stretched by a new idea, never regains its original shape."

Posté(e)

Merci pour tes explications.

 

........t'es sûr de n'être qu' "apprentis-expert" ? :P

 

 

Nous n’ héritons pas de la terre de nos ancêtres.Nous l’empruntons à nos enfants.

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é