Aller au contenu

Afficher les coordonées de l'espace objet dans la présentation


Bapt

Messages recommandés

Bonjour,

 

Est-il possible d'avoir les coordonnées de l'espace objet dans une présentation.

 

Dans mon espace objet j'ai un plan de zone et j'aimerais que lorsque je déplace la vue sur la présentation, qu'un champs m'affiche les coordonnées de l'espace objet. Le centre de la vue serai le point des coordonnées à afficher.

 

Merci d'avance pour vos réponses !

Lien vers le commentaire
Partager sur d’autres sites

Pour moi la réponse est plutôt non :P

Du moins impossible avec les champs (qui donne le centre de la fenêtre dans l'EP mais sans lien avec l'EO) donc difficile car nécessitant d'utiliser les réacteurs, entre autres.

;)

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

Merci pour vos réponses.

 

 

deuxième question : la réponse est : repose la question plus clairement

 

Je n'arrives pas à joindre de fichier pour rendre l'explication plus facile ... donc en gros il faudrait afficher les coordonnées de l'espace objet dans la présentation.

 

Le centre de ma présentation serai "le viseur" des coordonnées de mon espace objet.

 

Je sais pas si c'est tellement plus claire :D

 

Salutations

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Comme un champ dit "dynamique" ne se met à jour qu'après une intervention de l'utilisateur, une solution sans réacteurs devrait être acceptable.

Le LISP suivant (améliorable) affiche le centre de la vue de la fenêtre sélectionnée.

 

(defun c:centrevue ()
 (trans (cdr (assoc 12 (entget (car (entsel "\nSélectionnez une fenêtre: "))))) 2 0)
)

Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
ADSK_Expert_Elite_Icon_S_Color_Blk_125.png

Lien vers le commentaire
Partager sur d’autres sites

pourrais-tu me dire si c'est possible de sélectionner l'espace objet plutôt qu'une fenêtre de présentation ?

:blink: ???

Je ne sais pas "sélectionner l'espace objet" et, dans tous les cas, ces coordonnées sont celles du centre d'une fenêtre flottante, il est donc indispensable de savoir de quelle fenêtre il s'agit.

Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
ADSK_Expert_Elite_Icon_S_Color_Blk_125.png

Lien vers le commentaire
Partager sur d’autres sites

(defun c:centrevue ()
 (trans (cdr (assoc 12 (entget (car (entsel "\nSélectionnez une fenêtre: "))))) 2 0)
)

Ah bah oui ! TRANS fait le lien, je n'y avais pas pensé !?

J'ai quand-même du mal à trouver un résultat cohérent sur mon dessin, là

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

Je vais essayer de reformuler depuis le début.

 

Dans les propriétés de l'espace objet, j'ai dans Vue :

 

Centre X

Centre Y

Centre Z

Hauteur

Largeur

 

Lorsque je déplace ma vue ces valeurs changent (normale).

 

Je retrouve ces valeurs dans ma présentation lorsque je clique sur Objet. Si je viens déplacer la vue dans la présentation les coordonnées du centre de ma vue changent.

 

Jusque là tout va bien.

 

Serait-il possible d'extraire la valeurs des coordonnées du centre de ma vue (objet et non papier) pour pouvoir la faire apparaître dans mon cartouche par exemple ?

 

Je sais que cela n'est pas très claire mais je ne vois pas comment mieux le formuler...

 

Merci pour prendre le temps de répondre

 

Salutation

Lien vers le commentaire
Partager sur d’autres sites

Moi j'ai super bien compris depuis le début * ;)

 

Mais je n'ai pas de solution autre qu'en lisp. Je n'aurais pas trouvé aussi court que celui de (gile) mais je ne parviens toutefois pas à le faire fonctionner. B)

 

*Je sais bien faire l'inverse, Zoom Centre en spécifiant les coordonnées avant de quitter la fenêtre.

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

Je n'arrives pas non plus à faire fonctionner le lisp.

 

Le LISP ne fait que retourner le résultat (les coordonnées SCG du centre de la fenêtre) qui s'affiche sur la ligne de commande.

 

Celui-ci ne demande pas de sélectionner de fenêtre mais ne fonctionne que s'il n'y en a qu'une. Il crée un texte avec les coordonnées SCG au centre de la fenêtre.

 

(defun c:toto (/ ss i vp el cv pt)
 (if (= (getvar 'tilemode) 1)
   (prompt "\nCommande non autorisée en espace objet.")
   (if (setq ss (ssget "_X" (list (cons 0 "VIEWPORT") (cons 410 (getvar 'ctab)))))
     (if (< 2 (sslength ss))
       (prompt "\nIl y a plus d'une fenêtre dans la présentation.")
       (progn
         (setq i 0)
         (while (and (setq vp (ssname ss i)) (not cv))
           (if (/= (cdr (assoc 69 (setq el (entget vp)))) 1)
             (setq cv (cdr (assoc 12 el)))
             (setq i (1+ i))
           )
         )
         (if cv
           (progn
             (if (= (getvar 'cvport) 1)
               (command "_.mspace")
             )
             (setq pt (trans cv 2 0))
             (command "_.pspace")
             (command "_.text"
                      "_non"
                      (trans cv 2 3)
                      ""
                      ""
                      (strcat (rtos (car pt)) ", " (rtos (cadr pt)))
             )
           )
         )
       )
     )
     (prompt "\nAucune fenêtre dans la présentation")
   )
 )
 (princ)
)

Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
ADSK_Expert_Elite_Icon_S_Color_Blk_125.png

Lien vers le commentaire
Partager sur d’autres sites

Merci beaucoup (gile) !

 

Je vais essayer de décortiquer ton code pour l'adapter à mon dessin.

 

Quand je dis que je n'arrive pas à le faire fonctionner c'est juste que chez moi les coordonnées renvoyées ne sont pas les bonnes !

 

Idem pour moi.

 

Salutations

Lien vers le commentaire
Partager sur d’autres sites

C'est bon j'ai trouvé la solution

 

Le texte à afficher est le bon mais c'est juste que je voulais contrôler le point d'insertion (par ex. dans mon cartouche ) au lieux du milieux de la feuille.

 

 (setq pt (trans cv 2 0))
              (command "_.pspace")
              (command "_.text"
                      
	       '(50 10)
                       ""
                       ""
                       (strcat (rtos (car pt)) ", " (rtos (cadr pt)))	;;(strcat (rtos (car pt)) ", " (rtos (cadr pt)))

 

Merci beaucoup !

Lien vers le commentaire
Partager sur d’autres sites

J'ai remarqué qu'il faut juste faire attention au style de texte courant.

 

J'avais un soucis avec l'utilisation de ce LISP sur un dessin déjà crée. Le style de texte courant était sur "ANNOTATIONS". Il ne reconnaissait pas le texte à afficher :

 

Entrez le texte:

Commande: -1318.199, -312.195 Commande inconnue "199, -312.195". Appuyez sur F1 pour obtenir de l'aide.

 

En passant le style de texte courant sur "STANDARD", le problème à disparu.

 

Si ça peut aider d'autres personnes.

 

Salutations !

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é