dr.loveless Posté(e) le 17 juin 2004 Posté(e) le 17 juin 2004 Salut, je cherche à modifer les attributs d'un cartouche. Le cartouche est déjà insérés, je veux modifiés les attributs pour effectuer un changement d'indice. Si j'écris le code ci-dessous, çà va me réinserer un cartouche : Private Sub cmdGrandFormat_Click()Dim objCartouche As AcadBlockReferenceDim PtInsert(0 To 2) As Double PtInsert(0) = 0: PtInsert(1) = 0: PtInsert(2) = 0 Set objCartouche = ThisDrawing.ModelSpace.InsertBlock(PtInsert, "R:\0-DAO-Gestion\Cartouches\04-Cartouche direct.dwg", 1, 1, 1, 0) objCartouche.GetAttributes(0).TextString = nomduplan1objCartouche.GetAttributes(1).TextString = nomduplan2objCartouche.GetAttributes(2).TextString = numerodaffaireobjCartouche.GetAttributes(3).TextString = TypedeplanobjCartouche.GetAttributes(4).TextString = numerodeplan Unload Me End Sub Le bouquin que j'ai ne m'en explique pas d'avantage, je veux seuleument modifier les attributs déjà dans le block. Merci Le DOC
didier Posté(e) le 17 juin 2004 Posté(e) le 17 juin 2004 Hello Le Doc sans amourdans l'exemple qui suitje créée un jeu de sélection,avec Filtre sur le nom du blocje place dans des variables ce que je trouve en valeurs d'attributs admettons qu'il existe uneUserform1avec desTEXTBOX ensuite, je place dans cette feuille, les valeurs extraites et j'affiche la feuillelà, tu remplaces, dans cette feuille, les valeurs que tu souhaites.ne pas oublier de mettre un bouton pour fermer la feuille,je reviens donc dans le VB,lecture des valeurs de la feuilleet mise à jour du bloc.voilà c'est fini Set ObjSset = ObjAcad.ActiveDocument.SelectionSets.Add("JEU_SEL")Codes(0) = 0: Valeurs(0) = "INSERT" Codes(1) = 2: Valeurs(1) = "NomDuBloc"Call ObjSset.SelectOnScreen(Codes, Valeurs)For Each Elem In ObjSset Array1 = Elem.GetAttributes Attribut1 = Array1(0).TextString Attribut2 = Array1(1).TextStringNextObjSset.Delete UserForm1.TextBox1.Value = Attribut1UserForm1.TextBox2.Value = Attribut2 UserForm1.Show Attribut1=Userform1.TextBox1.valueAttribut2=Userform1.TextBox2.value With ThisDrawing.Utility Array1(0).TextString = Attribut1 Array1(2).TextString = Attribut2 End Withen espérant avoir été explicatif,je t'en souhaite un bon usageamicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
dr.loveless Posté(e) le 17 juin 2004 Auteur Posté(e) le 17 juin 2004 Merci pour ces explicatifs, mais je ne vois pas comment l'adapter à mon probleme. En fait il y a déjà une userform dans lequel j'ai entré les nouvelles valeurs d'attributs. Quand je valide, je voudrais que çà me change directement les attributs, sans avoir à selectionner le bloc ( le bloc aura tjs le même nom). Le probleme que je rencontre, c'est que : dim obj cartouche as acadblock , alors je ne peux pas utiliser la fonction getattributesdim objcartocuhe as acadblcokreference, alors je peux utiliser la fonction getattribute, mais je n'arrive pas à selectionner mon objet via set : Set objCartouche = ThisDrawing.Blocks ("Cartouche") -> erreur C'est assez complexe, j'espère que tu auras compris sinon c'est pas grave, je bosserai sur plus sur la méthode que tu me proposes. Bonne nuit Le DOC
didier Posté(e) le 18 juin 2004 Posté(e) le 18 juin 2004 bonjouril y a une solution, si ton bloc estUNIQUEdans le fichier.c'est de créer un Jeu de Sélectionavec les filtres que je t'ai montrémais avec un SelectAllau lieu du SelectOnScreencomme çà, tu n'as pas à faire de sélection à l'écran.amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
dr.loveless Posté(e) le 18 juin 2004 Auteur Posté(e) le 18 juin 2004 Merci Didier, mon sauveur ;-) :D Le DOC
dockee Posté(e) le 29 octobre 2004 Posté(e) le 29 octobre 2004 bonjouril y a une solution, si ton bloc estUNIQUEdans le fichier.c'est de créer un Jeu de Sélectionavec les filtres que je t'ai montrémais avec un SelectAllau lieu du SelectOnScreencomme çà, tu n'as pas à faire de sélection à l'écran.amicalement Bonjour, Je souhaite savoir si il y a la possibilité d'accéder directement à un attribut quelqu'il soit dans un bloc en le sélectionnant directement en vba. Je parviens à le faire en lisp mais je n'aii pas la soluce en vba. d'avance merci. DOCKEE
cliclac20 Posté(e) le 3 novembre 2004 Posté(e) le 3 novembre 2004 Bonjour à tous... tous les exemples que j'ai pu voir pour la modification d'attributs d'un cartouche (par exemple) parle de création d'un tableau... Est-il possible de modifier les attributs d'un cartouche en partant de valeur se trouvant dans un tableau Excel ? Quelle serait la fonction ?
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