quentinQS Posté(e) le 22 avril 2021 Posté(e) le 22 avril 2021 Bonjours à tous est t'il possible de mettre automatiquement l'échelle de la présentation dans un champs texte Merci D'avance Citer
La Lozère Posté(e) le 22 avril 2021 Posté(e) le 22 avril 2021 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. Citer www.cad-is.fr Autocad Map 2021 - Covadis/Autopiste V18.0c Pisser sous la douche ne suffira pas
didier Posté(e) le 22 avril 2021 Posté(e) le 22 avril 2021 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 Citer Éternel débutant... Mon site perso : Programmer dans AutoCAD
Luna Posté(e) le 22 avril 2021 Posté(e) le 22 avril 2021 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 Citer
didier Posté(e) le 22 avril 2021 Posté(e) le 22 avril 2021 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 1 Citer Éternel débutant... Mon site perso : Programmer dans AutoCAD
drault Posté(e) le 9 mai 2021 Posté(e) le 9 mai 2021 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, Citer
didier Posté(e) le 9 mai 2021 Posté(e) le 9 mai 2021 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 Citer Éternel débutant... Mon site perso : Programmer dans AutoCAD
Luna Posté(e) le 10 mai 2021 Posté(e) le 10 mai 2021 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 Citer
Luna Posté(e) le 10 mai 2021 Posté(e) le 10 mai 2021 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 Citer
Fruity Posté(e) le 12 mai 2021 Posté(e) le 12 mai 2021 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. Citer https://www.facebook.com/aedenhivanovahttp://ca-vous-enerve.blogspot.com/
drault Posté(e) le 14 mai 2021 Posté(e) le 14 mai 2021 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 ! Citer
Messages recommandés