Aller au contenu

Création automatique de calque(s)


Messages recommandés

Posté(e)

Bonjour à tous,

 

est ce que quelqu'un connait un moyen simple de créer automatiquement un calque à chaque copier coller d'un bloc?

 

Sachant également que le nom de chaque calque devra s'incrémenter numériquement à chaque copier coller.

 

Bonus: en parallèle de la création du calque, je voudrais également qu'une présentation soit crée de la même manière que le calque.

 

Merci par avance.

Posté(e)

La manip. ne devra se faire que pour un bloc bien précis.

Les calques ainsi crées s'appelleraient 0, 1, 2, 3, etc....

Les présentations s'appelleraient Folio 1, Folio 2, etc...

Posté(e)

Le bloc est inséré dans l'espace objet.

En l'insérant je voudrais créer un calque et une présentation supplémentaire.

 

Petite précision: le bloc est un folio électrique.

Sur mon folio, j'ai 3 attributs: le n° de page courante, le n° de page suivant et le n° de page précédent.

 

Pour l'instant je crée manuellement un calque que je renomme suivant le n° de page courant. Ce qui me permet d'avoir une automatisation dans mes n° de folio via mes attributs.

 

De plus je crée également manuellement une présentation pour chaque folio que je renomme et dans laquelle j'adapte la vue afin d'avoir une présentation qui corresponde exactement à mon folio.

Et ainsi de suite pour chaque folio que je rajoute.

 

Le but est d'automatiser toutes ces manipulations redondantes.

Posté(e)
Pour l'instant je crée manuellement un calque que je renomme suivant le n° de page courant. Ce qui me permet d'avoir une automatisation dans mes n° de folio via mes attributs.

C'est-à-dire ? tu insères le bloc par exemple sur le calque 36, et tu as un champ dans l'attribut "page courante" pour récupérer le nom du calque sur lequel se trouve le bloc ?

 

 

En tout cas voici un petit exemple de macro à coller dans un bouton personnalisé :

^C^Cuseri1;$M=$(+,$(getvar,useri1),1);-calque;e;"$M=$(getvar,useri1)";;-presentation;n;"$M=$(getvar,useri1)";-inserer;BLOCFOLIO

J'ai utilisé les commandes françaises pour que ce soit plus simple à modifier si besoin.

Il faut remplacer BLOCFOLIO par le nom de ton bloc.

La variable useri1 stocke le n° du dernier folio créé, elle est à 0 par défaut dans un nouveau dessin.

Si jamais quelque chose va de travers et qu'il faut repartir d'un numéro existant, il suffit de taper USERI1 dans la ligne de commande et de lui affecter la valeur voulue avant de lancer la macro.

Bien sûr en LISP on pourrait faire quelque chose de plus sophistiqué.

 

 

 

 

[Edité le 9/11/2010 par bryce]

Posté(e)

C'est exact.

Mon gabarit est composé de deux blocs: 1 cartouche et 1 folio

Mon bloc "cartouche" est sur le calque "cartouche".

Mon bloc "folio" est sur le calque 0.

 

Sur ce bloc "folio", j'ai 3 attributs: le n° de page courante, le n° de page suivant et le n° de page précédent.

Le n° de page courante = nom du calque soit 0.

Le n° de page suivant = nom du calque +1 soit 1.

 

Quand je copie/colle le bloc "folio", je veux qu'il crée automatiquement 1 calque et une présentation supplémentaire.

 

Du coup en faisant le copier/coller, je veux voir apparaitre un calque avec le nom "1" et une présentation avec le nom "folio 1" avec la fenêtre qui s'ajusterait directement au bloc ainsi crée.

 

Et ainsi de suite à chaque fois que je ferai un copier/coller du bloc "folio"

 

 

Posté(e)

A priori la macro suivante fait ce que tu veux :

 

^C^Cuseri1;$M=$(+,$(getvar,useri1),1);-calque;e;"$M=$(getvar,useri1)";;_-layout;n;Folio_"$M=$(getvar,useri1)";attreq;0;-inserer;BLOCFOLIO;\;;;attreq;1;_-layout;e;Folio_"$M=$(getvar,useri1)";ef;tout;;fmult;;_mspace;zoom;o;d;;fmult;v;ac;d;;_pspace;tilemode;1

 

Par contre pas de copier/coller !

Il faut créer un bouton personnalisé avec cette macro, mettre ce bouton dans une barre d'outils (ou une palette d'outils ou le Ruban), et obligatoirement utiliser ce bouton pour ajouter un folio.

 

Voici ce que fait la macro, par exemple lors de la 1ère utilisation (useri1=0 au départ):

- ajoute 1 à useri1 (0+1 -> 1)

- crée un calque dont le nom correspond à la nouvelle valeur de useri1 (par ex. 1)

- crée une présentation appelée Folio_1

- insère le bloc appelé BLOCFOLIO sans demander de renseigner les attributs

- passe dans l'onglet Folio_1

- efface tous les objets existants

- crée une fenêtre correspondant à la zone de tracé

- active cette fenêtre (passe en espace Objet)

- fait un zoom sur le dernier objet créé (le bloc inséré précédemment)

- verrouille la fenêtre

- repasse en espace Papier

- retourne dans l'onglet Objet.

 

Il faudra peut-être adapter la macro sur certains points, par exemple pour insérer une présentation depuis un gabarit plutôt que d'en créer une vierge.

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é