Aller au contenu

macro qui ne va pas jusqu'au bout


BaB

Messages recommandés

Bonjour à tous,

 

Je suis tous neuf dans la création de macro et je bug depuis un bout de temps sur un problème :

j'ai créé un macro pour dessiner un rectangle (useri3 largeur, useri4 hauteur) que je voudrais hachurer et par la suite y mettre un texte, problème lors que je lance ma macro le rectangle se dessin mais l'action s'arrête là, peu-importe ce que je mets derrière, rien n'y fait la macro s'arrête après avoir dessin le rectangle, ci dessous ma macro :

 

^C^Ccal;p1=cur;\cal;p2=cur;@$m=$(getvar,useri3),$(-,0,$(getvar,useri4));rectangle;'cal;p1;'cal;p2;;-hachures;s;d;;p;solide;cou;bleu;;;^C

 

Je dois avoir un problème de syntaxe que je ne trouve pas..

J'utilise AUTOCAD LT2019.

 

Merci d'avance pour votre aide.

 

B,

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Je ne vois pas ce que viennent faire les variables : USERi3 et USERi4 ?

 

Sinon, ça pourrait donner ça :

 

^C^Crectangle;\\-hachures;s;d;;p;solide;cou;bleu;;

 

 

Christian

 

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

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Je ne vois pas ce que viennent faire les variables : USERi3 et USERi4 ?

 

Sinon, ça pourrait donner ça :

 

^C^Crectangle;\\-hachures;s;d;;p;solide;cou;bleu;;

 

 

Christian

 

Bonjour Christian,

 

le but final est de hachurer le rectangle puis de placer un texte à l'intérieur de type "USERi3 x USERi4" (suite de la macro que je n'ai pas terminé), je renseignes aussi les points p1 et p2 pour me permettre de placer le texte.

Je sais que la solution des pauses utilisateur permettent de rentrer les dimensions du rectangle mais je ne souhaite pas de pause dans la macro si possible.

 

B,

Lien vers le commentaire
Partager sur d’autres sites

Bon j'ai modifié ma macro en suppriment les points p1 et p2.

 

ci dessous la macro complète :

 

^C^Cclayer;se;cecolor;250;rectangle;\c;$m=$(getvar,useri3);$(getvar,useri4);@$(getvar,useri3),-$(getvar,useri4);$(if,$(=,$(getvar,useri5),1),clayer;ltx;-hachures;s;d;;p;solide;cou;bleu;;;^C,clayer;ltx;-hachures;s;d;;p;solide;cou;rouge;;;^C)^C$(if,$(=,$(getvar,useri5),1),-textmult;@;j;mc;h;250;s;calibri;\lanterneau fixe;$m=$(getvar,useri3)x$(getvar,useri4);;,-textmult;@;j;mc;h;250;s;calibri;\lanterneau CO2;$m=$(getvar,useri3)x$(getvar,useri4);;)^C^C

 

par contre quand je remplace un "\" par "@-$(getvar,useri3),-$(getvar,useri4)" pour éviter une pause au niveau de l'insertion du texte, plus rien ne marche, y'a-t-il un nombre maximum d'utilisation de formule DIESEL dans une seul macro?

 

Désoler pour le smiley a la fin de la macro, je ne sais pas l'enlever est il faut lire ";")"^"C" à la place...

Lien vers le commentaire
Partager sur d’autres sites

Bonjour à toutes et tous,

J'ai testé vite fait et ma version répond :

Lili,

 

