CADxp: Problème dans la macro - CADxp

Aller au contenu

Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

Problème dans la macro

#1 Guest_seb48_*

  • Groupe : Invités

Posté 08 avril 2011 - 22:52

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






0

#2 L'utilisateur est hors-ligne   bryce 

  • ceinture noire 4em dan
  • Groupe : Membres
  • Messages : 2161
  • Inscrit(e) : 03-mars 06
  • Location68 Mulhouse

Posté 08 avril 2011 - 23:55

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

#3 Guest_seb48_*

  • Groupe : Invités

Posté 09 avril 2011 - 08:23

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

0

#4 L'utilisateur est hors-ligne   rebcao 

  • ceinture rouge et blanche 8em dan
  • Groupe : Membres
  • Messages : 7139
  • Inscrit(e) : 25-août 04
  • LocationSELESTAT

Posté 09 avril 2011 - 10:14

Bonjour

La variable est :

DISTANCE

Christian



[Edité le 9/4/2011 par rebcao]
Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger des Supports de Cours AutoCAD, des Outils AutoCAD...
cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)
0

#5 L'utilisateur est hors-ligne   bryce 

  • ceinture noire 4em dan
  • Groupe : Membres
  • Messages : 2161
  • Inscrit(e) : 03-mars 06
  • Location68 Mulhouse

Posté 09 avril 2011 - 11:59

Citation

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]
0

#6 Guest_seb48_*

  • Groupe : Invités

Posté 10 avril 2011 - 08:09

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

0

#7 L'utilisateur est hors-ligne   bryce 

  • ceinture noire 4em dan
  • Groupe : Membres
  • Messages : 2161
  • Inscrit(e) : 03-mars 06
  • Location68 Mulhouse

Posté 10 avril 2011 - 11:32

Bonjour,

Citation

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

Citation

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

#8 Guest_seb48_*

  • Groupe : Invités

Posté 11 avril 2011 - 20:02

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.

0

Partager ce sujet :


Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)