Aller au contenu

Messages recommandés

Posté(e)

Bonjour,

 

Comment faire pour placer des lignes dans un calque qui n'existe pas.

Je m'explique :

j'ai souvent à travailler sur des plans créé par des personnes extérieures, qui ot chacunes leur façon de travailler.

 

Il m'arrive souvent de sélectionner un grand nombre de ligne, forme, blocs pour les placer dans un nouveau calque, et là je me rend compte que le calque dans lequel je veut les mettre n'a pas encore été créé.

 

Oui je sais, je m'y prend mal, et je devrait d'abord créer les calques dont j'ai besoin, (c'est d'ailleurs que ce j'ai fait). Dans le meilleur des mondes ce serait suffisant, mais il m'arrive souvent d'avoir à utiliser des calques non encore créés.

 

Donc est il possible de d'abord sélectionner des lignes, puis de les envoyer dans un calque qui serait créé à ce moment là ?

 

Merci

***********************

Rien ne sert de courrir, il faut partir à point.

Posté(e)

Bonjour,

 

je ne suis pas pro,

 

mais tu pourrais te créer un fichier gabarit avec les calques type de lignes et autres dont tu as besoin.

 

tu ouvres toujours avec ton gabarit de base,

tu insère le plan recupéré et decomposé

tu sauvegarde sous

et tu envoie les lignes et blocs existants dans tes claques déjà créér dans ton gabarit

 

un peu archaique certes :P

sur covadis 14.0c et AutoCAD® Map 3D 2015

Posté(e)

Bonjour,

 

(entmake) permet de créer des entités sur des calques non définis au préalable, même pas besoin de s'assurer que le calque existe dans la table des "LAYER", (entmake) assume la cohérence avec la définition de la table.

Donc le code suivant devrait fonctionner avec soit une sélection effectuée ou objet "gripés".

 

Attention je ne vérifie pas les caractères autorisés pour le nom du calque (absence de :? < > etc..)

((lambda ( / js nam_lay n dxf_ent dxf_nent)
 (setq js (ssget "_I"))
 (if (null js) (setq js (ssget "_P")))
 (cond
   (js
     (setq nam_lay (getstring T "\nNom du nouveau calque?: "))
     (repeat (setq n (sslength js))
       (setq
         dxf_ent (entget (ssname js (setq n (1- n))))
         dxf_ent (subst (cons 8 nam_lay) (assoc 8 dxf_ent) dxf_ent)
       )
       (entmake dxf_ent)
       (if (member (cdr (assoc 0 dxf_ent)) '("INSERT" "POLYLINE"))
         (progn
           (setq dxf_nent (entget (entnext (cdar dxf_ent))))
           (while (/= (cdr (assoc 0 dxf_nent)) "SEQEND")
             (setq dxf_nent (subst (cons 8 nam_lay) (assoc 8 dxf_nent) dxf_nent))
             (entmake dxf_nent)
             (setq dxf_nent (entget (entnext (cdar dxf_nent))))
           )
           (entmake dxf_nent)
         )
       )
     )
   )
 )
 (prin1)
))

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Posté(e)

Bonjour,

 

je ne suis pas pro,

 

mais tu pourrais te créer un fichier gabarit avec les calques type de lignes et autres dont tu as besoin.

 

tu ouvres toujours avec ton gabarit de base,

tu insère le plan recupéré et decomposé

tu sauvegarde sous

et tu envoie les lignes et blocs existants dans tes claques déjà créér dans ton gabarit

 

un peu archaique certes :P

Non, comme dit plus haut c'est exactement cette procédure que j'utilise,

mais parfois il arrive que certaint éléments doivent être disposé dans des calques "nouveaux"

et bien sur je me rend compte à chaque fois que ces calques me manquent une fois que j'ai fini la sélection (qi bien sûr dans tous les cas concerne un nombre important d'éléments, dificiles à sélectionner)

***********************

Rien ne sert de courrir, il faut partir à point.

Posté(e)

Ooopss désolée

 

je découvre également cette manip mais la barre d'outils autocad "calques II" est la solution

 

dedans tu as une icone(2 calques avec une tite etoile)"copier les objets dans un nouveau calque" que tu nomme à l'envie

 