clayer;SE permet de mettre le calque SE (support d'étanchéité) en calque courant, il faut donc un calque du nom de "SE", de même il faudra un calque "LTX" (lanterneaux).

La macro que j'ai faite est en effet adaptée à mon gabarit avec ces calques déjà créés.

 

ci dessous la macro sans les calque ni type de texte :

 

^C^Crectangle;\c;$m=$(getvar,useri3);$(getvar,useri4);@$(getvar,useri3),-$(getvar,useri4);$(if,$(=,$(getvar,useri5),1),-hachures;s;d;;p;solide;cou;bleu;;;^C,-hachures;s;d;;p;solide;cou;rouge;;;^C)^C$(if,$(=,$(getvar,useri5),1),-textmult;@;j;mc;h;250;\lanterneau fixe;$m=$(getvar,useri3)x$(getvar,useri4);;,-textmult;@;j;mc;h;250;\lanterneau CO2;$m=$(getvar,useri3)x$(getvar,useri4);;)^C^C

 

il faudra quand même renseigner les variables :

USERi3 : largeur rectangle

USERi4 : hauteur rectangle

USERi5 si = 1 alors lanterneau fixe (modifie texte et couleur de hachures) sinon lanterneau CO2

 

toujours problème de SMILEY à la fin au lieu de ";"")" désolé...

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir à toutes et tous,

Merci de ta réponse BaB,

J'ai compris l'idée,..

toujours problème de SMILEY à la fin au lieu de ";"")" désolé...

 

 

Rentre alors ton code avec le BBCode qui va bien, c'est à dire "insérer un extrait de code" de la barre ci dessus,

Ce qui donne :

^C^Crectangle;\c;$m=$(getvar,useri3);$(getvar,useri4);@$(getvar,useri3),-$(getvar,useri4);$(if,$(=,$(getvar,useri5),1),-hachures;s;d;;p;solide;cou;bleu;;;^C,-hachures;s;d;;p;solide;cou;rouge;;;^C)^C$(if,$(=,$(getvar,useri5),1),-textmult;@;j;mc;h;250;\lanterneau fixe;$m=$(getvar,useri3)x$(getvar,useri4);;,-textmult;@;j;mc;h;250;\lanterneau CO2;$m=$(getvar,useri3)x$(getvar,useri4);;)^C^C

Civil 3D 2024 - COVADIS_18.2

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Ok, voici la MACRO corrigé :

 

^C^Crectangle;\c;$m=$(getvar,useri3);$(getvar,useri4);@$(getvar,useri3),-$(getvar,useri4);$(if,$(=,$(getvar,useri5),1),-hachures;s;d;;p;solide;cou;bleu;;;^C,-hachures;s;d;;p;solide;cou;rouge;;;^C)^C$(if,$(=,$(getvar,useri5),1),_-textmult;@;j;mc;@;lanterneau fixe;$m=$(getvar,useri3)x$(getvar,useri4);,_-textmult;@;j;mc;@;lanterneau CO2;$m=$(getvar,useri3)x$(getvar,useri4););

 

 

Christian

 

 

 

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

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Ok, voici la MACRO corrigé :

 

^C^Crectangle;\c;$m=$(getvar,useri3);$(getvar,useri4);@$(getvar,useri3),-$(getvar,useri4);$(if,$(=,$(getvar,useri5),1),-hachures;s;d;;p;solide;cou;bleu;;;^C,-hachures;s;d;;p;solide;cou;rouge;;;^C)^C$(if,$(=,$(getvar,useri5),1),_-textmult;@;j;mc;@;lanterneau fixe;$m=$(getvar,useri3)x$(getvar,useri4);,_-textmult;@;j;mc;@;lanterneau CO2;$m=$(getvar,useri3)x$(getvar,useri4););

 

 

Christian

Merci Christian, plus de pause utilisateur pour l'insertion du texte mais j'ai encore un petit problème,

avec ta macro le texte se place sur le coin droit bas du rectangle or je le souhaite au centre du rectangle,

c'est pourquoi je voulais remplacer le deuxième @ au niveau de l'insertion texte par @-$(getvar,useri3),$(getvar,useri4) [= coin opposé du rectangle] pour centré le texte mais là, la macro s'arrête dès le démarrage... et là je ne comprends plus?

 

autocad m'indique :

Spécifiez la longueur des rectangles <2453.5053>: $m=fixe

 

As-tu une idée? sinon j'utiliserai la macro avec deux pauses utilisateur..

 

B,

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

Merci Christian, plus de pause utilisateur pour l'insertion du texte mais j'ai encore un petit problème,

avec ta macro le texte se place sur le coin droit bas du rectangle or je le souhaite au centre du rectangle,

c'est pourquoi je voulais remplacer le deuxième @ au niveau de l'insertion texte par @-$(getvar,useri3),$(getvar,useri4) [= coin opposé du rectangle] pour centré le texte mais là, la macro s'arrête dès le démarrage... et là je ne comprends plus?

 

autocad m'indique :

Spécifiez la longueur des rectangles <2453.5053>: $m=fixe

 

As-tu une idée? sinon j'utiliserai la macro avec deux pauses utilisateur..

 

B,

 

J'ai encore rencontré ce problème sur une autre macro.

en réalité j’avais deux macro que je voulais réunir à l'aide d'un SI, séparément les deux macro fonctionnes mais ensemble autocad bloque et me remet un message du même type ($m=qq).

Est-il possible d'être limité en nombre d'expression DIESEL?

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é