AutoCAD LT : commande script sur une seule ligne pour insertion de bloc avec attributs

AutoCAD LT : commande script sur une seule ligne pour insertion de bloc avec attributs

claire.laurent.spee
Participant Participant
1 689 Visites
16 Réponses
Message 1 sur 17

AutoCAD LT : commande script sur une seule ligne pour insertion de bloc avec attributs

claire.laurent.spee
Participant
Participant

Bonjour,

 

J’utilise un script pour insérer des blocs à des coordonnées données dans une feuille Autocad.

Les blocs en question possèdent plusieurs attributs, le script que j’utilise actuellement à la forme suivante :

"

.

.

.

_-INSERT R 783570,6509600,250 1 1 0 a

b

c

d

.

.

.

"

Où R le nom du block et a, b, c, d les attributs

Ce script est produit à partir d’une macro Excel, et le fait que chaque insertion de bloc compte plusieurs lignes complique les choses.

Existe-t-il une solution pour condenser la commande sur une seule ligne (symbole entre les attributs équivalant à un retour à la ligne) ?

"

.

.

.

_-INSERT R 783577,6509601,250 1 1 0 a b c d

.

.

.

"

Je vous remercie par avance.


Le titre du sujet a été modifié par un modérateur pour faciliter la recherche. Titre original:
commande script sur une seule ligne pour insertion de bloc avec attributs


Le titre du sujet a été modifié par un modérateur pour faciliter la recherche. Titre original:
AutoCAD : commande script sur une seule ligne pour insertion de bloc avec attributs

0 J'aime
Solutions acceptées (1)
1 690 Visites
16 Réponses
Replies (16)
Message 2 sur 17

Y.AUBRY
Advisor
Advisor

Bonjour,

 

Oui c'est possible grâce au lancement via (Command ...)

 

Par exemple la commande ci-dessous insert mon bloc PT_ADD en 0,0 avec une échelle en X = 1 et échelle en Y = échelle en X, avec une rotation de 0 puis mes 3 attributs.

 

(Command "-INSERER" "PT_ADD" "0,0" "1" "" "0" "ID" "NUM" "ADD") 

 

 

-INSERER Entrez le nom du bloc ou [?] <PT_ADD>: PT_ADD
Unités: Sans unité   Conversion:    1.0000
Spécifiez le point d'insertion ou [Pointdebase/Echelle/X/Y/Z/rOtation]: 0,0
Entrez le facteur d'échelle en  X, spécifiez le coin opposé ou [Coin/XYZ] <1>: 1 Entrez le facteur d'échelle en Y <utiliser le facteur d'échelle en  X>:
Spécifiez l'angle de rotation <0>: 0
Entrez la valeur des attributs.
Feat ID présent dans shp: ID Numéro de Poteau (AXIONE) <ADD>: NUM Type de Poteau <Adduction>: ADD

 

 

Pour pouvoir utiliser cette commande avec gestion des attributs il faut ATTDIA = 0 et ATTREQ = 1.

 

A+ Yoan

Yoan AUBRY

EESignature

Message 3 sur 17

reb_c2
Mentor
Mentor

Bonjour,

 

Effectivement, lorsque l'on utilise EXCEL pour traiter les attributs et surtout VALIDER sa valeur tu peux utiliser le caractère RETURN = CAR(13) que tu affectes à une CELLULE que tu nommes RETURN, par exemple ce qui te permets de concaténer de la manière suivante :

 

  ="_-INSERT R " & PT_XY & RETURN & "1 1 0 " & "a" & RETURN & "b" & RETURN & "c" & RETURN & "d"

 

en fin de ligne on a d'office un RETURN...

 

AutoCAD (LT) et EXCEL est mon quotidien !   😊

 

Christian


Formateur Indépendant, Consultant, AutoCAD, AutoCAD LT, REVIT MEP, INVENTOR -
www.rebcao.fr

Christian REB

Message 4 sur 17

claire.laurent.spee
Participant
Participant

Bonjour,

Merci pour la réponse, la solution fonctionne très bien avec Autocad, par contre puisque c'est une commande Lisp ce n'est pas fonctionnel avec Autocad LT.

 

0 J'aime
Message 5 sur 17

claire.laurent.spee
Participant
Participant

J'utilise effectivement une solution similaire, mais ce n'est pas ce qui il y a de plus pratique, surtout quand on doit sortir un fichier avec un grand nombre de blocs ayant chacun un nombre d'attributs différents.

0 J'aime
Message 6 sur 17

Y.AUBRY
Advisor
Advisor

Bonjour,

 

Tu n'avais pas précisé que c'était pour AutoCAD LT dans ta demande donc j'ai considéré que tu étais sur un AutoCAD Classique.

 

A+ Yoan

Yoan AUBRY

EESignature

0 J'aime
Message 7 sur 17

reb_c2
Mentor
Mentor

Bonjour,

 

Si tu parles d'EXCEL, je suppose que tu as une ligne par BLOC à insérer ? Donc je ne vois pas le problème en reproduisant cette FORMULE pour chaque ligne... Sinon, je ne vois pas l'intérêt d'utiliser EXCEL ?

 

Sous entendu que ton tableau reprend sous forme de colonne chaque attribut ?

 

Tu peux publier ton fichier EXCEL ?

 

Je te remercie.

 

Christian


Formateur Indépendant, Consultant, AutoCAD, AutoCAD LT, REVIT MEP, INVENTOR -
www.rebcao.fr

Christian REB

0 J'aime
Message 8 sur 17

claire.laurent.spee
Participant
Participant

Je n'utilise pas directement les formules, j'utilise une Macro qui gère l'ouverture du fichier, la mise en forme et l'enregistrement en .scr.

Le nom du bloc et les attributs en sortie ne correspondent pas forcément à ce qui est écrit dans le fichier d'entrée. Chaque bloc possède un nombre d'attributs spécifique que lui est propre.

Je joins pour info un extrait d'un fichier d'entrée mais sans le détail de ce qui est attendu pour chaque bloc ça ne sera pas forcément très parlant.

Je pense que vais conserver mon fonctionnement actuel avec un traitement spécifique dans la macro pour chaque entité, ça aurait simplement été un peu plus simple si j'avais pu sortir chaque insertion sur une ligne, surtout lors de la création ou de la mise à jour de bloc.

0 J'aime
Message 9 sur 17

reb_c2
Mentor
Mentor

Il manque le fichier ?

 

Christian


Formateur Indépendant, Consultant, AutoCAD, AutoCAD LT, REVIT MEP, INVENTOR -
www.rebcao.fr

Christian REB

0 J'aime
Message 10 sur 17

patrick.emin
Alumni
Alumni

Bonjour @claire.laurent.spee , nous sommes en attente de votre fichier Excel, 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
0 J'aime
Message 11 sur 17

Y.AUBRY
Advisor
Advisor

Bonjour,

 

Si c'est dans une macro tu peux utiliser dans ton code les constantes diverses.

 

Comme @reb_c2 l'a mis dans la formule Excel c'est l'équivalent en VBA de CAR(13) qu'il va falloir utiliser dans ce cas : donc Chr(13) dans le code.

 

Attention, en fonction de la version d'Excel utilisé, il se peut que la fonction Chr() ne fonctionne pas. Dans ce cas là, essayer d'utiliser VBA.Chr() ou regarder le post ci-dessous pour le chargement d'une référence pour l'utilisation de Chr().

 

https://www.developpez.net/forums/d1401300/logiciels/microsoft-office/excel/macros-vba-excel/differe...

 

A+ Yoan

Yoan AUBRY

EESignature

0 J'aime
Message 12 sur 17

patrick.emin
Alumni
Alumni

Bonjour @claire.laurent.spee , nous sommes toujours en attente de votre fichier, 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
0 J'aime
Message 13 sur 17

didier_lourdelle
Collaborator
Collaborator

Bonjour

Il est plus simple avec différents bloc  ayant des attributs différents de prévoir une valeur par défaut lors de l’insertion des blocs, insérer les blocs en supprimant les questions (voir les variables ATTREQ et ATTDIA)


;; Insertion du bloc

(command "_-insert" "Nom du bloc" "XX.xx,YY.yy" 1 0 )
 ;; Remplace "$VALEUR01$ par Nouvelle valeur

(command "attedit" "n" "n" "" "" "" "$VALEUR01$" "Nouvelle valeur")

 ;; Remplace "$VALEUR02$ par Nouvelle valeur

(command "attedit" "n" "n" "" "" "" "$VALEUR02$" "nouvelle valeur")

Je t’invite à voir cette ancien message comme exemple pour mettre une fonction UDF dans Microsoft Excel.

https://forums.autodesk.com/t5/autocad-tous-produits-francais/script-ou-traitement-par-lot-autocad-a...

nota : il s'agit d'un principe mais pas mal d'amélioration possible. 🙂

 

Didier Lourdelle EESignature

Industrialisation AutoCAD / AutoCAD LT – 2D / 3D
Architectures AutoLISP & .NET maintenables
Références industrielles, notamment AutoCAD Electrical
(contexte exigeant, architectures éprouvées)
Blog : Trucs & Astuces sur AutoCAD LT (2024+)

0 J'aime
Message 14 sur 17

patrick.emin
Alumni
Alumni

Bonjour @claire.laurent.spee 

Merci d’avoir participé à notre communauté ! Vos questions et leurs réponses aident tout le monde. Si des réponses vous paraissent appropriées, 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
0 J'aime
Message 15 sur 17

reb_c2
Mentor
Mentor

Bonjour,

 

Il manque l'extrait de fichier EXCEL !

 

Merci.

 

Christian


Formateur Indépendant, Consultant, AutoCAD, AutoCAD LT, REVIT MEP, INVENTOR -
www.rebcao.fr

Christian REB

0 J'aime
Message 16 sur 17

patrick.emin
Alumni
Alumni

Bonjour @claire.laurent.spee , pouvez-vous nous faire parvenir un extrait du fichier Excel comme vous l'avez demandé @reb_c2  ? 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
0 J'aime
Message 17 sur 17

claire.laurent.spee
Participant
Participant
Solution acceptée

Bonjour,

J'ai la réponse à ma question, l'insertion d'un bloc avec plusieurs attributs ne semble pas directement possible avec une seule ligne script.

Pour ce qui concerne la mise en forme depuis une macro Excel, j'ai pu faire ce que je voulais.

Je vous remercie pour votre aide.

 

0 J'aime