bon courage :P

sur covadis 14.0c et AutoCAD® Map 3D 2015

Posté(e)
euh, question :

Comment tu utilises cette fonction.

 

Lorsque ta sélection est effectuée, pour tester; tu copie-colle le code en ligne de commande et cela sera exécuté immédiatement.

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Posté(e)

Ooopss désolée

 

je découvre également cette manip mais la barre d'outils autocad "calques II" est la solution

 

dedans tu as une icone(2 calques avec une tite etoile)"copier les objets dans un nouveau calque" que tu nomme à l'envie

 

bon courage :P

 

En fait c'est pas mal, sauf que cela fait une copie,

alors que ce que je voudrais c'est déplacer mes données...

***********************

Rien ne sert de courrir, il faut partir à point.

Posté(e)

Bonjour,

 

Tu peux utiliser cette petite macro

^C^C_COPYTOLAYER \Y;D;0;_erase;P;

 

Attention à ne pas rajouter d'espace.

Le calque doit impérativement ne pas exister car j'ai supprimé la confirmation de création.

 

A+

Posté(e)
En fait c'est pas mal, sauf que cela fait une copie,

alors que ce que je voudrais c'est déplacer mes données...

 

Re Oopps en effet barbichette!! :unsure:

 

alors après verification cette fois du as

Commande: CHANGCALQUEMULT

Sélectionnez les objets à modifier:

Choix des objets: 1 trouvé(s)

Choix des objets:

Sélectionnez un objet sur le calque de destination ou [Nommer]: N

Un objet transféré au calque "****"

....

a toi ensuite de parametrer ton calque

 

et pour la selection je viens d'apprendre sur ce forum les commandes

selection similaire et selection des etiquettes similaires

merci Cadxp :)

sur covadis 14.0c et AutoCAD® Map 3D 2015

Posté(e)

Bonjour,

 

Tu peux utiliser cette petite macro

^C^C_COPYTOLAYER \Y;D;0;_erase;P;

 

Attention à ne pas rajouter d'espace.

Le calque doit impérativement ne pas exister car j'ai supprimé la confirmation de création.

 

A+

On avance pas mal du tout

je peux d'abord sélectionner et ensuite créer le calque qui me manque

maintenant ce qu'il faudrait c'est que cela ne fasse une copie des entités dans le nouveau calque, mais que cela déplace ces entités dans le nouveau calque.

 

Est-ce possible

un truc du style

^c^c_ChangeTOLAYER \Y;D;0;_erase;P;

***********************

Rien ne sert de courrir, il faut partir à point.

Posté(e)

Bonjour,

 

Je ne connaissais pas la commande CHANGCALQUEMULT donné par SOP767138 qui fonctionne très bien.

Si tu veux supprimer les étapes intermédaires de la commande, tu peux utiliser la macro ci-dessous :

 

^C^C_CHANGCALQUEMULT;n;\O;

 

Comme la précédente, cette macro supprime les différentes confirmations. Ton calque doit donc impérativement ne pas exister sinon la commande plante. En cas de doute, utilise la commande CHANGCALQUEMULT.

 

A+

 

PS : Je ne comprend pas trop pourquoi cette commande n'est présente nulle part et doit impérativement être appelée au clavier (même pas un petit alias !). :mellow:

Posté(e)

Salut,

il doit y avoir une petite erreur dans la syntaxe du code...

car pendant l'exécution, il me propose de déplacer (ce qui est bien) les objets mais sur le calque courant (ou sur un calque existant qu'il faut alors nommer)

cela ne demande pas la création d'un nouveau calque.

je vais tester en modifiant des paramètres.....

***********************

Rien ne sert de courrir, il faut partir à point.

Posté(e)

Ah putain merci (comme dirait Jean Dujardin)

 

Ca marche et ça répond exactement à ce que je désirai : que demander de mieu

 

 

Elle marche à 2 conditions :

- Que la macro soit enregistrée en bouton

- que les objets soient précédemment sélectionnés.

 

Je te ferais bien un bisou, mais je ne me suis pas rasé ce matin.

 

Joyeuses Pâques.

***********************

Rien ne sert de courrir, il faut partir à point.

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é