lecrabe Posté(e) le 12 juillet 2007 Posté(e) le 12 juillet 2007 Hello J'ai farfouillé sur ce forum sans vraiment trouver ce que je voulais ... J'ai un tableau Excel avec différentes colonnes dont par exemple:X , Y, Code_Produit, Type_Produit, Infos_1, Infos_2( En fait il y a N colonnes qui vont correspondre à N attributs ) Et je désire insérer automatiquement dans mon dessin AutoCAD un bloc symbole au point X & Y avec N attributs correspondants aux N colonnes du tableau Excel ! Je ne désire AUCUNE associativité entre Excel et AutoCAD, car c'est le tableau Excel qui va générer (ou plutôt enrichir) à un instant T un DWG AutoCAD. J'ai déjà pas mal tripatouillé le tableau Excel, généré un CSV, modifié avec un éditeur de texte le CSV pour obtenir un Script (SCR) correct mais c'est UN PEU long et pénible ! Je suis sur qu'un programme DVB dans AutoCAD ou en VB dans Excel pourrait surement me générer directement le DWG ou sinon le fichier SCR correct !! SVP auriez vous qq chose qui me conviennent que je puisse éventuellement modifier (si c'est pas compliqué) car je suis très mauvais en programmation Lisp / DVB / VB / etc ... Merci d'avance de votre aide, Le Decapode (scriptant actuellement) PS: Je viens de changer le titre du sujet pour qu'il soit plus explicite ! [Edité le 15/7/2007 par lecrabe] Autodesk Expert Elite Team
Patrick_35 Posté(e) le 12 juillet 2007 Posté(e) le 12 juillet 2007 SalutRegarde LG qui est une légende générée depuis Excel avec comme base le nom du bloc, sa désignation, marque, refC'est une base de départ @+ ps : 3mn, record à battre ;) [Edité le 12/7/2007 par Patrick_35] Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
lecrabe Posté(e) le 12 juillet 2007 Auteur Posté(e) le 12 juillet 2007 Hello Patrick Tout d'abord merci pour ta réponse ultra-rapide :) J'avais repéré ton LG mais il me semble un peu éloigné de mes besoins du moins pour mes faibles connaissances en programmation ! :exclam: Le tableau Excel fourni en exemple me va tout à fait SAUF QUEil faudrait l'imaginer avec 4 colonnes supplémentaires qui seraient par exemple:XYECHELLEROTATION Pour moi, l'echelle sera toujours la même en XYZ donc UN SEUL champ est suffisant ! Que l'on utiliserait pour insérer le bloc/symbole (Confère la colonne NOM BLOC) avec les N attributs (DESIGNATION, MARQUE, REF, QT) ou autres colonnes .. Sous-entendu le bloc/symbole avec N attributs est DEJA présent dans le DWG SVP un fait un "LG" un peu spécial serait parfait ! Si bien sur (dans un moment de folle générosité) tu as un peu de temps pour le modifier ! Le Decapode "un peu chiant, je sais" Autodesk Expert Elite Team
Patrick_35 Posté(e) le 12 juillet 2007 Posté(e) le 12 juillet 2007 Si bien sur (dans un moment de folle générosité) tu as un peu de temps pour le modifier ! Ca dépend, ça dépend. Rien n'est gratuit en ce bas monde ;) Je suis en train de réflechir à une solution. Plutôt que d'utiliser LG, je pense me servir de LXL et de l'adapter à tes besoins.Je rajouterai une colonne afin de donner le nom du bloc à insérerCela risque de prendre un peu de temps à faire car je n'ai justement pas trop de temps, mais j'y pense.Je pense qu'il pourrait aussi être util pour des points topo. @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
lecrabe Posté(e) le 13 juillet 2007 Auteur Posté(e) le 13 juillet 2007 Hello Patrick En effet je pense que ce genre de programme pourrait être utile à de nombreux utilisateurs d'AutoCAD / MAP / CIVIL / A D T :) Si tu fais un nouveau programme "plus généraliste", je suggère le mini-cahier des charges suivant : Colonnes "nécessaires" dans Excel pour l'insertion du blocBLOC_NOM (pour pouvoir changer de bloc)BLOC_CALQUE (pour pouvoir changer de calque)BLOC_XBLOC_YBLOC_ZBLOC_ROTATIONBLOC_ECHELLE (1 seul facteur d'échelle pour XYZ)Attribut_1Attribut_2etc ... Les titres des colonnes sont exclusivement basées sur des lettres / chiffres et "_" *** C'est la 1ere ligne IMPERATIVE du tableau Excel *** *** Lignes 2-N , c'est les données (Valeurs exclusivement) *** Sachant qu'il peut y avoir 0-N attributs et que le / les blocs / symboles sont déjà insérés dans le DWG et qu'ils ont TOUS le BON et MEME nombre d'attributs nécessaires ! Le tableau Excel va permettre de générer / enrichir un DWG AutoCAD ... Il n'y a pas d'associativité entre le tableau Excel et le DWG AutoCAD Le Decapode "CCTP" Autodesk Expert Elite Team
speedy Posté(e) le 13 juillet 2007 Posté(e) le 13 juillet 2007 Bonjourc'est pas mal l'idée de lecrabe, peut être rajouté les handles des blocs pour pour peut être pouvoir les mettre à jour sans erreur. pour l'instant j'arrive à impoter les blocs et attributs mais pour les exporter vers autocad pas évident qand j'ai plus N attributs j'ai parfois des surprises... @+ Michel a
lecrabe Posté(e) le 13 juillet 2007 Auteur Posté(e) le 13 juillet 2007 Hello Speedy Je ne vois pas du tout ce que vient faire ici la notion de handle (ou code maintien) puisque c'est les données provenant de Excel qui vont générer les insertions de blocs avec/ sans attributs ! Les Handles sont créés (et controlés) à la volée par AutoCAD lors des Insertions donc ... Ou alors tu désires peut être que après le traitement le programme Lisp / V-Lisp revienne mettre à jour le tableau Excel en remplissant APRES COUP par exemple une colonne nommée HANDLE Alors là, ce serait "tip-top" car on aurait un lien 1-1 entre le tableau Excel et les blocs pour faire d'autres traitements et envisager des mises à jour des blocs et surtout des attributs depuis Excel !! Mais à mon avis, ce serait dans un 2eme temps ... Si on peut dire ! Le Decapode Autodesk Expert Elite Team
Patrick_35 Posté(e) le 13 juillet 2007 Posté(e) le 13 juillet 2007 Pas besoins des handles dans excel. J'y ai aussi pensé.Les handles seront indiqués dans la base du dessin pour pouvoir effectuer les mises à jour. @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
speedy Posté(e) le 13 juillet 2007 Posté(e) le 13 juillet 2007 cest bien sur cette idée que j'ai parlé de handle des blocs, j'aimerais bien pouvoir importer des blocs vers excel les traités et ensuite mettre à jour dans autocad vous avez raison tous les deux,pour exporter vers autocad pas de besoin de handle. Commençons par pouvoir exporter la liste des blocs et attributs vers autocad, on verra ensuite pour la mise à jour........ @+ Michel a
Patrick_35 Posté(e) le 16 juillet 2007 Posté(e) le 16 juillet 2007 BonjourBon, bah le lisp IXL est fait. Ca a été plus rapide que je ne l'aurai cru :)Il ne vous reste plus qu'a le tester à fond ps : j'y ai aussi mis un fichier excel comme exemple @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
lecrabe Posté(e) le 16 juillet 2007 Auteur Posté(e) le 16 juillet 2007 Hello Patrick Ne t'en fais pas, Le Decapode va te le décortiquer ton programme et le tester dans tous les sens et avec de multiples versions d'AutoCAD (2002-2007) mais pas avec la 2008 car je ne peux pas y accéder avant longtemps ! Encore merci, je vais essayer de commencer les tests ce soir ... Le Decapode "tout content" Autodesk Expert Elite Team
lecrabe Posté(e) le 16 juillet 2007 Auteur Posté(e) le 16 juillet 2007 ReHello A propos ce programme peut-il bien générer de multiples blocs (de noms différents) sur de multiples calques différents comme le laisse penser le tableau Excel fourni et/ou mon micro CCTP ? Le Decapode "qui frétille" et remercie bien bas Patrick_35 Autodesk Expert Elite Team
Patrick_35 Posté(e) le 16 juillet 2007 Posté(e) le 16 juillet 2007 La réponse est ouiEt le lisp est capable de gérer plusieurs fichiers Excel ainsi que plusieurs feuilles par fichier en un seul traitementDe plus, il est aussi inclus la possiblité de mise à jour (par le toggle Effacer les blocs déjà inséré) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
speedy Posté(e) le 17 juillet 2007 Posté(e) le 17 juillet 2007 BonjourMerci à Patrick_35 pour iXL, y aurait il le mode d'emplois pour le bon fonctionnement du lispj'ajoute le fichier xls, doit il rester fermer ou ouvert, et comment extraire les blocs vers ce fichier après modif du fichier excel remettre à jour... Merci encore @+ Michel a
lecrabe Posté(e) le 17 juillet 2007 Auteur Posté(e) le 17 juillet 2007 Hello Patrick J'ai des soucis pour le faire fonctionner ce magnifique programme ! J'ai seulement 2 colonnes d'attributs dans Excel (pour le moment) nommées: ATT1 & ATT2alors que le nom de mes étiquettes d'attributs dans mes blocs est DIFFERENT ! Le nom de mes étiquettes DOIT-IL être le MEME que celui des colonnes correspondantes dans le tableau Excel (1ère ligne en fait) ? Ton tableau XLS de démonstration est fourni avec 6 attributs ...Cela veut-il dire que les blocs doivent avoir AUSSI 6 attributs ? Le programme se casse la figure juste après l'insertion du 1er bloc ! Le Decapode "frétillant" Autodesk Expert Elite Team
Patrick_35 Posté(e) le 17 juillet 2007 Posté(e) le 17 juillet 2007 Salut speedyy aurait il le mode d'emplois pour le bon fonctionnement du lispLe CCTP de Lecrabe me parait assez clair, et j'ai aussi joint un fichier d'exemple avec la ligne 1 qui indique ce que doivent contenir les cellules doit il rester fermer ou ouvert, et comment extraire les blocs vers ce fichier après modif du fichier excel remettre à jour...Que le fichier soit ouvert ou pas, cela n'a pas d'importance. Le lisp sait faire la différence et ouvre le fichier si nécessaire pour le fermer ensuiteSi tu as une mise à jour à faire, tu cliques sur le bouton traitement et si tu ne souhaites pas conserver l'ancienne implantation, veille à ce que le toggle soit bien activé lecrabeLe nom de mes étiquettes DOIT-IL être le MEME que celui des colonnes correspondantes Non, c'est l'ordre des attributs qui est important. 1er attribut = 1ere colonne et ainsi de suite Ton tableau XLS de démonstration est fourni avec 6 attributs ...Oui, et on peut en mettre autant que l'on désire.Le lisp regarde à partir de la colonne H s'il y à un attribut. Si oui, il regarde la colonne suivante et ainsi de suite. Le programme se casse la figure juste après l'insertion du 1er bloc !Et quel est le message d'erreur ? ps : lors d'un traitement, le lisp peut donner une multitude d'indications pour indiquer les erreurs éventuelles @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
lecrabe Posté(e) le 17 juillet 2007 Auteur Posté(e) le 17 juillet 2007 Hello Patrick Qq indications ... Je suis avec un AutoCAD 2005 - Il insère le 1er bloc mais pas sur le bon calque (Il reste sur le calque courant) ni avec les attributs remplis (Mes 2 attributs restent avec ZERO, valeur par défaut) L'erreur est:Traitement en cours... |; erreur: type d'argument incorrect: stringp 1.0 J'ai changé le nom du 1er bloc dans Excel et il change BIEN de bloc à l'insertion ! Donc pour le moment, il respecte:Nom du bloc, X, Y, Z, Echelle, Rotation et c TOUT et ne traite que la 1ere ligne UTILE du tableau Excel ! Cela peut-il t'aider ? Le Decapode "enquêtant" Autodesk Expert Elite Team
Patrick_35 Posté(e) le 17 juillet 2007 Posté(e) le 17 juillet 2007 Ok, j'ai compris.Le nom du calque ne dois pas être numérique dans Excel.Un bug à corriger ;) Le déroulement du lisp est le suivant.J'insère le bloc sur le calque courant, je le change de calque et ensuite je remplis les attributs @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
lecrabe Posté(e) le 17 juillet 2007 Auteur Posté(e) le 17 juillet 2007 Hello Patrick J'ai mis en numérique ma colonne dans Excel et d'autre part mon nom de calque est bien numérique mais ça plante toujours ! Ou alors tu dois modifier ton programme ... J'ose espérer que je pourrais (ou plutôt nous pourrons) utiliser des noms de calques alpha-numeriques ... Au fait SVP, tu fais bien une création automatique du calque si jamais il n'existe pas DEJA dans le DWG svp ( _-LAYER _MAKE nom_du_calque ) ! Le Decapode [Edité le 17/7/2007 par lecrabe] Autodesk Expert Elite Team
Patrick_35 Posté(e) le 17 juillet 2007 Posté(e) le 17 juillet 2007 mon nom de calque est bien numérique C'est bien ce que je disais. Il ne devait pas être en numérique ;) Le bug a été corrigé et le lien mis à jour. Au fait SVP, tu fais bien une création automatique du calque si jamaisil n'existe pas DEJA dans le DWG svp ( _-LAYER _MAKE nom_du_calque ) !Oui @+ [Edité le 17/7/2007 par Patrick_35] Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
lecrabe Posté(e) le 17 juillet 2007 Auteur Posté(e) le 17 juillet 2007 Hello Patrick TIP-TOP ça marche super ... :) :D :cool: Je le teste sur AutoCAD 2005 et toi tu l'as testé avec quelle version ? Comme ça je vais tester sur d'autres versions ... Le Decapode "testeur" Autodesk Expert Elite Team
speedy Posté(e) le 17 juillet 2007 Posté(e) le 17 juillet 2007 C'est pour ça que j'avais demandé le mode d'emplois, j'ai suivi le format des colonnes et quand je fais ''lancer le traitement'' il bouigue mais rien ne change dans excel et dans autocad il trouve les cellules excel mais rien ne se passe..... est ce que ixl peut extraire lui même les attributs ?, j'avais essayé dans une page vierge ne fait rien. @+ Merci Michel a
Patrick_35 Posté(e) le 17 juillet 2007 Posté(e) le 17 juillet 2007 LecrabeSur A2006 SpeedyC'est normal que rien ne se passe sur Excel. Le but est de lire les infos depuis Excel et de les importer vers autocadLa première colonne correspond au nom du blocLa suivante au calque du blocEnsuite les coordonnées x y zEnsuite à l'angle de rotation du blocPuis l'échelle du blocEt enfin les valeurs à mettre dans les attributsLa lecture du fichier se fera toujours à partir de la ligne 2 jusqu'a la la première ligne vierge rencontré (ou du moins, à la lecture de la cellule A...) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
lecrabe Posté(e) le 17 juillet 2007 Auteur Posté(e) le 17 juillet 2007 Hello vaillants CADXPiens Le magnifique programme développé et testé par Patrick_35 sur AutoCAD 2006 est FULL opérationnel ! :) :D :cool: Je l'ai testé et validé sur AutoCAD version 2002 / 2004 / 2005 / 2007 ... Si quelqu'un pouvait le tester sur AutoCAD 2008, ce serait parfait ! Il permet à partir d'un tableau Excel dont la 1ere ligne reprend en fait les caractéristiques d'Insertion d'un bloc / symbole : nom du bloc, nom du calque d'insertion, x, y, z, angle, echelle, attribut_1, attribut_2, etc et dont les lignes 2-N sont en fait les données de générer AUTOMATIQUEMENT un DWG avec les blocs voulus, à la bonne position et avec les attributs correctement remplis Sous_entendu: le ou les bloc(s) / symbole(s) avec le bon nombre d'attribut (le MEME pour tous) sont déjà insérés dans le DWG ou bien accessible(s) à travers les chemins de SUPPORT ! La Félicité et le Bonheur suprême seront octroyés à notre exceptionnel Patrick_35 Je pense que ce programme sera très utile pour certains d'entre nous ... Le Decapode "heureux" Autodesk Expert Elite Team
speedy Posté(e) le 17 juillet 2007 Posté(e) le 17 juillet 2007 Merci Patrick_35 j'ai finalement compris la méthode, ça fonctionne avec 2007par contre ça ne met pas à jour quand les blocs sont insérés, c'est pour ça que je ne comprenais pas........................... longue vie à iXl .............. @+ Michel a
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