Aller au contenu

Encartage - mettre au premier plan un objet dans toutes les présentations


yann69690

Messages recommandés

Bonjour,

Je ne suis pas arrivé à trouver un Lisp me permettant de mettre en premier plan un objet sur tous les onglet de présentation, par exemple dans mon cas un objet bloc nommé "Repérage planche" qui est présent mais dessous l'encartage, ce qui est balo pour me repérer sur les 40 planches...

Avez vous cela en Lisp ou une idée sans programmation car malheureusement je ne comprend pas encore ce language 😝

Je vous remercie par avance.

Cordialement

image.thumb.png.5f3124eff200513dba2bf809c5991a83.png

Lien vers le commentaire
Partager sur d’autres sites

Il y a 21 heures, lili2006 a dit :

Bonjour à toutes et tous,

 

Et pourquoi ne pas mettre ce bloc directement dans l'EP ?

 Bonjour à tous ,

Je vous remercie de m'avoir répondu, je vais faire le newbie, késako "EP"? pour moi c'est éclairage public mais c'est sans rapport ici 

C'est des planches déjà existant fait par un autre bureau d'étude, mais ça pourrait toujours me servir pour bien faire la prochaine fois.

 

Bonne journée

Lien vers le commentaire
Partager sur d’autres sites

Coucou,

Ah bah @didier a été plus rapide ^^"
Mais vui, "EP" et "EO" font simplement référence aux alias des commandes AutoCAD "ESPACEP" et "ESPACEO" (ou "_PSPACE" et "_MSPACE" en anglais). Donc à force d'utiliser ces alias, ils sont rentrés dans le langage courant de tout bon Autocadien qui se respecte 😜
Du coup comme le suggère @lecrabe, mettre un élément sur l'EP le rendra forcément au premier plan étant donné que l'EO est en arrière-plan par rapport à l'EP. Par contre si tu changes l'échelle ou que tu déplaces ton EO, tes objets en EP eux ne bougeront pas...

Perso j'utilise simplement l'option "Ordre de tracé" dispo via le clic droit après avoir sélectionner les objets pour modifier l'ordre de tracé et remettre au premier-plan ou en arrière-plan les objets en ayant besoin. Cela aura forcément un impact sur toutes tes présentations étant donné que tu ferais cela depuis l'EO 🙂
Je ne pense pas que de la programmation soit nécessaire pour cela, à moins que je n'ai pas compris ta demande.

Bisous,
Luna

Lien vers le commentaire
Partager sur d’autres sites

Bonjour

Je plussoie le message de @Luna

C'est une règle non écrite, mais à respecter : on ne met pas dans l'EP des choses qui sont en relation avec les objets de l'EO.
Certains font même de la cotation, c'est risqué au possible !
J'ai même vu des flèches d'orientation du Nord en en EP, un changement de scu et c'est mort !

Je n’ai pas trop bien compris la question, c'est possible d'avoir un DWG pour décortiquer ?

Amicalement

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Quelque chose comme cela :

(defun C:BlocPresDessus ( / sLayout JEU)
  (foreach sLayout (layoutlist)
    (setvar "CTAB" sLayout)
    (if (setq JEU (ssget "x" (list (cons 0 "INSERT") (cons 2 "Repérage planche") (cons 410 sLayout))))
      (command "_DRAWORDER" JEU "" "_FRONT")
    )
  )
)

 

Olivier

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Oui désolé pour mon ignorance, je les utilise au quotidien, (pas en commande mais en cliquant sur le bouton), mais j'avais ne jamais avoir pensé à ça 🤣

je vais vous envoyé le fichier source mais en effet, c'est déja dans espace papier justement, avec un seul encartage et après dans chaque onglet de présentation la société a bouger de place le reperage, voir parfois mis en dessous de l'encartage... (voir fichier car ce n'est pas trop compréhensible (je l'envoie par we-transfert).

Mais du coup, malheureusement je ne répond pas trop à ma question, d'ailleurs comment gérer vous justement ce concept d'encartage qui permet de se repérer sur une route partager en plein de présentation?

 

Je te remercie Olivier, j'ai juste un petit problème, j'ai copier coller dans un fichier BlocPresDessus.lsp et lancer mais le script ne s'arrête pas, il ne s'arrête pas de régénérer les présentation comme si il n'avait as de break, la touche ESC, ne permet pas d'arrêter le script j'ai du quitter autocad. As tu une idée?

 

Merci à tous et bonne journée

Lien vers le commentaire
Partager sur d’autres sites

Bonjour @yann69690,

 

J'ai testé le code sur un exemple rapide chez moi avant de poster et ça fonctionne sans souci, donc sans le fichier (pas de pièce jointe au message précédent) qui pose problème impossible de savoir ce qui se passe.

Le principe du programme, c'est de passer de présentation en présentation et de mettre au dessus le bloc, donc une regénération à chaque fois que l'on change de présentation. Sur un gros fichier avec beaucoup de présentation ça peut prendre du temps. Sinon pour aller plus vite, il est possible de geler tous les calques, sauf celui(ceux) des présentations et surtout celui d'insertion du bloc encartage.

 

Olivier

