CTZen Posté(e) le 27 octobre 2020 Partager Posté(e) le 27 octobre 2020 Bonjour à tous, J'ai décidé il y a peu de tester un peu le VBA dans AutoCAD (mon cerveau n'acceptant pas de comprendre le LISP ...). Je fais donc des petits essais ... et je suis donc confronté à des petits soucis ! En voici un premier ... peut-être saurez-vous m'aider ! Voici un bout de code : xSELECTION.Select acSelectionSetAll For I = 1 To xSELECTION.Count Set xSELECTIONNE = xSELECTION.Item(I - 1).Copy Next I En gros, j'ai défini un jeu de sélection xSELECTION qui sélectionne tout dans le dessin, et ensuite je fais une copy de chaque éléments présent dans mon jeu de sélection. Sauf que en faisant ceci, ça prend chaque item, et ça en fait un doublon à la même place ! Alors que j'aimerai que ça me le copie dans le presse-papier pour ensuite que je puisse le coller ou je veux ! J'ai beau fouiller le net, je n'arrive pas à trouver ... Une piste ? Merci AutoCAD Map 3D 2025 Covadis 18.3b + AutoPiste Windows 11 Famille v.24H2 - 64 bits Toujours à l'affût des bonnes astuces Lien vers le commentaire Partager sur d’autres sites More sharing options...
(gile) Posté(e) le 27 octobre 2020 Partager Posté(e) le 27 octobre 2020 Salut, Je ne t'aiderais pas en VBA (VB(A) me donne des boutons), mais pour copier des entités dans le presse-papier, AutoCAD utilise le mécanisme de la commande WBLOC en créant un fichier DWG temporaire dans un dossier Temp avec les objets sélectionnés et, éventuellement (Ctrl+Maj+C), le point de base. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD Lien vers le commentaire Partager sur d’autres sites More sharing options...
CTZen Posté(e) le 27 octobre 2020 Auteur Partager Posté(e) le 27 octobre 2020 Merci pour ta réponse rapide (Gile) ! C'est une très bonne piste ! Donc ... en ne voulant pas m'aider, tu m'as aidé ! ... je poursuis mes recherches en passant par WBLOC ! :) AutoCAD Map 3D 2025 Covadis 18.3b + AutoPiste Windows 11 Famille v.24H2 - 64 bits Toujours à l'affût des bonnes astuces Lien vers le commentaire Partager sur d’autres sites More sharing options...
Curlygoth Posté(e) le 30 octobre 2020 Partager Posté(e) le 30 octobre 2020 Je ne t'aiderais pas en VBA (VB(A) me donne des boutons...A ce point ? x)Ne sois pas si allergique, il a peut être eu des bons exemples ;-p En gros, j'ai défini un jeu de sélection xSELECTION qui sélectionne tout dans le dessin, et ensuite je fais une copy de chaque éléments présent dans mon jeu de sélection. En gros, tu veux copier chaque Objet de ton dessin ? (vu que tu sélectionnes tout) ?tu peux envoyer des objet vers un autre dessin si tu veux (en un créant un). Mon site Web (en cours de construction) : Site DA-CODE de @didier Lien vers le commentaire Partager sur d’autres sites More sharing options...
CTZen Posté(e) le 31 octobre 2020 Auteur Partager Posté(e) le 31 octobre 2020 Ne sois pas si allergique, il a peut être eu des bons exemples ;-pEn effet, tu as su me montrer que VBA permettait plein de chose ! :P En gros, tu veux copier chaque Objet de ton dessin ? (vu que tu sélectionnes tout) ?tu peux envoyer des objet vers un autre dessin si tu veux (en un créant un). En fait j'aimerai que ça fonctionne comme un copié > Collé, c'est à dire qu'au moment de coller, je puisse voir un aperçu de ce que je colle avant de cliquer sur la position.Pour le moment j'ai pu me débrouiller avec des SendCommand "_Aiselectall" suivi d'une command Copier/Coller, mais forcement si il y a des objet que je ne souhaite pas récupérer ... je l'ai dans l'os ! Après je pose la question c'est à titre informatif, pas spécialement pour faire quelque chose de particulier, c'est surtout pour m'entrainer et apprendre la VBA. AutoCAD Map 3D 2025 Covadis 18.3b + AutoPiste Windows 11 Famille v.24H2 - 64 bits Toujours à l'affût des bonnes astuces Lien vers le commentaire Partager sur d’autres sites More sharing options...
Curlygoth Posté(e) le 2 novembre 2020 Partager Posté(e) le 2 novembre 2020 pour apprendre le VBA la base c'est Excel ^^ (les Methodes sont bien plus simple et tu trouveras beaucoup plus d'aide)pour autocad le VBA est moins intuitif mais une fois que je gérera bien sur excel tu verras q'uil n'y aura plus beaucoup de difficulté faut connaitre autocad par coeur par contre en anglais c'est un plus ;-) moi si je devais copier coller en vba d'un dessin à un autre, je ferais surement la methode de gile en VBA ensuite du pete le bloc et tu as tes objet.sinon tu crées un groupe que tu passes a un autre dessin ;-) un peu comme quand tu copies une shape d'un tableur execl à un autre ^^ Mon site Web (en cours de construction) : Site DA-CODE de @didier Lien vers le commentaire Partager sur d’autres sites More sharing options...
Curlygoth Posté(e) le 18 novembre 2020 Partager Posté(e) le 18 novembre 2020 Bon allez je te donne la réponse :pour copier tous les éléments ton dessin Dim obj_crea_bloc() As AcadEntity 'Liste d'objet à définir Dim ssetObj As AcadSelectionSet '1 seule et unique sélection redim preserve obj_crea_bloc(ThisDrawing.ModelSpace.Count - 1) 'OUi désolé je redimensionne toujours sois avant sois pendant mais pour l'exemple on va faire ça facile 'Tu créés ta sélection : Set ssetObj = ThisDrawing.SelectionSets.Add("WBLOCKSET") For obj = 0 To ThisDrawing.ModelSpace.Count - 1 Set obj_crea_bloc(obj) = ThisDrawing.ModelSpace.Item(obj) 'tu mes dans ta liste tes objets à mettre dedans on ne les copie pas ! next obj 'et ensuite tu ajoutes ta liste (d'objets) à ta selection : ssetObj.AddItems obj_crea_bloc et paf sa te donne une selection...par contre je ne sais pas à quoi ça te sert ou à quoi ça sert tout court (à part créer des blocs via des fichiers qui sont par définition déjà des blocs XD)où éventuellement sauvegarder une sélection mais à quoi bon ?après si c'est pour la création de bloc en pagaille pourquoi pas XD Mon site Web (en cours de construction) : Site DA-CODE de @didier Lien vers le commentaire Partager sur d’autres sites More sharing options...
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