Aller au contenu

Excel vers AutoCAD : Bloc + Attributs


lecrabe

Messages recommandés

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

Lien vers le commentaire
Partager sur d’autres sites

  • Réponses 61
  • Créé
  • Dernière réponse

Meilleurs contributeurs dans ce sujet

Meilleurs contributeurs dans ce sujet

Images postées

Salut

Regarde LG qui est une légende générée depuis Excel avec comme base le nom du bloc, sa désignation, marque, ref

C'est une base de départ

 

@+

 

ps : 3mn, record à battre ;)

 

[Edité le 12/7/2007 par Patrick_35]

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

 

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 QUE

il faudrait l'imaginer avec 4 colonnes supplémentaires qui seraient par exemple:

X

Y

ECHELLE

ROTATION

 

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

Lien vers le commentaire
Partager sur d’autres sites

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érer

Cela 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 Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

 

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 bloc

BLOC_NOM (pour pouvoir changer de bloc)

BLOC_CALQUE (pour pouvoir changer de calque)

BLOC_X

BLOC_Y

BLOC_Z

BLOC_ROTATION

BLOC_ECHELLE (1 seul facteur d'échelle pour XYZ)

Attribut_1

Attribut_2

etc ...

 

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

Lien vers le commentaire
Partager sur d’autres sites

Bonjour

c'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

Lien vers le commentaire
Partager sur d’autres sites

 

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

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

Bonjour

Bon, 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 Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

 

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

Lien vers le commentaire
Partager sur d’autres sites

 

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

Lien vers le commentaire
Partager sur d’autres sites

La réponse est oui

Et le lisp est capable de gérer plusieurs fichiers Excel ainsi que plusieurs feuilles par fichier en un seul traitement

De plus, il est aussi inclus la possiblité de mise à jour (par le toggle Effacer les blocs déjà inséré)

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

Bonjour

Merci à Patrick_35 pour iXL, y aurait il le mode d'emplois pour le bon fonctionnement du lisp

j'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

Lien vers le commentaire
Partager sur d’autres sites

 

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 & ATT2

alors 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

Lien vers le commentaire
Partager sur d’autres sites

Salut

 

speedy

y aurait il le mode d'emplois pour le bon fonctionnement du lisp

Le 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 ensuite

Si 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é

 

lecrabe

Le 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 Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

 

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

Lien vers le commentaire
Partager sur d’autres sites

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 Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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 jamais

il 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 Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

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

 

 

Lien vers le commentaire
Partager sur d’autres sites

Lecrabe

Sur A2006

 

Speedy

C'est normal que rien ne se passe sur Excel. Le but est de lire les infos depuis Excel et de les importer vers autocad

La première colonne correspond au nom du bloc

La suivante au calque du bloc

Ensuite les coordonnées x y z

Ensuite à l'angle de rotation du bloc

Puis l'échelle du bloc

Et enfin les valeurs à mettre dans les attributs

La 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 Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Lien vers le commentaire
Partager sur d’autres sites

 

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

Lien vers le commentaire
Partager sur d’autres sites

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é