fabcad Posté(e) le 16 février 2022 Posté(e) le 16 février 2022 Je souhaiterais récupérer dans un texte le nom de SCU nommé lié à un Viewport d'une présentation. J'ai essayé par la voie d'un texte avec un champ, mais dans les propriétés de l'objet Viewport ne figure pas cette valeur. Avez-vous des idées ? Merci d'avance, Fabcad Citer
JPhil Posté(e) le 16 février 2022 Posté(e) le 16 février 2022 Je ne sais pas si on peut récupérer le nom du SCU nommé dans une fenêtre mais je sais qu'on peut changer le SCU dans la fenêtre sans changer la vue finale. Je m'explique : Etape 1 : dans une fenêtre tu utilises un SCU nommé (ou SCU perso) en oubliant pas d'utiliser la commande "repere" afin d'avoir le rendu souhaité, Etape 2 : tu changes ton SCU nommé (ou SCU perso) en SCU général en oubliant volontairement d'utiliser la commande "repere" Etape 3: tu verrouilles la fenêtre Dans ce cas là il est impossible d'avoir une information fiable concernant le SCU utilisé. Citer
Luna Posté(e) le 16 février 2022 Posté(e) le 16 février 2022 Coucou, Tu peux éventuellement regarder du côté de la variable système "UCSNAME" mais par contre cette variable ne renvoie la valeur que pour l'espace courant... Donc si ton texte + champ est dans l'espace papier par exemple, bah il n'affichera rien car ton espace papier est en "Général" donc pas un SCU nommé. Mais en revanche si ton texte est directement dans l'espace objet, il affichera selon le SCU de la fenêtre la bonne valeur (dans le cas d'un SCU nommé). Après je n'ai pas vraiment testé, donc si chat se trouve, la manip' ne fonctionne pas vraiment mais cela peut être une piste. De plus, comme le souligne @JPhil, si UCSFOLLOW = 0, tu peux très facilement avoir une fenêtre dont son SCU n'est pas aligné à l'axe X Y de la fenêtre, donc tu n'auras pas de méthode fiable. Bisous, Luna Citer
eklundh80 Posté(e) le 17 février 2022 Posté(e) le 17 février 2022 Bonjour, Voici un lisp qui affiche dans la ligne de commande le nom du scu si présent, à adapter selon les besoins pour entrer la valeur dans un texte. Il suffit de sélectionner la fenêtre. (defun c:ucs_viewport ( / vp a b) (if (and (setq vp (car (entsel "Choix de la fenêtre"))) (= (cdr (assoc 0 (entget vp))) "VIEWPORT") (setq a (assoc 345 (entget vp))) (setq b (assoc 2 (entget (cdr a)))) ) (cdr b) (princ) ) ) Citer
fabcad Posté(e) le 17 février 2022 Auteur Posté(e) le 17 février 2022 Bonjour, Magnifique, je n'ai plus qu'a reprendre mes routines pour créer une qui ajoute mon texte ou mtext. Le nez dans le guidon et on ne voit plus rien, Merci eklundh80 Résultat de ma routine : ; Fabrice Demiel 20220220 (vl-load-com) (defun c:Ecrire_NomSCU_Fenetre (/ space vp pt a b nom_scu) (setq space (vla-get-PaperSpace (vla-get-ActiveDocument (vlax-get-acad-object)))) (if (and (setq vp (car (entsel "\n Selectionnez une fenetre : "))) (= (cdr (assoc 0 (entget vp))) "VIEWPORT") (setq a (assoc 345 (entget vp))) (setq b (assoc 2 (entget (cdr a)))) (setq nom_scu (cdr b)) (setq nom_scu (strcat nom_scu "\n_")) );fin and (progn (setq pt (getpoint "\n Specifiez un point pour le Mtexte :")) (setq obj_mtxt (vla-addMText space (vlax-3d-point pt) 0. nom_scu );fin vla-addMText );fin setq obj_mtxt (vla-put-AttachmentPoint obj_mtxt acAttachmentPointBottomCenter) (vla-put-Height obj_mtxt 4) (setq calque_NomsScu "_Noms des scu") (vla-put-Layer obj_mtxt calque_NomsScu) (princ) );fin progn );fin if (princ) ) Fabcad Citer
Messages recommandés