Aller au contenu

Création de macros


Invité seb48

Messages recommandés

Bonjour à tous,

Je travail sous autocad 2007 LT et je souhaite créé une macro qui écrit dans l'espace objet la longueur d'un trait automatique et une macro qui écrit la surface d'un objet et qui me laisse la possibilité d'écrire un aussi commentaire.

Je n'arrive pas à lui dire d'aller chercher le résultat _aera pour la surface.

Je suis à la recherche d'exemple car l'aide d'autocad ne permet pas d'écrire ces fonctions.

 

Merci pour votre aide

 

Seb 48

 

 

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Voici 2 exemples de macros basiques :

 

- pour récupérer la longueur d'un objet dans un texte

^C^C_lengthen;\;texte;\;;$M=$(rtos,$(getvar, perimeter),2,2);

 

- pour une surface

^C^C_area;o;\texte;\;;$M=$(rtos,$(getvar, area),2,2);

 

A adapter et peaufiner suivant tes besoins... ;)

Lien vers le commentaire
Partager sur d’autres sites

Merci bryce pour ton aide

 

Je pense que je dois arriver à l'inscrire dans un attribut de bloc pour pouvoir l'extraire et le mettre dans un fichier .txt . C'est pas sûr, mais je vais essayer.

Est ce que tu sais ou je pourrai trouver des exemples de programmation en language diesel pour arriver comprendre toutes les sputilités.

 

Encore merci pour tout et joyeux noël

 

Seb48

 

Lien vers le commentaire
Partager sur d’autres sites

Si quelqu'un peut m'aider dans l'écriture d'une macro qui inscrit la surface ou la longueur d'un objet dans un bloc avec attribut pour extraire cette donnée,je suis preneur car je suis novice en langage diesel. (jessaie de comprendre avec les exemples qui se trouve sur le site et avec l'aide d'autocad)

 

 

Merci d'avance

 

Seb48, l'unique

 

 

 

 

Lien vers le commentaire
Partager sur d’autres sites

Voici un exemple de macro qui récupère la surface d'un objet, insère un bloc appelé "label" qui contient un seul attribut, et renseigne cet attribut avec la surface mesurée :

 

*^C^C_area;o;\attdia;0;attreq;1;-inserer;label;e;1;r;0;\$M=$(rtos,$(getvar, area),2,2);

La macro se répète automatiquement grâce à l'* du début.

Lien vers le commentaire
Partager sur d’autres sites

Bryce,

 

Je te remercie pour ton aide, je viens de l'essayer et ça marche.

Est ce qu'il y a un bouquin ou un site pour apprendre les rudiments essentiels de cette programmation.

 

Merci encore et à bientôt

 

Seb48

 

Lien vers le commentaire
Partager sur d’autres sites

Salut à tous

 

Est ce que ça marche si j''ai un bloc avec 2 attributs:

-un attribut pour la surface

-un attribut pour le nom de la surface que je rentre quand je clique sur l'objet

exmple :

Chambre1

12.15 m2

 

Lien vers le commentaire
Partager sur d’autres sites

Est ce qu'il y a un bouquin ou un site pour apprendre les rudiments essentiels de cette programmation.

 

Une macro AutoCAD, ce n'est pas vraiment de la programmation, mais juste un enchaînement de commandes.

Il n'y a que les parties en DIESEL, c'est-à-dire les $M=$(...), qui s'apparentent à de la programmation simple.

 

Le plus important pour créer une macro est donc dans un premier temps d'être capable de réaliser l'opération souhaitée entièrement au clavier.

 

Pour écrire ensuite la macro correspondante, il faut connaître l'utilité d'un certain nombre de caractères spéciaux :

 

- un ; (ou un espace, déconseillé pour la lisibilité) correspond à un appui sur Entrée

 

- un \ permet de mettre la macro en pause, pour que l'utilisateur puisse cliquer un point, un objet, ou entrer une valeur au clavier. La macro reprend son cours ensuite.

 

