CADxp: Import/Export d\'attributs avec Excel - CADxp

Aller au contenu

  • 4 Pages +
  • 1
  • 2
  • 3
  • Dernière »
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

Import/Export d\'attributs avec Excel

#1 L'utilisateur est hors-ligne   (gile) 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 10944
  • Inscrit(e) : 02-septembre 05

Posté 01 juin 2011 - 17:08

Salut,


Un petit programme qui permet d'extraire des attributs et de ré-importer les valeurs modifiées un peu comme les commandes ATTIN et ATTOUT des Express Tools à ceci près qu'il utilise directement Excel plutôt qu'un fichier .txt et que les attributs des blocs dynamiques apparaissent sous le nom du bloc d'origine.


La classe Commands définit les commandes : EATT pour l'extraction et IATT pour l'importation. D'après mes tests elles fonctionnent sans encombres avec Excel 2003 et 2010.


Ces commandes utilisent trois classes qui peuvent être utilisées par ailleurs. ExcelReader et ExcelWriter définissent des méthodes pour lire et écrire dans une feuille Excel un peu à la manière des StreamReader et StreamWriter avec les fichiers texte. Par ailleurs des propriétés sont aussi définies dans ces classes pour accéder au fichier.

Pour assurer une compatibilité avec toutes les versions d'Excel, ces classes utilisent la "liaison tardive" (late binding).

Une autre classe : LateBindings définit des méthodes pour rendre la syntaxe des expressions de liaison tardive plus concises et explicites.


Les codes source.


Nouvelle version 2010-2012 ExcelAttribute.zip
Version 2013-? ExcelAttribute_19.zip
Extraire les deux DLLs correspondant à la version d'AutoCAD ciblée dans le même répertoire.
Charger dans AutoCAD avec NETLOAD ExcelAttribute.dll ou ExcelAttribute_19.dll suivant la version d'autoCAD (ExcelLateBinding.dll ou ExcelDynamic.dll sont des DLLs de ressources).
Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
Image IPB
0

#2 L'utilisateur est hors-ligne   fabcad 

  • ceinture noire 1er dan
  • Groupe : Membres
  • Messages : 800
  • Inscrit(e) : 23-décembre 02

Posté 01 juin 2011 - 19:27

Merci Gile,

Je n'arrive pas à me connecter avec le site acadlabs, je ne comprends pas leur système de connexion.

Dommage,

Fabcad
0

#3 L'utilisateur est hors-ligne   SupportCova 

  • ceinture marron
  • Groupe : Membres
  • Messages : 223
  • Inscrit(e) : 26-mai 04

Posté 01 juin 2011 - 19:43

Bonjour,

un petit souci. J'ai un message d'erreur lors de l'import

eUnknownHandle
à Autodesk.AutoCAD.DatabaseServices.Database.GetObjectId(Boolean
createIfNotFound, Handle objHandle, Int32 identifier)
à ExcelAttribute.Commands.ImportAttributes()

L'erreur semble provenir de certains Handle mal interprété : par ex j'ai un Handle valant 8E7 qui une fois mis sous Excel est considéré comme 8.00000E+07 soit 80000000

Je pense qu'il faudrait forcer les cellules des Handle au format Texte ou les faire précéder de l'apostrophe comme avec ATTOUT

Olivier
Support Technique Covadis
0

#4 L'utilisateur est hors-ligne   (gile) 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 10944
  • Inscrit(e) : 02-septembre 05

Posté 01 juin 2011 - 22:41

Merci pour le retour SuperCova.

J'ai corrigé le code en forçant toutes les colonnes utilisée au format Texte comme ça les attributs du style "002" sont conservés aussi.


Fabcad,

Si tu n'arrives pas à te connecter à AcadLabs, j'ai ajouté les codes source en téléchargement dans le premier message.
Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
Image IPB
0

#5 L'utilisateur est hors-ligne   (gile) 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 10944
  • Inscrit(e) : 02-septembre 05

Posté 02 juin 2011 - 10:22

Nouvelle version : ajout d'une méthode ReadToEnd() à la classe ExcelReader.
Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
Image IPB
0

#6 L'utilisateur est hors-ligne   lili2006 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 11789
  • Inscrit(e) : 21-décembre 05

Posté 02 juin 2011 - 12:05

Bonjour à toutes et tous,

J'ai testé sur un plan d'armatures assez complet, pas de bug apparent,..(Dans les deux sens)

Testé avec Excel 2007, nickel !

Merci Gilles pour ce superbe outil :P
AutoCAD MAP 3D 2018 - Covadis 16.0d
Forum : http://genie-civil.bbactif.com/
0

#7 L'utilisateur est hors-ligne   lili2006 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 11789
  • Inscrit(e) : 21-décembre 05

Posté 02 juin 2011 - 13:57

Re,

Après quelques autres tests sur Excel 2007, plantage systématique du logiciel Excel, Mais les modifs sont bien prisent en compte,... :exclam:
AutoCAD MAP 3D 2018 - Covadis 16.0d
Forum : http://genie-civil.bbactif.com/
0

