Invité seb48 Posté(e) le 22 décembre 2010 Posté(e) le 22 décembre 2010 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
bryce Posté(e) le 22 décembre 2010 Posté(e) le 22 décembre 2010 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... ;) Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
Invité seb48 Posté(e) le 23 décembre 2010 Posté(e) le 23 décembre 2010 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
Invité seb48 Posté(e) le 23 décembre 2010 Posté(e) le 23 décembre 2010 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
bryce Posté(e) le 23 décembre 2010 Posté(e) le 23 décembre 2010 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. Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
Invité seb48 Posté(e) le 23 décembre 2010 Posté(e) le 23 décembre 2010 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
Invité seb48 Posté(e) le 23 décembre 2010 Posté(e) le 23 décembre 2010 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'objetexmple : Chambre112.15 m2
bryce Posté(e) le 23 décembre 2010 Posté(e) le 23 décembre 2010 (modifié) 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é le 11 octobre 2012 par bryce 1 Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
Aleck_Ultimate Posté(e) le 19 décembre 2016 Posté(e) le 19 décembre 2016 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
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant