Aller au contenu

Echelle d\'annotation


Messages recommandés

Posté(e)

Bonjour,

 

Fervent utilisateur des échelles d'annotations,pour chaque nouveau dessin je me crée systématiquement mes échelles personnalisées et je supprime les standards (sauf le 1:1).

Quand j'insère une Xref, je retrouve dans ma liste les "annoscales" de l'Xref... , je les supprime.

Je réouvre mon dessin et je retrouve à nouveau ces échelles d'annotations.

Quand on a plusieurs Xrefs ces listes sont sans fin !.... (ajd'hui près de 200 dans la liste ! )

 

Quelqu'un connaît il un moyen de purger les échelles d'annotations inutilisées ?

Posté(e)

Bonjour

Dans le fichier ACADDOC.LSP ajouter les lignes suivantes :

 

(acad-push-dbmod)

;;;;met à jour la liste des échelles

(command "-scalelistedit" "R" "O" "Q")

(acad-pop-dbmod)

 

Ca fonctionne à merveille

 

Bon courage. Daniel Gillard

 

 

Posté(e)

Bonsoir Daniel.

 

Je pense que (gile) t'as déja fait part de ses remarques sur "ACADDOC.LSP".

Précisons quand même qu'il faut se le créer et ne pas utiliser celui d'autocad au cas où certains ne le sauraient pas.

 

En fait ce n'est pas ce que je cherche, là tu restaure la liste par défaut que je supprime systématiquement.

Ce que je cherche c'est purger ces échelles car je me crée les miennes et j'aimerais les conserver, ce qui n'est pas possible avec le scalelistedit.

 

Merci quand même.

 

 

 

 

[Edité le 18/12/2007 par vinz34]

Posté(e)

Trouvé ici ou ailleurs, je ne sais plus...

 

Cela fonctionne bien, mais ne supprime pas ceux des xrefs...

Ce qui suit doit être lancé au démarrage (. lsp, .mnl, startup ....)

 

Personnaliser la liste comme bon vous semble.

 

(defun echel_perso ( / )
(lst-ech (list
(list "1:1" 1 1)
(list "     50 ème" 100 5)
(list "    100 ème" 10 1)
(list "    200 ème" 10 2)
(list "    250 ème" 100 25)
(list "    500 ème" 10 5)
(list "  1 000 ème" 1 1)
(list "  2 000 ème" 1 2)
(list "  2 500 ème" 10 25)
(list "  5 000 ème" 1 5)
(list " 10 000 ème" 1 10)
(list " 20 000 ème" 1 20)
(list " 25 000 ème" 1 25)
(list " 50 000 ème" 1 50)
(list "100 000 ème" 1 100)
(list "200 000 ème" 1 200)
(list "250 000 ème" 1 250)
)
)
(princ)
)

; routine modif liste echelle
(defun lst-ech (lst / DICT ENT1 I N X)
(vl-load-com)
(while (assoc 350 (dictsearch (namedobjdict) "ACAD_SCALELIST"))
(progn
(vla-delete (vlax-ename->vla-object (cdr (assoc 350 (dictsearch (namedobjdict) "ACAD_SCALELIST")))))
)
)

(setq i 1
x (strcat "Z" (rtos i)))

(repeat (length lst)
(setq n (nth (1- i) lst)
dict (cdr (assoc -1 (dictsearch (namedobjdict) "ACAD_SCALELIST")))
ent1 (entmakex (list
'(0 . "SCALE")
'(100 . "AcDbScale")
'(70 . 0)
(cons 300 (car n))
(cons 140 (cadr n))
(cons 141 (caddr n)))))
(dictadd dict x ent1)
(setq i (1+ i)
x (strcat "Z" (rtos i)))
)
)

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

Posté(e)

Salut,

 

Merci à toi bonuscad, tu m'as ouvert la voie sur le sentier que je vais explorer.

 

Mes échelles personnalmisées comporrtent un préfixe qui me permet de les différencier, je vais donc me contenter de supprimer toutes celles qui n'ont pas ce préfixe.

Posté(e)

Merci encore à bonuscad,

 

Voilà le code adapté à mes besoins qui ne conservent que les échelles commencant le préfixe VD et non issues d'une Xref :

 

(defun c:nettoie_échelles (/ lst)
(while (setq
 ename (cdr
	 (assoc 350 (dictsearch (namedobjdict) "ACAD_SCALELIST"))
       )
      )
 (progn
   (if
     (and
(= "VD"
   (substr
     (setq scname (cdr (assoc 300 (setq elist (entget ename)))))
     1
     2
   )
)
(/= "XREF" (substr scname (- (strlen scname) 3)))
     )
      (setq lst (cons elist lst))
   )
   (vla-delete (vlax-ename->vla-object ename))
 )
)

(setq i	1
     x	(strcat "Z" (rtos i))
)

(repeat	(length lst)
 (setq	n    (nth (1- i) lst)
dict (cdr (assoc -1 (dictsearch (namedobjdict) "ACAD_SCALELIST"))
     )
ent1 (entmakex (list
		 '(0 . "SCALE")
		 '(100 . "AcDbScale")
		 '(70 . 0)
		 (cons 300 (cdr (assoc 300 n)))
		 (cons 140 (cdr (assoc 140 n)))
		 (cons 141 (cdr (assoc 141 n)))
	       )
     )
 )
 (dictadd dict x ent1)
 (setq	i (1+ i)
x (strcat "Z" (rtos i))
 )
)
) 

 

 

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é