#8 L'utilisateur est hors-ligne   (gile) 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 10944
  • Inscrit(e) : 02-septembre 05

Posté 02 juin 2011 - 14:07

Citation

Re,

Après quelques autres tests sur Excel 2007, plantage systématique du logiciel Excel, Mais les modifs sont bien prisent en compte,... :exclam:


Peux tu préciser :
Avec EATT ou IATT ?
Comment se manifeste ce "plantage systématique du logiciel Excel" ?
Excel est-il ouvert avant le lancement de la commande ?
Si oui, le fichier .xls(x) ouvert est-il celui lié au dessin ?
Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
Image IPB
0

#9 L'utilisateur est hors-ligne   (gile) 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 10944
  • Inscrit(e) : 02-septembre 05

Posté 02 juin 2011 - 15:01

Nouvelle version : le forçage des cellules au format Texte est directement effectué dans ExcelWriter.Write() et ExcelWriter.WriteLine() quand la donnée en entrée est une chaîne (String).
Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
Image IPB
0

#10 L'utilisateur est hors-ligne   lili2006 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 11789
  • Inscrit(e) : 21-décembre 05

Posté 02 juin 2011 - 15:15

Re,

Je n'ai pas reproduit le phénomène !!! :o

Plutôt lié à mon PC ?

Je ne sais pas,...

Pour conclure sur le second exemple de la vidéo, l'export et l'import fonctionne à merveille,...

Je ne peux donc en dire plus pour le moment,...
AutoCAD MAP 3D 2018 - Covadis 16.0d
Forum : http://genie-civil.bbactif.com/
0

#11 L'utilisateur est hors-ligne   (gile) 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 10944
  • Inscrit(e) : 02-septembre 05

Posté 02 juin 2011 - 15:49

D'après ce que tu décris, le problème viendrait plutôt d'Excel.
Au moment où on propose d'ouvrir/afficher le fichier Excel l'extraction a été faite et enregistrée et d'après ce que tu dis, c'est au moment d'enregistrer des modifications que ça plante à ce moment là la commande EATT est terminée.
Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
Image IPB
0

#12 L'utilisateur est hors-ligne   lili2006 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 11789
  • Inscrit(e) : 21-décembre 05

Posté 02 juin 2011 - 15:52

Re,

Vraisemblablement !

Entre temps, je n'ai pas reproduit d'erreurs,...

Citation

l'extraction a été faite et enregistrée
c'est au moment d'enregistrer des modifications que ça plante


En effet !

Merci encore, :D
AutoCAD MAP 3D 2018 - Covadis 16.0d
Forum : http://genie-civil.bbactif.com/
0

#13 L'utilisateur est hors-ligne   Bred 

  • ceinture noire 5em dan
  • Groupe : Membres
  • Messages : 2720
  • Inscrit(e) : 07-mars 06
  • LocationAntibes

Posté 03 juin 2011 - 10:02

Salut,
j'ai testé rapidement, ça m'a l'air OK.
ça n'a pas l'air de prendre les attributs invisibles ou sur calques gelés, non ?
Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
0

#14 L'utilisateur est hors-ligne   (gile) 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 10944
  • Inscrit(e) : 02-septembre 05

Posté 03 juin 2011 - 11:25

Citation

ça n'a pas l'air de prendre les attributs invisibles ou sur calques gelés, non ?


Chez moi les attributs invisibles ou sur des calques gelés sont traités comme les autres.
Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
Image IPB
0

#15 L'utilisateur est hors-ligne   Bred 

  • ceinture noire 5em dan
  • Groupe : Membres
  • Messages : 2720
  • Inscrit(e) : 07-mars 06
  • LocationAntibes

Posté 03 juin 2011 - 16:14

