Aller au contenu

Récupération du nom de SCU lié à un Viewport d'une présentation


Messages recommandés

Posté(e)

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

Posté(e)

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é.

Posté(e)

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

Posté(e)

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)
    )
  )

 

Posté(e)

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

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • 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é