- on met en général ^C^C (ce qui correspond à 2x Echap) au début de la macro, pour interrompre toutes les commandes en cours avant d'exécuter la macro.

 

- un * devant ^C^C entraîne l'exécution de la macro en boucle.

 

 

Par exemple pour mesurer la surface d'un objet avec la commande AIRE, on ferait au clavier :

 

Commande: aire [Entrée]
Spécifiez le premier coin ou [Objet/Ajouter une aire/Soustraire une aire] 
<Objet>: o [Entrée]
Choix des objets: [on doit pouvoir cliquer sur un objet, dans une macro il faudra donc faire une pause]
Aire = 237.9729, Périmètre = 60.9904

 

la macro correspondante sera :

 

^C^Caire;o;\ [puis suite de la macro]

 

Il faut savoir aussi que dans AutoCAD, il est en général possible de taper au clavier une commande précédée d'un - pour empêcher l'affichage d'un boîte de dialogue ou palette, et utiliser la commande à 100% au clavier.

 

La commande CALQUE par exemple affiche normalement le gestionnaire de calques.

 

En tapant -CALQUE par contre, on peut créer ou modifier des calques en ligne de commande.

 

Par exemple pour insérer au clavier un bloc appelé LABEL contenant deux attributs (DESCRIPTION et SURFACE), on ferait :

 

Commande: -inserer [Entrée]
Entrez le nom du bloc ou [?] <label>: label [Entrée]
Unités: Millimètres   Conversion:    1.0000
Spécifiez le point d'insertion ou [Pointdebase/Echelle/X/Y/Z/Rotation]: e [Entrée]
Spécifiez le facteur d'échelle des axes XYZ <1>: 1 [Entrée]
Spécifiez le point d'insertion ou [Pointdebase/Echelle/X/Y/Z/Rotation]: r [Entrée]
Spécifiez l'angle de rotation <0>: 0 [Entrée]
Spécifiez le point d'insertion ou [Pointdebase/Echelle/X/Y/Z/Rotation]: [on doit pouvoir cliquer un point, dans une macro il faudra donc faire une pause]
Entrez la valeur des attributs.
Description: [on doit pouvoir taper du texte, dans une macro il faudra donc faire une pause]
Surface: [ici on voudrait récupérer automatiquement la valeur de la variable AREA, dans une macro il faudra donc faire appel au langage DIESEL]

 

la macro correspondante sera :

 

^C^C-inserer;label;e;1;r;0;\\$M=$(getvar,area);

 

On obtient par contre une surface avec 8 décimales, il faudrait donc utiliser la fonction DIESEL rtos pour choisir la précision.

 

L'ensemble des fonctions DIESEL (une bonne vingtaine) figure dans l'aide AutoCAD.

 

Il y a aussi les sites suivants (en anglais):

 

http://www.crlf.de/Dokumente/Diesel/Diesel.html

 

http://members.iinet.net.au/~bigbyte/diesel.htm

 

 

Dans ton cas précis, si tu veux insérer un bloc qui demande 2 attributs au lieu d'un, il faudra juste rajouter à la macro de mon message précédent un \ bien placé... ;)

Modifié par bryce
  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

  • 5 ans après...

Bonjour à tous.

 

J'ais trouvé ce sujet très intéressant, et je me disait juste, au cas où un modérateur passerait par là, qu'une fois le poste de bryce du 24/12/10 épinglé, ce sujet ferait très bon effet déplacé et épinglé dans le forum Personnalisation, macros, DIESEL.

 

Amicalement.

Je suis dysorthographique alors lâchez-moi les basques avec ça, je fait déjà de mon mieux.
Membre d'Extinction Rebellion, car pour sauver le monde il n'est jamais trop tard, amour et rage !
Pour écrire un vraie point médian (e·x·e·m·p·l·e) [Alt + 0183] ou ajout d'un raccourci clavier personnalisé (ex. [AltGr + ;])

Utilisateur d'AutoCAD 2021 sous Windows 10

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é