... ah ouaip, désolé !
En fait je pense plutôt que c'est les attributs fixes que ça ne prends pas, non ?
(j'ai des blocs avec attributs, et il ne les sélectionne pas).
Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...
0

#16 L'utilisateur est hors-ligne   Steven 

  • ceinture rouge et blanche 6em dan
  • Groupe : Membres
  • Messages : 3412
  • Inscrit(e) : 03-mars 03
  • LocationDans le TARDIS

Posté 02 novembre 2011 - 10:13

Salut à tous.

Je viens de charger le programme, je souhaite l'essayer sur un fichier pour extraire les attributs de blocs mais lorsque je lance la commande EATT, en retour j'ai: Pas encore d'association d'attributs et je ne peux rien sélectionner.
J'ai 94 blocs avec attributs à extraire
Je ne comprends pas bien, là :blink:
Steven________________________________________
Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD.
Pour la maison; Linux Mint et pas de problèmes. Mais pas d'AutoCAD.
En rêve; AutoCAD sous Linux.
0

#17 L'utilisateur est hors-ligne   lili2006 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 11789
  • Inscrit(e) : 21-décembre 05

Posté 02 novembre 2011 - 11:40

Voir le messageSteven, le 02 novembre 2011 - 10:13 , dit :

Salut à tous.

Je viens de charger le programme, je souhaite l'essayer sur un fichier pour extraire les attributs de blocs mais lorsque je lance la commande EATT, en retour j'ai: Pas encore d'association d'attributs et je ne peux rien sélectionner.
J'ai 94 blocs avec attributs à extraire
Je ne comprends pas bien, là :blink:


Bonjour à toutes et tous,

!!!!!!!!!!

Même sur un nouveau fichier (vierge, donc,), je peux appeler la commande,...:unsure: Et toi ?

Citation

Commande: eatt

Choix des objets: Spécifiez le coin opposé: 0 trouvé(s)
Choix des objets:


Au chargement d'un nouveau fichier , as-tu bien ces lignes ?

Citation

_netload Nom du fichier d'assemblage:
ExcelAttribute.dll


(Si tu possèdes un fichier "accad.lsp" seulement,... => syntaxe :
(command "_netload" "ExcelAttribute.dll ")
)

Ce message a été modifié par lili2006 - 02 novembre 2011 - 11:44 .

AutoCAD MAP 3D 2018 - Covadis 16.0d
Forum : http://genie-civil.bbactif.com/
0

#18 L'utilisateur est hors-ligne   lili2006 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 11789
  • Inscrit(e) : 21-décembre 05

Posté 02 novembre 2011 - 12:26

Re,

Tiens, en testant sur mon MAP 2012, voici le message d'erreur ??!!

Citation

Impossible de charger l'assemblage. Détails de l'erreur:
System.IO.FileLoadException: Impossible de charger le fichier ou l'assembly
'file:///D:\AUTOCAD -PERSONNALISATION\PROG PERSOS\ExcelAttribute.dll' ou une de
ses dépendances. L'opération n'est pas prise en charge. (Exception de HRESULT :
0x80131515)
Nom de fichier : 'file:///D:\AUTOCAD -PERSONNALISATION\PROG
PERSOS\ExcelAttribute.dll' ---> System.NotSupportedException: Tentative de
chargement d'un assembly à partir d'un emplacement réseau qui aurait entraîné
l'utilisation de l'assembly en mode Bac à sable (sandbox) dans les versions
antérieures du .NET Framework. Cette version du .NET Framework n'activant pas
la stratégie CAS par défaut, ce chargement peut être dangereux. Si ce
chargement n'est pas destiné à utiliser l'assembly en mode Bac à sable
(sandbox), activez le commutateur loadFromRemoteSources. Pour plus
d'informations, consultez http://go.microsoft....?LinkId=155569.
à System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String
codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint,
StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean
forIntrospection, Boolean suppressSecurityChecks)
à System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String
codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint,
StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean
forIntrospection, Boolean suppressSecurityChecks)
à System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName
assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean
forIntrospection, Boolean suppressSecurityChecks)
à System.Reflection.RuntimeAssembly.InternalLoadFrom(String assemblyFile,
Evidence securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm
hashAlgorithm, Boolean forIntrospection, Boolean suppressSecurityChecks,
StackCrawlMark& stackMark)
à System.Reflection.Assembly.LoadFrom(String assemblyFile)
à Autodesk.AutoCAD.Runtime.ExtensionLoader.Load(String fileName)
à loadmgd()


Commande:
Commande:
Commande: EATT
Le fichier eatt(.lsp/.exe/.arx) n'a pas été trouvé dans les dossiers du chemin
de recherche.
Vérifiez l'installation des fichiers de support et réessayez.nil

Commande:
Commande:
Commande:
Commande: IATT
Le fichier Iatt(.lsp/.exe/.arx) n'a pas été trouvé dans les dossiers du chemin
de recherche.
Vérifiez l'installation des fichiers de support et réessayez.nil

Commande:

AutoCAD MAP 3D 2018 - Covadis 16.0d
Forum : http://genie-civil.bbactif.com/
0

#19 L'utilisateur est hors-ligne   (gile) 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 10944
  • Inscrit(e) : 02-septembre 05

Posté 02 novembre 2011 - 12:38

Voir le messageSteven, le 02 novembre 2011 - 10:13 , dit :

Salut à tous.

Je viens de charger le programme, je souhaite l'essayer sur un fichier pour extraire les attributs de blocs mais lorsque je lance la commande EATT, en retour j'ai: Pas encore d'association d'attributs et je ne peux rien sélectionner.
J'ai 94 blocs avec attributs à extraire
Je ne comprends pas bien, là :blink:


Je pense qu'il s'agit d'un conflit avec une autre commande EATT (un LISP de Patrick_35 ?).
Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
Image IPB
0

#20 L'utilisateur est hors-ligne   (gile) 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 10944
  • Inscrit(e) : 02-septembre 05

Posté 02 novembre 2011 - 12:42

lili2006,

Tu as les réponses détaillées à ton erreur dans le message que tu postes...
Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
Image IPB
0

Partager ce sujet :


  • 4 Pages +
  • 1
  • 2
  • 3
  • Dernière »
  • 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)