Aller au contenu

Problème dans la macro


Invité seb48

Messages recommandés

Bonjour,

 

Je souhaite écrire un bloc avec des attributs qui me donne les renseignements suivant:

 

Bloc:FONDATION

Semelle Numéro

BA 10.50x11.00x0.50m

 

Attribut 1: Semelle

Attribut 2: Numéro

Attribut 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ème

Comment faire pour qu'il écrie la largeur dans le bloc fondation (aprés la fin de la macro écrire attreq;2:)

 

 

 

 

 

 

Lien vers le commentaire
Partager sur d’autres sites

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:

Lien vers le commentaire
Partager sur d’autres sites

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éro

BA 10.50x11.00x0.50m

 

devient

 

Semelle isolée 1

BA 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

 

Lien vers le commentaire
Partager sur d’autres sites

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]

Lien vers le commentaire
Partager sur d’autres sites

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

 

Lien vers le commentaire
Partager sur d’autres sites

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. ;)

Lien vers le commentaire
Partager sur d’autres sites

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.

 

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é