Aller au contenu

Messages recommandés

39 minutes ago, quentinQS said:

Bonjours à tous est t'il possible de mettre automatiquement l'échelle de la présentation dans un champs texte

 

Merci D'avance

Arf.... Je ne crois pas. J'avais regardé à une époque.

Sauf peut-être la solution de Thierry.

www.cad-is.fr
Autocad Map 2018 - Covadis/Autopiste V17.0d - Mensura Genius V8
Nous n’héritons pas de la Terre de nos ancêtres, nous l’empruntons à nos enfants
Lien à poster
Partager sur d’autres sites

Bonjour @quentinQS

La réponse est OUI, pour ce faire il va falloir créer un bloc avec attribut.

Ce bloc sera créé depuis l'espace papier
Lancer ATTDEF, répondre aux cases étiquettes et invite, puis dans "par défaut" choisir l'icône "Insérer un champ"
Dans la case de dialogue qui vient de s'ouvrir, choisir OBJET dans "Catégories"
puis dans "Type d'objet" choisir, via l'icône" la fenêtre FMULT dont on veut renseigner l'échelle.


Choisir "Échelle personnalisée" puis dans "Format" : "Utiliser le nom de l'échelle"

 

Créer le bloc classiquement ensuite avec insertion et choix des objets.

Nota : Il faut que l'échelle existe dans la liste des échelles pour cette façon de faire

Pour mettre à jour l'affichage il faut faire une REGEN, (de toute façon le lancement de l'impression lance une REGEN)

Amicalement

D6124787-5806-4A65-8171-D6FA05E24BCC.GIF

Lien à poster
Partager sur d’autres sites

Un simple MTEXT ou TEXT n'est pas suffisant pour l'insertion d'un champs dynamique ?
De plus il faut forcément ré-attribuer la fenêtre à chaque nouvelle référence de texte car le champ est rattaché au handle si je ne me trompe pas ?

Bisous,
Luna

Lien à poster
Partager sur d’autres sites

Bonjour @Luna

Je préfère le bloc avec attribut, mais c'est personnel
J'ai copié-collé les deux (bloc et FMULT ensemble) et dans la copie le champ se met à jour sans erreur de référence en cas de changement de ZoomXP.

Amicalement

  • Upvote 1
Lien à poster
Partager sur d’autres sites
  • 3 semaines après...

Bonjour,

merci c'est très clair.

J'en profite, quand je fais la même chose pour le format de page de présentation, n'est il pas possible de ne garder qu'une partie de l'appellation ? ex : Iso full bleed A3 => A3 ? ou suis-je contraint de recréer/renommer format de page ?


Amicalement,

Lien à poster
Partager sur d’autres sites

Bonjour @drault

Je ne comprends pas la question, du moins sur sa portée...
Car je ne vois pas le moyen de mettre le format en champs d'attribut, je guette les réponses en espérant être contredit.

Les seuls renseignements que j'ai trouvés sont Longueur et Largeur, à la rigueur ça peut définir le format en millimètres,
mais le Type A4 A3 ou autre je ne vois pas.

Amicalement

Lien à poster
Partager sur d’autres sites

Coucou,

J'avoue ne pas bien comprendre la demande...Est-ce que tu parles du format d'impression (Format de papier, depuis le gestionnaire de mise en page de la présentation) ?
Si c'est de cela dont tu parles, alors vouih c'est une donnée récupérable mais isolée la valeur souhaitée ne sera pas une mince affaire...
Une explication plus claire serait la bienvenue :3

Bisous,
Luna

Lien à poster
Partager sur d’autres sites

Avec ce bout de code, je peux récupérer le format d'impression d'une présentation, il faut ensuite injecter cette valeur où tu le souhaites (champ dynamique, attribut, texte, ...).
 

(defun getPrintFormat (name / str-reverse layout-list entlist str pos)

	(defun str-reverse (str)

		(vl-list->string (reverse (vl-string->list str)))

	)

	(if (and
		(setq layout-list (vla-collection->list 'layouts 0))
		(assoc name layout-list)
		(setq entlist (entget (cdr (assoc name layout-list))))
		(setq str (cdr (assoc 4 entlist)))
	    )
		(setq pos (1- (vl-string-position (ascii "(") str))
		      str (substr str 1 pos)
		      str (str-reverse str)
		      str (substr str 1 (vl-string-position (ascii "_") str))
		      str (str-reverse str)
		)
	)

)

Et la fonction permettant de récupérer la liste des présentations :

;--- Nom de la fonction		[]-----------------------[] vla-collection->list []-----------------------[]
;--- Date de création		> 05/03/2021
;--- Dernière modification	> 07/03/2021
;--- Auteur(e)			> Luna
;--- Version			> 1.1.0
;--- Classe			> "VlCol"

;--- But et domaine d'application													;
;	> Permet de transformer une collection VLA sous forme de liste de paires pointées avec le nom et l'ename de chaque objet	;
;	présent dans la collection. Il s'agit d'une version améliorée de la fonction (flt_tbl) car on peut accéder à davantage d'objets	;
;	contrairement aux Symbol Tables (plus limitées) mais sans l'outil de recherche pour filtrer la recherche sur un pattern.	;
;																	;
;--- Déclaration des arguments 														;
;	La fonction (vla-collection->list) possède 2 argument(s) :									;
;		¤ col	> correspond au nom de la collection affublée d'une quote (le nom d'une collection est toujours au pluriel)	;
;			(type col) = 'SUBR	| Ex. :	'materials, 'linetypes, 'blocks, 						;
;		¤ flag	> permet de définir si le nom de l'objet récupéré correspond à l'ename ou au VLA-object				;
;			(type flag) = 'BOOLEAN	| Ex. :	0 pour l'ename, 1 pour le VLA-OBJECT 						;
;																	;
;--- Retour																;
;	La fonction (vla-collection->list) renvoie la liste de paires pointées chacunes composée du nom de l'objet sous format string	;
;	et de l'ename ou VLA-Object de l'objet pour accéder à sa liste DXF ou ses propriétés.						;
;	Ex. : (vla-collection->list 'linetypes 0) renvoie										;
;		(("ByBlock" . <Nom d'entité: 3b058940>)											;
;		 ("ByLayer" . <Nom d'entité: 3b058950>)											;
;		 ("Continuous" . <Nom d'entité: 3b058960>)										;
;		 ("DASHED" . <Nom d'entité: 2300df40>))											;
;																	;
;--- Modifications apportées par rapport à la version précédente									;
;	> Simplification d'écriture de la collection (activedocument uniquement) et ajout de la variable flag pour modifier le retour.	;
;																	;

(defun vla-collection->list (col flag / lst item i)

	(if (null (vl-catch-all-error-p (setq i 0 col (vl-catch-all-apply 'vlax-get (list (vla-get-activedocument (vlax-get-acad-object)) col)))))
		(vlax-for item col
			(setq lst (cons	(cons
						(if (vlax-property-available-p item 'Name)
							(vla-get-name item)
							(strcat "Unnamed_" (itoa (setq i (1+ i))))
						)
						(cond
							((= flag 0)
								(vlax-vla-object->ename item)
							)
							(t
								item
							)
						)
					)
					lst
				  )
			)
		)
	)
	(reverse lst)

)

L'utilisation de la fonction (getPrintFormat) est simple : elle requiert un seul argument correspondant au nom de la présentation. Pour cela tu peux l'essayer via (getPrintFormat (getvar "CTAB")) en étant sur une présentation (autre que "Model" bien que chat fonctionne...).

Bisous,
Luna

Lien à poster
Partager sur d’autres sites

Bonjour

Pour le format, il est possible de récupérer l'info avec une bannière (dans Tracer).

Sinon une formule diesel:

$(substr,%<\AcVar PaperSize>%,5,2)

Quant à l'échelle, comme dit au dessus, un champ lié a l'objet fenêtre en question, l'info est récupérée facilement.

Lien à poster
Partager sur d’autres sites
On 09/05/2021 at 19:37, didier said:

Bonjour @drault

Je ne comprends pas la question, du moins sur sa portée...
Car je ne vois pas le moyen de mettre le format en champs d'attribut, je guette les réponses en espérant être contredit.

Les seuls renseignements que j'ai trouvés sont Longueur et Largeur, à la rigueur ça peut définir le format en millimètres,
mais le Type A4 A3 ou autre je ne vois pas.

Amicalement

Avant d'obtenir les réponses à la suite de ton message, j'ai opté pour un champ dynamique -dans un txt de ma présentation- : catégorie = tracer / nom = format papier puis j'ai configurer des formats perso pour juste avoir A3 A4 etc... depuis la traceuse CAD to DWG

@luna

Un peu un écart sur ma recherche initiale mais tout aussi intéressant, merci !

Lien à poster
Partager sur d’autres sites
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.

Chargement
×
×
  • Créer...