Aller au contenu

Lisp Pour afficher l' échelle


Maxime85

Messages recommandés

Bonjour,

 

j aimerais avoir un lisp qui me permettra d' afficher au coin supérieur droit ( ou Gauche ) la valeur de l' échelle quand je sélectionne la fenêtre concernée

 

en pièce joint le résultat attendu

 

Cordialement

post-36320-0-46273300-1443577661_thumb.jpg

En devenant sincère, l'amour devient généreux.

 

Autocad Map 2015 Covadis V16  et Mensura V9

MacBook Pro 2019

Win10 64 bits

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Peut être modifié par tes soins.

Le lisp met une échelle pour toutes les fenêtres trouvées dans chaque onglet de présentation.

 

(defun make_field (obj p / nw_obj)
 (setq
   nw_obj
   (vla-addMtext Space
     (vlax-3d-point p)
     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 3 3.5 5 p "Standard" "0" 0.0 -1)
 )
)
(defun c:Field_Layout_Scale ( / AcDoc Space js n ent dxf_ent pt_v l h pt)
 (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)
       )
     )
   )
   (repeat (setq n (sslength js))
     (setq
       pt_v (cdr (assoc 10 (setq dxf_ent (entget (setq ent (ssname js (setq n (1- n))))))))
       l (cdr (assoc 40 dxf_ent))
       h (cdr (assoc 41 dxf_ent))
       pt (list (+ (car pt_v) (* 0.5 l)) (+ (cadr pt_v) (* 0.5 h)) 0.0)
     )
     (make_field ent pt)
   )
 )
 (prin1)
)

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

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

merci beaucoup il résout mon problème sauf qu il rajoute le nom de la présentation et comme je m y connait pas en Lisp je ne sais comment modifié

 

Cordialement

En devenant sincère, l'amour devient généreux.

 

Autocad Map 2015 Covadis V16  et Mensura V9

MacBook Pro 2019

Win10 64 bits

Lien vers le commentaire
Partager sur d’autres sites

Coucou

 

M E R C I à Bonuscad qui mérite bien le pseudo de "bonus"

j'avais commencé à chercher mais sans trouver quelque chose de propre, il est vrai que je ne gère que très mal les champs

merci pour l'échange

 

pour Maxime 85 :

il te suffit de mettre un point-virgule devant les lignes numéros 8 et 9

 

amicalement

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Pourtant ce qu'a dit Didier est valable.

Tu peux te contenter de la ligne 9 car la ligne 8 force le formatage de la police de texte.

donc

"%<\\AcVar ctab>%"

deviendrait

; "%<\\AcVar ctab>%"

 

Après sur la ligne suivante, tu peux supprimer le tiret devant Echelle, donc

" - Echelle 1/"

deviendrait

"Echelle 1/"

 

Tu enregistre ton fichier, et tu RECHARGE le lisp

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

Lien vers le commentaire
Partager sur d’autres sites

Bonjour à toutes et tous,

 

Chez moi => (LOAD "C:/Users/Lili2006/Desktop/ield_Layout_Scale.lsp"); erreur: no function definition: OBJ

 

Vu qu'il n'y a pas de fonction OBJ dans le code original, je pense simplement que tu t'es loupé dans ton copier-coller.

 

Refais la procédure, et/ou vérifie que tu n'as pas une interférence avec un autre programme qui utiliserait le même appel...

 

déja ield_Layout_Scale.lsp (il y a l'air de manquer le "F"), ce qui m'incite à dire que tu fais des copier-coller incomplet.. :(rires forts):

 

Attention à la frénésie de la sélection à la souris pour le copié...

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

Lien vers le commentaire
Partager sur d’autres sites

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é