Aller au contenu

Lisp xref selection & draw order


jcouaknine

Messages recommandés

Bonjour,

 

Je cherche un lisp qui sélectionne toujours la même XREF dans des dessins hôtes, et la met en arrière-plan en terme d'ordre de tracé.

 

Cette XREF est, bien entendu, toujours au même endroit et porte le même nom.

 

Une demande supplémentaire peut être de changer son calque d’accueil dans les dessins hôtes...

 

Merci d'avance pour votre aide.

Lien vers le commentaire
Partager sur d’autres sites

Personnellement, je place toujours mes Xref dans le même calque : "_XRef", du coup, je pense que cette routine devrais fonctionner, mais je ne l'ai pas essayée...

(defun c:XrefDessous ()
 (if (setq Select (ssget "_X" '((8 . "_Xref")))) ;_ Fin de setq
   (command "ordretrace" Select "" "ar" "")
 ) ;_ Fin de if
) ;_ Fin de defun

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Et merci pour cet élément de réponse.

 

Il s'avère en l'espèce que cette XREF n'a pas toujours été insérée dans le bon calque.

 

Qui plus est il peut y avoir aussi plusieurs XREFS dans ce même calque et c'est bien cette dernière qui me pose problème en terme d'ordre de tracé, c'est pour cela que je souhaite la mettre seule en arrière...

 

Je souhaite donc bien la sélectionner via un lisp, puis la mettre en arrière, et ce indépendamment du calque d'insertion.

 

Il est sûr également que je souhaiterai en complément à ma demande initiale, un lisp qui sélectionne toutes les XREFs et les place dans le bon calque d'insertion...

 

JC

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

en reprenant le lisp de DenisH

 

pour une xref

(setq Select (ssget "_X" '((0 . "INSERT") (2 . "MON_NOM_DE_XREF"))))

 

pour toutes les xref, plus compliqué car dans la table des blocs (trouvé ici)

(defun xrefsel ( / blk xrefs )
(setq blk (tblnext "BLOCK" 'T))
(while blk
(if (> (logand 4 (cdr (assoc 70 blk))) 0)
(progn
(setq name (cdr (assoc 2 blk)))
(setq xrefs (if xrefs (strcat xrefs "," name) name))
) )
(setq blk (tblnext "BLOCK"))
)
(ssget "X" (list '(0 . "INSERT") (cons 2 xrefs)))
)

(setq Select (xrefsel))

Aide au téléchargement du cadastre dgfip-download-helper
Insertion de photos géolocalisées exif https://www.dropbox.com/s/gkf6o9ac2hxen97/exifscr.zip?dl=0
Script correction BUG SPDC V2, propriétaire département 21 et 22 : https://greasyfork.org/scripts/442400-spdcv2/code/SPDCV2.user.js

Lien vers le commentaire
Partager sur d’autres sites

Je me suis fais doublé ! ! !

 

Mais je cherchais pourquoi cette routine ne fonctionnait pas :

;;;Place tout ce qui est dans le calque _XRef en arrière plan
(defun c:XrefDessous (/)
 (if (setq Select (ssget "_X" '((8 . "_Xref")))) ;_ Fin de setq
   (command "ordretrace" Select "" "ar" "")
 ) ;_ Fin de if
 (princ)
) ;_ Fin de defun

Et AutoCAD me répond ça :

Commande: XREFDESSOUS Commande inconnue "XREFDESSOUS". Appuyez sur F1 pour obtenir de l'aide.

Alors qu'il me propose cette commande...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Rectification... Elle fonctionne, mais AutoCAD me répond toujours "Commande inconnue"...

 

Comprend pô...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Lien vers le commentaire
Partager sur d’autres sites

Autant pour moi

Lorsque je lance la commande Xrefdesous

Il me met bien la xref en dessous

Mais la ligne de commande m'indique bien aussi commande inconnue Xrefdessous

Je ne sais pas quoi faire car je dois à tout prix exécuter ce lisp plusieurs fois via un script intégré dans un .bat

 

Merci pour votre aide

Lien vers le commentaire
Partager sur d’autres sites

il y a 2 guillemets en trop à la fin de la ligne (command...

Cet espace essaie de relancer la dernière commande lancée comme une commande AutoCAD et évidemment ça répond commande inconnue

remplacer la ligne

(command "ordretrace" Select "" "ar" "")

par

(command "ordretrace" Select "" "ar")

 

ou mieux par

(command "_draworder" Select "" "_back")

pour assurer un fonctionnement quelque soit la langue de l'AutoCAD

 

Olivier

Lien vers le commentaire
Partager sur d’autres sites

Rectification... Elle fonctionne, mais AutoCAD me répond toujours "Commande inconnue"...

 

Comprend pô...

 

ça doit venir de la (command "ordretrace" Select "" "ar" "") où le dernier "" doit être en trop. Et, lorsqu'une commande est terminée, le fait d'appuyer sur barre d'espace (ce que simule "" en lisp) relance la dernière commande. Du coup, ça relance ordretrace une 2ème fois, mais avec des paramètres manquants ou incomplets.

 

C'est vrai que c'est inhabituel, car en général, les commandes demandent d'abord comment on veut faire et, après, avec quoi on veut faire (choix des objets, qu'on termine par un ""). Là, il semblerait que ce soit le contraire.

 

Amicalement

Vincent

C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme)

C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)

Lien vers le commentaire
Partager sur d’autres sites

Effectivement, c'était bien les doubles guillemets ) la fin de (command qui étaient de trop...

 

Merci...

 

Amicalement, Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

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é