Aller au contenu

Problème dans la macro


Messages recommandés

Posté(e)

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:)

 

 

 

 

 

 

Posté(e)

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

 

Posté(e)
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]

Posté(e)

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

 

Posté(e)

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

Posté(e)

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.

 

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é