winfield Posté(e) le 23 septembre 2005 Posté(e) le 23 septembre 2005 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 =100Text : code de groupe =100Line :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 à droite4 = Au milieu à gauche ; 5 = Au milieu au centre ; 6 = Au milieu à droite7 = 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.
Tramber Posté(e) le 23 septembre 2005 Posté(e) le 23 septembre 2005 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 ./__\. (.°=°.)
JFTxJ Posté(e) le 12 octobre 2005 Posté(e) le 12 octobre 2005 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."
winfield Posté(e) le 12 octobre 2005 Auteur Posté(e) le 12 octobre 2005 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.
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant