Communauté
AutoCAD – tous produits - Français
Bienvenue sur les forums AutoCAD d’Autodesk. Partagez vos connaissances, posez des questions, et explorez les sujets AutoCAD populaires.
annuler
Affichage des résultats de 
Afficher  uniquement  | Rechercher plutôt 
Vouliez-vous dire : 

AutoCAD : Lier blocs dynamiques avec excel

23 RÉPONSES 23
RÉSOLU
Répondre
Message 1 sur 24
fradeg
1419 Visites, 23 Réponses

AutoCAD : Lier blocs dynamiques avec excel

Bonjour à tous,

 

Voilà quelques temps que je pense me pencher sur ce sujet.

Je souhaiterais modifier des blocs dynamiques via excel, et donc pouvoir les mettre à jour au départ d'excel.

J'ai testé avec les lisp dispo (comme attin/attout de Brice Studer, LXL de Patrick_35; un énorme merci à eux aux passages) mais je reste bloqué sur certains points.

 

Je vous joins 2 blocs, j'en ai une 10 mais le principe restera le même.

Je bloque sur les visibilités notamment, et n'étant pas très fort en programmation je viens chercher de l'aide ici !

 

Merci d'avance pour votre temps,


Le titre du sujet a été modifié par un modérateur pour faciliter la recherche. Titre original:
Lier blocs dynamiques avec excel

Étiquettes (2)
23 RÉPONSES 23
Message 2 sur 24
-didier-
en réponse à: fradeg

Bonjour @fradeg 

 

Il n'est pas possible de répondre avec les simples indications données.

En particulier, il serait utile de lier un classeur Excel au message pour comprendre ce qu'il faut concrètement faire comme liaison suite à une modification Excel.

En général, les questions sans réponse le sont par manque de clarté, on aime répondre et on aime aider, mais il faut nous aider à aider.

Amicalement

Éternel débutant.. my site for learning : Programmer dans AutoCAD

Didier Aveline

EESignature

Message 3 sur 24
patrick.emin
en réponse à: fradeg

Bonjour @fradeg 

Votre problème a-t-il été résolu? Si oui, pouvez vous nous indiquer de quelle façon pour que cela profite à la communauté, si non, pouvez vous nous apporter les précisions demandées de façon que nous puissions continuer à vous aider?

Si une des réponses résout votre problème ou vous a permis de mieux le comprendre, voulez vous avoir l'amabilité de cliquer sur le bouton  APPROUVER LA SOLUTION  en bas de la réponse qui apporte une solution?
Merci de ne pas accepter comme solution le message que vous êtes en train de lire.


Patrick Emin animateur de la communauté francophone


Vous avez trouvé un message utile? Alors donnez un "J'aime" à ce message!
Votre question a eu une réponse satisfaisante? Voulez vous avoir l'amabilité de cliquer sur le bouton
 APPROUVER LA SOLUTION  en bas de la réponse qui apporte une solution?
Signez notre Livre d'Or
Message 4 sur 24
patrick.emin
en réponse à: fradeg

Merci de nous apporter des précisions @fradeg 


Patrick Emin animateur de la communauté francophone


Vous avez trouvé un message utile? Alors donnez un "J'aime" à ce message!
Votre question a eu une réponse satisfaisante? Voulez vous avoir l'amabilité de cliquer sur le bouton
 APPROUVER LA SOLUTION  en bas de la réponse qui apporte une solution?
Signez notre Livre d'Or
Message 5 sur 24
patrick.emin
en réponse à: fradeg

En attente de précisions @fradeg merci !


Patrick Emin animateur de la communauté francophone


Vous avez trouvé un message utile? Alors donnez un "J'aime" à ce message!
Votre question a eu une réponse satisfaisante? Voulez vous avoir l'amabilité de cliquer sur le bouton
 APPROUVER LA SOLUTION  en bas de la réponse qui apporte une solution?
Signez notre Livre d'Or
Message 6 sur 24
_Steven_
en réponse à: fradeg


@fradeg  a écrit :

Je vous joins 2 blocs, j'en ai une 10 mais le principe restera le même.

Je bloque sur les visibilités notamment, et n'étant pas très fort en programmation je viens chercher de l'aide ici !


Bonjour  @fradeg,

 

Pourriez-vous être plus précis sur ce point ?

Comme l'a dit Didier @-didier-,

 


@-didier-  a écrit :

Bonjour @fradeg 

 

Il n'est pas possible de répondre avec les simples indications données.

En particulier, il serait utile de lier un classeur Excel au message pour comprendre ce qu'il faut concrètement faire comme liaison suite à une modification Excel.

En général, les questions sans réponse le sont par manque de clarté, on aime répondre et on aime aider, mais il faut nous aider à aider.

Amicalement


Pourriez-vous donc nous expliquez ce qui bloque en ce qui concerne la visibilité ?

Steven

Ce post vous a été utile ? N'hésitez pas à aimer ce post.
Ce post a-t-il répondu à votre question ? Cliquez sur le bouton APPROUVER LA SOLUTION en dessous de la réponse.



« L’homme de bien n’exige pas de l’autre qu’il soit parfait, il l’aide à accomplir ce qu’il a en lui de meilleur. »
Lao Tseu
Message 7 sur 24
fradeg
en réponse à: fradeg

Bonjour à tous,

Mes excuses pour le manque de précision.

Je vais tenter d'être le plus précis possible.

 

En pièce jointe, je vous glisse le dwg comportant les blocs ainsi que le fichier excel.
Les blocs comportent plusieurs états de visibilités.
Avec le lisp Lxl-V5.11, j'arrive à extraire les attributs des blocs B1/B2/B3/B4 mais pas les customs.
Mon but serait de pouvoir régler tous les paramètres de ces blocs via excel, plutôt que de le faire manuellement dans autocad.
Donc par exemple pour B1, j'aimerais pouvoir changer l'état de visibilité via excel, dans les customs changer par exemple "hauteur de béton" et que le bloc s'adapte visuellement.
Est-ce possible de gérer cela ?

Merci d'avance,

Message 8 sur 24
Y.AUBRY
en réponse à: fradeg

Bonjour @fradeg,

 

Suite à ton premier envoi je suis parti sur du développement .NET d'une interrelation entre les attributs et propriétés dynamiques des blocs et Excel.

 

Le programme .NET  n'est actuellement pas complètement finaliser mais je pense qu'il pourra t'aider tel quel.

 

Il se peut que la DLL soit bloquée en fonction de la manière dont celle-ci est dézippée.

Pour le savoir faire un clique-doit sur le fichier BLOC_EXCEL_LINK.dll puis aller sur Propriétés

Ensuite cocher la case "Débloquer" puis "Appliquer" puis "OK"

YAUBRY_0-1705505216250.png

 

Pour pouvoir l'utiliser il est conseillé de la mettre dans un dossier présent dans un "chemin de recherche  de fichiers de supports" (Accessible depuis menu "Outils" "Options" onglet "Fichiers") et dans un "Emplacement approuvé" (au même endroit)

 

Ensuite la dll se charge via la commande NETLOAD

 

Les commandes sont "DYNOUT" pour l'extraction et "DYNIN" pour l'importation.

 

A+ Yoan

 

Yoan AUBRY

EESignature

Message 9 sur 24
fradeg
en réponse à: Y.AUBRY

@Y.AUBRY

Merci pour le temps consacré !!

J'ai malheureusement des difficultés à le tester, le dll ne veut pas se charger.

Je joins les messages d'erreur si jamais.

 

Merci d'avance!

Message 10 sur 24
Y.AUBRY
en réponse à: fradeg

Bonjour @fradeg,

 

Cela vient du fait que tu charges la dll depuis un emplacement réseau et non pas en dur depuis ton C:\

Je te conseille de te créé un répertoire C:\DLL par exemple et de mettre la dll à l'intérieur de celle-ci (et de changer tes chemins

YAUBRY_0-1705576472193.png

 

YAUBRY_2-1705576515379.png

Ci-dessus un visuel du tableau Excel généré

 

A+ Yoan

Yoan AUBRY

EESignature

Message 11 sur 24
Y.AUBRY
en réponse à: Y.AUBRY

Une autre solution est de copier la DLL à la racine des fichiers supports d'AutoCAD

 

YAUBRY_0-1705576754844.png

Taper "%appdata%"  (sans les guillemets) dans ta barre de chemin Windows, puis valider avec Entrée.

Cela t'amènera dans le "Roaming" de l' "Appdata" ou tu trouveras un dossier "Autodesk" puis ta version d'AutoCAD, puis un code Rxx.x en fonction de ta version, un dossier "fra" si ton installation est en francais ("enu" si en anglais)

 

Dans ton cas, c'est le chemin correspondant à l'encadré en vert sur l'image ci-dessous

YAUBRY_1-1705577082970.png

A+ Yoan

 

Yoan AUBRY

EESignature

Message 12 sur 24
fradeg
en réponse à: Y.AUBRY

Effectivement, je n'ai pas lu le message d'erreur en entier, merci pour tes lumières!

A la vue de ta capture d'écran, ça ressemble très fort à ce que j'avais en tête !

Maintenant, excuse-moi pour la question bête, mais où se trouve le fichier excel lié ?

Je teste DynIn/DynOut mais je ne trouve pas..

Message 13 sur 24
Y.AUBRY
en réponse à: fradeg

Le fichier Excel se créé normalement au même endroit que ton fichier dwg et porte le même nom hormis l'extension en .xlsx

Yoan AUBRY

EESignature

Message 14 sur 24
fradeg
en réponse à: fradeg

Je supposais bien que c'était comme ça, mais ça ne le crée pas chez moi ?

Message 15 sur 24
Y.AUBRY
en réponse à: fradeg

Peux-tu m'envoyer ton fichier en MP pour voir si ca vient du contenu de celui-ci ou si ca vient de son emplacement.

 

Je suis toujours en cours de modification sur le programme actuellement (ajout de code VBA et chargement de "Référence" VBA via VB.NET) et je n'ai plus de version stable.

 

Il va faire que je mette en commentaire mon développement actuel pour voir ce qu'il en est....

 

A+ Yoan

Yoan AUBRY

EESignature

Message 16 sur 24
Y.AUBRY
en réponse à: Y.AUBRY

Ci-joint la DLL modifiée suite à ton retour.

(Je n'ai regardé que la partie "DYNOUT")

Je te laisse me faire un retour sur la partie "DYNIN" si jamais ca ne fonctionne pas


A+ Yoan

Yoan AUBRY

EESignature

Message 17 sur 24
Y.AUBRY
en réponse à: Y.AUBRY

Personnellement j'obtiens ce fichier lors de la commande DYNOUT

Yoan AUBRY

EESignature

Message 18 sur 24
Y.AUBRY
en réponse à: Y.AUBRY

Informations concernant le tableau Excel : 

 

1) Le formatage des cellules dans Excel dépend des unités de dessin dans le dwg

 

Dans le fichier que tu m'a transmis en MP les unités sont définis avec une précision défini sur "0" pour les longueurs et les angles et tes angles en degrés décimaux.

J'ai bien compris que cette précision à 0 servait à limiter la taille de tes attributs de blocs

YAUBRY_0-1705591101291.png

Visuel d'un bloc dans ton dessin

YAUBRY_1-1705591129511.png

 

Tu retrouves donc dans le tableau l'ensemble des distances arrondi à 0 près (même pour la position X, Y, Z du bloc) cependant la valeur réelle est conservée

YAUBRY_3-1705591493991.png

 

2) Renseignement sur les titres des colonnes

Il y a des rectangles rouges dans le coins en haut à droite de certaines colonnes (correspondant à une note).

Ces informations sont à la fois utile dans le fichier Excel mais elle me servent également à connaitre le type de données lors de la réimportation.

Par exemple dans Vb.NET un angle (provenant d'AutoCAD) est toujours spécifié en radian. Cependant, dans le  tableau Excel, exprimer cette valeur en radian ne servait pas à grand chose on trouve donc la note "Rotation / En Degrés décimaux" car j'en ai besoin pour faire la transformation inverse lors de la réimportation

YAUBRY_4-1705591830905.png

 

D'une autre manière on retrouve  pour les paramètres dynamiques les informations présentes lors de la création du bloc dynamique. Et de ce fait un menu déroulant au niveau des cases concernées.

YAUBRY_5-1705592023488.png

YAUBRY_7-1705592135941.png

 

YAUBRY_8-1705592751258.png

YAUBRY_9-1705592800029.png

YAUBRY_10-1705592849503.pngYAUBRY_11-1705592872898.png

 

Il y a également une note pour les paramètres non visibles dans un état dynamique spécifique (je ne l'ai actuellement pas encore fait pour les attributs)  et malheureusement cette note ne disparait pas en cas de changement de l'état de visibilité dans Excel (d'où la programmation VBA spécifié dans un des post ci-dessus)

YAUBRY_12-1705592944009.png

 

Bref, pour le bon fonctionnement du programme (même s'il n'est pas fini je l'ai testé sur quelques fichiers) il ne faut surtout pas supprimer les colonnes A, B, C, D, E dans n'importe quel onglet (HANDLE, X, Y, Z, ROTATION)

 

Sinon, si l'on supprime :

- un onglet dans le fichier Excel, l'ensemble des blocs portant le nom de l'onglet ne seront pas mis à jour.

- une ligne dans le fichier Excel, le bloc ayant pour Handle la valeur de la colonne A et de la ligne en question ne sera pas mis à jour

- une colonne d'attribut ou de paramètres dynamique : la valeur de l'attribut ou du paramètre dynamique ne sera pas modifié.

 

Voilà.

 

A+ Yoan

Yoan AUBRY

EESignature

Message 19 sur 24
patrick.emin
en réponse à: fradeg

Bonjour @fradeg 

Si une des réponses résout votre problème ou vous a permis de mieux le comprendre, voulez vous avoir l'amabilité de cliquer sur le bouton  APPROUVER LA SOLUTION  en bas de la réponse qui apporte une solution?
Cela facilitera la navigation de nos utilisateurs qui pourront directement atteindre la solution

Sachez qui si vous avez marqué une réponse comme solution par erreur, vous pouvez annuler ce marquage en cliquant sur le menu du fil (les trois points verticaux) et choisir "pas la solution"
Merci de ne pas accepter comme solution le message que vous êtes en train de lire.


Patrick Emin animateur de la communauté francophone


Vous avez trouvé un message utile? Alors donnez un "J'aime" à ce message!
Votre question a eu une réponse satisfaisante? Voulez vous avoir l'amabilité de cliquer sur le bouton
 APPROUVER LA SOLUTION  en bas de la réponse qui apporte une solution?
Signez notre Livre d'Or
Message 20 sur 24
Y.AUBRY
en réponse à: Y.AUBRY

Ci-joint la dernière version avec :

- Ajout de la gestion des calques en colonne F

- gestion des noms de blocs long : les noms de bloc >31 caractères généraient des problèmes lors de la création d'onglet dans le fichier Excel et dans la boite de dialogue (problème de superposition)

- gestion des calques verrouillés

- non mise à jour des attributs de type "champs" lors de la réimportation

 

Yoan AUBRY

EESignature

Vous n'avez pas trouvé ce que vous recherchiez ? Posez une question à la communauté ou partagez vos connaissances.

Publier dans les forums  

Autodesk Design & Make Report