CADxp: Excel vers AutoCAD : Bloc + Attributs - CADxp

Aller au contenu

  • 3 Pages +
  • 1
  • 2
  • 3
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

Excel vers AutoCAD : Bloc + Attributs

#1 L'utilisateur est hors-ligne   lecrabe 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 8099
  • Inscrit(e) : 10-décembre 03
  • LocationLoire (42)

Posté 12 juillet 2007 - 12:43

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]
0

#2 L'utilisateur est hors-ligne   Patrick_35 

  • ceinture rouge et blanche 8em dan
  • Groupe : Membres
  • Messages : 6358
  • Inscrit(e) : 06-janvier 03

Posté 12 juillet 2007 - 12:46

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
0

#3 L'utilisateur est hors-ligne   lecrabe 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 8099
  • Inscrit(e) : 10-décembre 03
  • LocationLoire (42)

Posté 12 juillet 2007 - 13:04


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"


0

#4 L'utilisateur est hors-ligne   Patrick_35 

  • ceinture rouge et blanche 8em dan
  • Groupe : Membres
  • Messages : 6358
  • Inscrit(e) : 06-janvier 03

Posté 12 juillet 2007 - 20:13

Citation

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
0

#5 L'utilisateur est hors-ligne   lecrabe 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 8099
  • Inscrit(e) : 10-décembre 03
  • LocationLoire (42)

Posté 13 juillet 2007 - 08:06


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"

0

#6 L'utilisateur est hors-ligne   speedy 

  • ceinture noire 1er dan
  • Groupe : Membres
  • Messages : 553
  • Inscrit(e) : 17-octobre 03

Posté 13 juillet 2007 - 09:04

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
0

#7 L'utilisateur est hors-ligne   lecrabe 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 8099
  • Inscrit(e) : 10-décembre 03
  • LocationLoire (42)

Posté 13 juillet 2007 - 10:28


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

0

#8 L'utilisateur est hors-ligne   Patrick_35 

  • ceinture rouge et blanche 8em dan
  • Groupe : Membres
  • Messages : 6358
  • Inscrit(e) : 06-janvier 03

Posté 13 juillet 2007 - 11:03

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 Patrick
Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.
Joseph Joubert, 1754-1824
0

#9 L'utilisateur est hors-ligne   speedy 

  • ceinture noire 1er dan
  • Groupe : Membres
  • Messages : 553
  • Inscrit(e) : 17-octobre 03

Posté 13 juillet 2007 - 11:13

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
0

#10 L'utilisateur est hors-ligne   Patrick_35 

  • ceinture rouge et blanche 8em dan
  • Groupe : Membres
  • Messages : 6358
  • Inscrit(e) : 06-janvier 03

Posté 16 juillet 2007 - 15:35

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
0

#11 L'utilisateur est hors-ligne   lecrabe 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 8099
  • Inscrit(e) : 10-décembre 03
  • LocationLoire (42)

Posté 16 juillet 2007 - 15:41


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"

0

#12 L'utilisateur est hors-ligne   lecrabe 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 8099
  • Inscrit(e) : 10-décembre 03
  • LocationLoire (42)

Posté 16 juillet 2007 - 15:57


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


0

#13 L'utilisateur est hors-ligne   Patrick_35 

  • ceinture rouge et blanche 8em dan
  • Groupe : Membres
  • Messages : 6358
  • Inscrit(e) : 06-janvier 03

Posté 16 juillet 2007 - 16:15

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
0

#14 L'utilisateur est hors-ligne   speedy 

  • ceinture noire 1er dan
  • Groupe : Membres
  • Messages : 553
  • Inscrit(e) : 17-octobre 03

Posté 17 juillet 2007 - 09:19

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
0

#15 L'utilisateur est hors-ligne   lecrabe 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 8099
  • Inscrit(e) : 10-décembre 03
  • LocationLoire (42)

Posté 17 juillet 2007 - 11:01


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"




0

#16 L'utilisateur est hors-ligne   Patrick_35 

  • ceinture rouge et blanche 8em dan
  • Groupe : Membres
  • Messages : 6358
  • Inscrit(e) : 06-janvier 03

Posté 17 juillet 2007 - 11:19

Salut

speedy

Citation

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

Citation

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

Citation

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

Citation

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.

Citation

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
0

#17 L'utilisateur est hors-ligne   lecrabe 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 8099
  • Inscrit(e) : 10-décembre 03
  • LocationLoire (42)

Posté 17 juillet 2007 - 12:19


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"




0

#18 L'utilisateur est hors-ligne   Patrick_35 

  • ceinture rouge et blanche 8em dan
  • Groupe : Membres
  • Messages : 6358
  • Inscrit(e) : 06-janvier 03

Posté 17 juillet 2007 - 12:32

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
0

#19 L'utilisateur est hors-ligne   lecrabe 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 8099
  • Inscrit(e) : 10-décembre 03
  • LocationLoire (42)

Posté 17 juillet 2007 - 12:42

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]
0

#20 L'utilisateur est hors-ligne   Patrick_35 

  • ceinture rouge et blanche 8em dan
  • Groupe : Membres
  • Messages : 6358
  • Inscrit(e) : 06-janvier 03

Posté 17 juillet 2007 - 12:53

Citation

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.

Citation

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
0

Partager ce sujet :


  • 3 Pages +
  • 1
  • 2
  • 3
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)