Aller au contenu

modifier \"XP\" dans chaque fenetre de presentations


Messages recommandés

Posté(e)

Re,

 

patrick_35: la faute est corrigée :)

 

lili2006: dans quel sens ca ne marche pas?

 

l'edit à un peu changer, avant j'affichai la valeur de l'échelle, mais là, vu que l'on peut

faire une sélection multiple, la case est vide

 

 

Tous pour lisp, Lisp pour tous!

Avec Revit, cela ne vas trop vite...

Posté(e)

hello toutes tous

 

 

bseb67 : pour moi ca marche

 

j'ai rajouter un whidth=150 pour la colunn et un height = 60 car je ne voyais pas l'echelle et le verrouillage des fenetre dans la liste

 

sinon quand les echelles sont differentes ( 1 ou .2 ou .999999 ) elles sont toutes aligner sur la virgule et donc le "V" ou "D" ne sont pas aligner

 

a part ca ok bonne vue rapide d'ensemble des echelles de fenetres

 

ha si

quand je le charge avec viusal lisp j'ai ca sur la ligne de commande

 [b] type d'argument incorrect: consp nil[/b]  

je vois pas d'ou ca vient

 

super merci a tous

 

a+

 

phil[Edité le 29/7/2009 par PHILPHIL]

 

[Edité le 30/7/2009 par PHILPHIL]

FREELANCE

Autodesk Architecture 2025 sous windows 11 64

REVIT

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

Posté(e)

Voilà, seules les fenêtre dont les vues sont orthogonales (haut, face, gauche, etc.) sont traitées.

Si des échelles sont modifiées dans des présentations un message s'inscrit à la ligne de commande avec le nom de la présentation et les identifiants des fenêtres modifiées (CVPORT).

 

Je ne pense pas que j'en ferais beaucoup plus pour continuer à ralentir une routine qui tourne "trop vite" :cool:

 

;; ROUNDSCALE (gile)
;; Arrondit les échelle des fenêtres de présentation à la valeur la plus proche de la liste sclst

(defun c:RoundScale (/ sclst vplst scl pos name vpId)
 (vl-load-com)
 (setq sclst (vl-sort '(0.001 0.002 0.005 0.01 0.02 0.05 0.1 0.2 0.5 1.0) '  (vlax-for lay
           (vla-get-Layouts (vla-get-ActiveDocument (vlax-get-acad-object)))
   (if (/= (vla-get-Name lay) "Model")
     (progn
       (setq vplst nil name "")
       (vlax-for obj (vla-get-Block lay)
         (if (= (vla-get-ObjectName obj) "AcDbViewport")
           (setq vplst (cons obj vplst))
         )
       )
       (foreach vp (cdr (reverse vplst))
         (if (and
               (not (member (setq scl (vla-get-CustomScale vp)) sclst))
               ((lambda (dir)
                  (or (equal (mapcar 'abs dir) '(0.0 0.0 1.0) 1e-9)
                      (equal (mapcar 'abs dir) '(0.0 1.0 0.0) 1e-9)
                      (equal (mapcar 'abs dir) '(1.0 0.0 0.0) 1e-9)
                  )
                  (setq
                    pos (vl-position
                          T
                          (mapcar '(lambda (x1 x2) (= x1 x2))
                                  (mapcar '(lambda (x) (round scl x)) sclst)
                                  sclst
                          )
                        )
                  )
                )
                 (vlax-get vp 'Direction)
               )
             )
           (progn
             (vla-put-CustomScale vp (nth pos sclst))
             (setq vpId (cdr (assoc 69 (entget (vlax-vla-object->ename vp)))))
             (princ
               (if (= name "")
                 (strcat "\nFenêtre(s) modifiées dans \""
                         (setq name (vla-get-Name lay))
                         "\" : "
                         (itoa vpId)
                 )
                 (strcat " " (itoa vpId))
               )
             )
           )
         )
         (vla-put-DisplayLocked vp :vlax-true)
       )
     )
   )
 )
 (princ)
)


;;; ROUND Arrondit à la valeur la plus proche en fonction de prec
;;; (round pi 0.01) -> 3.14
;;; (round pi 1e-5) -> 3.14159
;;; (round 5456.50 1.0) -> 5457.0
;;; (round 5456.50 100.0) -> 5500.0

(defun round (num prec)
 (if (zerop (setq prec (abs prec)))
   num
   (* prec (fix ((if (minusp num) - +)(/ num prec) 0.5)))
 )
)

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

hello

 

gille : :D :D :D l o l ouai

mal barré si maintenant faut ralentir autocad l o lll

 

je teste ca

 

bseb67 : nouveau constat

dans un fichier j'ai 74 onglet a une fenetre

sauf 3 ou 4 sans fenetre dutout

mais dans la fenetre de "cefp" j'ai des doublons dans la liste comme si le lisp trouvais deux fenetre par présentations

 

désolé je viens de piger l'espace papier est considéré comme une fenetre vport =0 donc forcement il est aussi dans la liste en echelle =1

 

a+

 

phil

 

[Edité le 29/7/2009 par PHILPHIL]

FREELANCE

Autodesk Architecture 2025 sous windows 11 64

REVIT

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

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é