Lien vers le commentaire
Partager sur d’autres sites

Bonjour 

Veuillez trouver ci-joint le plan nettoyé (enlever toutes les XREF), vous verrez dans la planche 0 il y a bien le repérage (les hachures) dans l'encartage représentant la planche 0.

@Olivier Eckmann

Lien du fichier, je ne suis pas arriver à le mettre sur le forum https://we.tl/t-NSf8Sk1kNR

J'ai retesté ton code sur l'exemple test netoyé, c'est clair qu'il est bien plus rapide, au moins je le vois finir, mais par contre il ne met pas le bloc au premier plan comme si il n'arrivais pas à le sélectionner.

Bonne journée et merci à tous

Lien vers le commentaire
Partager sur d’autres sites

Essaie avec ça,

 

(defun C:BlocPresDessus ( / sLayout JEU)
  (foreach sLayout (layoutlist)
    (setvar "CTAB" sLayout)
    (if (setq JEU (ssget "x" (list (cons 0 "INSERT") (cons 2 "`*U*,Repérage planche") (cons 410 sLayout))))
      (progn
	;; parcourt le jeu de sélection pour écarter les blocs non issus de "Repérage planche"
   	(repeat (setq i (sslength JEU))
   	  (setq bl (ssname JEU (setq i (1- i))))
   	  (if (/= (getpropertyvalue bl "BlockTableRecord/Name") "Repérage planche")
   	    (ssdel bl JEU)
   	  )
   	)
	(if (and JEU (> (sslength JEU) 0))
          (command "_DRAWORDER" JEU "" "_FRONT")
	)
      )
    )
  )
)

Avec ton fichier test ça prend à peine 3 secondes.

Ceci dit, ajouter un grip de rotation pour faire tourner tout le bloc, ça alourdit inutilement le DWG (création d'autant de bloc que de version tournée) alors qu'un bloc simple peut recevoir une rotation qui fait exactement la même chose.

 

Olivier

Lien vers le commentaire
Partager sur d’autres sites

ca fonctionne super 7 min sur le gros fichier merci bien 👍

J'imagine que pour le réadapter à d'autre bloc c'est directement a remplacer Repérage planche... par contre je capte vraiment rien à la programmation sur autocad, aurait tu stp un livre à me conseiller ou qqch comme ça ? typiquement le premier if qui permet de filtrer le nom du bloc 

Bon weekend et vraiment merci

Lien vers le commentaire
Partager sur d’autres sites

  • 9 mois après...
Le 25/10/2021 à 16:58, Olivier Eckmann a dit :

Bonjour,

 

Quelque chose comme cela :

(defun C:BlocPresDessus ( / sLayout JEU)
  (foreach sLayout (layoutlist)
    (setvar "CTAB" sLayout)
    (if (setq JEU (ssget "x" (list (cons 0 "INSERT") (cons 2 "Repérage planche") (cons 410 sLayout))))
      (command "_DRAWORDER" JEU "" "_FRONT")
    )
  )
)

 

Olivier

Merci Olivier c'est génial. Dans mon cas, j'ai un bug qui arrive plus d'une fois (avec ou sans ce lisp) où les objets de l'espace papier se mettent derrière le bloc de la présentation tout de même. Aurais-tu une solution ? 

Lien vers le commentaire
Partager sur d’autres sites

Citation

J'ai même vu des flèches d'orientation du Nord en en EP, un changement de scu et c'est mort !

j'utilise ce procéder avec mon programme, il suffit de regen la fenêtre pour avoir la nouvelle rotation du nord 😉

j'ai donc mes nord(s) toujours au même endroit même en cas de chevauchement.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour @Curlygoth

Tout est possible, mais si le dessin passe entre des mains inexpertes et qu'une rotation de SCU est faite, tu ne vas pas me dire qu'il te passe un coup de fil pour que tu remettes le bloc indiquant le nord dans la bonne direction !.

Je reste sur mon idée que c'est une "fausse bonne idée" pour l'instant, car je ne vois pas de preuve de pérennité du fichier.

Amicalement

Lien vers le commentaire
Partager sur d’autres sites

Citation

dessin passe entre des mains inexpertes et qu'une rotation de SCU est faite, tu ne vas pas me dire qu'il te passe un coup de fil pour que tu remettes le bloc indiquant le nord dans la bonne direction !.

 

oui c'est sur...

Mais je pars du principe que si tu prends mon plan c'est la mettre en xref ou voir les détails... ou pompé mes blocs etc...

si un bureau "s'amuse" à bouger les fenêtres des présentations qui se verrouille automatiquement à chaque fois... là je n'y peux rien XD

Pour moi l'espace papier ne dois pas être modifier par quelqu'un d'autre que le dessinateur...

D'ailleurs l'ancien desisnateur ne s’embêtait pas lui : il faisait une rotation des objets dans l'espace objet pour faire une fenetre sans rotataion de la vue... donc bon... Mon Nord sur la présentation en comparaison... XD

Il y a des "mains inexpertes" partout, quand je reçois des plans bizzarrement foutu, je me demande avant : pourquoi c’est différent ? technique que je ne connais pas ? erreur de celui qui me l'envoie ?

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é