Invité seb48 Posté(e) le 8 avril 2011 Posté(e) le 8 avril 2011 Bonjour, Je souhaite écrire un bloc avec des attributs qui me donne les renseignements suivant: Bloc:FONDATIONSemelle NuméroBA 10.50x11.00x0.50m Attribut 1: SemelleAttribut 2: NuméroAttribut 3: 10.50 (qui correspond à la longueur de fondation) (distance mesurer à l'écran)Attribut 4: 11.00 (qui correspond à la largeur)(distance mesurer à l'écran)Attribut 5: 0.50 (qui correspond à la hauteur) (valeur numérique rentrer au clavier)BA,X et m sont des textes du bloc FONDATION Pour cela j'utilise le début de cette macro *^C^C'_dist;\attdia;0;attreq;1;-inserer;Fondation;e;1;r;0;\$M=$(rtos,$(getvar,dist),2,2); Merci pour votre aide Seb48 1ier problème Après la mesure du deuxième; il ne va pas inserer le bloc FONDATION.2ième problèmeComment faire pour qu'il écrie la largeur dans le bloc fondation (aprés la fin de la macro écrire attreq;2:)
bryce Posté(e) le 8 avril 2011 Posté(e) le 8 avril 2011 Bonsoir, Je n'ai pas bien compris ta question, ni testé ta macro, mais :- a priori je ne vois pas l'utilité de l'apostrophe après le ^C^C- tu fais un $(getvar,dist), mais il n'existe pas de variable "dist" :casstet: Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
Invité seb48 Posté(e) le 9 avril 2011 Posté(e) le 9 avril 2011 Bonjour Bryce Je mets l'apostrophe après ^C^C parce que, quand je veux mesurer la distance entre deux points '_dist s'affiche en bas dans la ligne de commande. En fait, je veux créer une bloc avec attribut qui me donne la longueur et la largeur d'un rectangle qui représente un massif ou une semelle (c'est une polyligne fermée). Pour cela,je voulais utiliser la commande mesure entre deux points, une première fois pour la stocker dans l'attribut longueur et la mesure commande une deuxième fois pour la stocker dans l'attribut largeur, le type de fondation "semelle", le numéro et la hauteur sont saisies au clavier (exemple: Semelle NuméroBA 10.50x11.00x0.50m devient Semelle isolée 1BA 1.00x0.80x0.50m Si tu me dit que la variable $(getvar,dist), il faut que cherhce autre chose pour qu'il m'affiche la mesure. Merci et à plus Seb48
rebcao Posté(e) le 9 avril 2011 Posté(e) le 9 avril 2011 Bonjour La variable est : DISTANCE Christian [Edité le 9/4/2011 par rebcao] Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)
bryce Posté(e) le 9 avril 2011 Posté(e) le 9 avril 2011 Je mets l'apostrophe après ^C^C parce que, quand je veux mesurer la distance entre deux points '_dist s'affiche en bas dans la ligne de commande. L'apostrophe ne sert que pour utiliser une commande de façon transparente (si une autre commande est déjà active, ce qui n'est pas le cas dans ta macro). ;) Voici une macro qui a priori fonctionne selon ton souhait (à condition qu'il y ait bien 5 attributs dans le bloc FONDATION, et qu'ils soient demandés dans l'ordre que tu as indiqué) : *^C^C_dist;\\$m=$(if,0,)_dist;\\attdia;0;attreq;1;_-insert;fondation;e;1;r;0;\\\$m=$(getvar,distance);"$m=$(getvar,distance)";\ [Edité le 9/4/2011 par bryce] Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
Invité seb48 Posté(e) le 10 avril 2011 Posté(e) le 10 avril 2011 Bonjour Bryce et rebcao J'avais pensé à la variable distance (peut être seulement par pure coîncidence car elle s'affiche dans la ligne de commande) mais mon début de macro était loin de fonctionner. Quant à ta macro j'ai du mal à comprendre ta condition if ($m=$(if,0,)_dist;) et pourqoui la commande insertion de bloc _insérer que tu m'avais soufflée auparavant ne fonctionne pas. En tout cas, je vous remercie pour ce gros coup de pouce, Seb48
bryce Posté(e) le 10 avril 2011 Posté(e) le 10 avril 2011 Bonjour, Quant à ta macro j'ai du mal à comprendre ta condition if ($m=$(if,0,)_dist;) Oui, c'est un truc que j'utilise pour obliger l'interpréteur DIESEL à évaluer l'ensemble de la macro une première fois.Il faut savoir que dès que l'interpréteur rencontre la première expression DIESEL, il évalue l'ensemble des expressions DIESEL suivantes avant de reprendre la macro après la première expression ( http://www.cadxp.com/modules.php?op=modload&name=XForum&file=viewthread&tid=30255#pid131215 ). $(if,0,) est toujours faux et renvoie un résultat vide, mais je l'oblige ainsi à évaluer la première expression $(getvar,distance) (mais pas la 2nde qui est entre guillemets) avant que la deuxième distance soit saisie. Le but est d'éviter d'avoir à utiliser une variable USERRx pour stocker la 1ère distance avant de saisir la 2nde. :) et pourqoui la commande insertion de bloc _insérer que tu m'avais soufflée auparavant ne fonctionne pas. Tu peux utiliser -INSERER (commande française en version ligne de commande) ou _-INSERT (commande native en anglais, d'où le _ , en version ligne de commande), mais pas _INSERER. ;) Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
Invité seb48 Posté(e) le 11 avril 2011 Posté(e) le 11 avril 2011 Bonsoir Bryce, Avec tes explications, tout parait simple et facile. Formateur c'est un métier!!!!! :cool: Encore merci pour ce coup de main et à une prochaine.
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