Aller au contenu

Messages recommandés

Posté(e)

Bonjour,

 

Aujourd'hui je devais renseigner une cinquantaine de présentations (comportant une seule fenêtre) avec le nom de la présentation et l'échelle de la fenêtre.

Il va s'en dire que je n'avais pas envie de me palucher 50 onglet en répétitif.

 

Je me suis donc écris une procédure à l'arrache pour effectuer cela.

C'est du brute de pomme, adapté à mon besoin, mais cela reste (je pense) facilement modifiable si vous voulez réaliser quelque de similaire.

Je donne le code de base pour ceux qui seraient intéressé.

 

(defun make_field (obj / pt nw_obj)
 (setq
   pt (list 2.15031 103.032 0.0)
   nw_obj
   (vla-addMtext Space
     (vlax-3d-point pt)
     0.0
     (strcat
       "{\\fArial|b0|i0|c0|p34;"
       "%<\\AcVar ctab>%"
       " - Echelle 1/"
       "%<\\AcExpr (1000/"
       "%<\\AcObjProp Object(%<\\_ObjId "
       (itoa (vla-get-ObjectID (vlax-ename->vla-object obj)))
       ">%).CustomScale \\f \"%lu2%qf2816\">%"
       ") \\f \"%lu2%pr0\">%"
     )
   )
 )
 (mapcar
   '(lambda (pr val)
     (vlax-put nw_obj pr val)
   )
   (list 'AttachmentPoint 'Height 'DrawingDirection 'InsertionPoint 'StyleName 'Layer 'Rotation 'BackgroundFill)
   (list 1 3.5 5 pt "Standard" "0" 0.0 -1)
 )
)
(defun c:Field_Layout_Scale ( / AcDoc Space js)
 (vl-load-com)
 (foreach n (layoutlist)
   (setvar "CTAB" n)
 (setq
   AcDoc (vla-get-ActiveDocument (vlax-get-acad-object))
   Space (vla-get-PaperSpace AcDoc)
 )
   (setq js
     (ssget "_X"
       (list
         '(0 . "VIEWPORT")
         '(67 . 1)
         (cons 410 n)
       )
     )
   )
   (make_field (ssname js 0))
 )
 (prin1)
)

 

NB: Le masque du Mtext est ici actif, le style en Arial fixé en interne, justification HG et de largeur 0.0. La variable pt du point d'insertion (ici fixe pour chaque présentation)

L'unité pour l'échelle est le mètre: "%<\\AcExpr (1000/"

 

Bonne adaptation.

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Posté(e)

Bonjour,

 

Merci pour le partage, c’est en effet une bonne source d’inspiration. Au passage quelqu’un connaitrait il un descriptif assez complet sur la syntaxe constituant les champs.. (Et les textes multi-lignes). Ou une méthode autre que l’expérimentation et le tâtonnement.

 

A+

 

Apprendre => Prendre => Rendre

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é