Aller au contenu

Lisp qui ne marche pas avec la 2012


Messages recommandés

Posté(e)

Bonjour ,

Je ne sais pas pourquoi ce lisp qui sert à éffacer les présentations et qui fonctionne correctement sous Autocad 2010 ne fonctionne plus sur Autocad 2012. Les présentations ne s'éffacent plus !

 

(defun c:delp(/ dbx dirbox lay lst fic rep)
 
 (defun dirbox(msg / cdl rep)
   (if (setq cdl (vlax-create-object "Shell.Application"))
     (progn
(and (setq rep (vlax-invoke cdl 'browseforfolder 0 msg 512 ""))
     (setq rep (vlax-get-property (vlax-get-property rep 'self) 'path))
)
(vlax-release-object cdl)
     )
   )
   rep
 )

 (vl-load-com)
 (and  (setq rep (dirbox "Selectionnez un répertoire"))
(setq lst (vl-directory-files rep "*.dwg" 1))
   (foreach fic lst
     (setq dbx (vla-open (vla-get-documents (vlax-get-acad-object)) (strcat rep "/" fic)))
     (princ (strcat "\n Travail sur " fic))(princ)
     (vlax-for lay (vla-get-layouts dbx)
(vl-catch-all-apply 'vla-delete (list lay))
     )
     (princ " ...Sauvegarde")(princ)
     (vla-close dbx :vlax-true)
     (princ " ...OK")(princ)
   )
 )
 (princ)
)

 

Auteur du logiciel Autospeed

Auteur de la théorie du site www.kheops.biz

Auteur de nombreux livres

Posté(e)

Salut,

 

 

S'il te plait, pour que le code soit plus lisible, utilise les bbcodes :

 

[code] ici le code [/code]

 

 

donne :

 

 ici  le code 

 

 

Accessible via l'icône [#] :

 

http://img94.imageshack.us/img94/8380/bbcode.png

 

 

Sinon, en lisant vite le code, essaye en plaçant le (vl-load-com) avant la routine dirbox.

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

Posté(e)

est ce que si je met

 

; Effacer les présentations
(vlax-for lay (vla-get-layouts (vla-get-activedocument (vlax-get-acad-object)))
 (or (eq (vla-get-name lay) "Model")
   (vla-delete lay)
 )
)

 

a la place de

 

(vlax-for lay (vla-get-layouts dbx)
(vl-catch-all-apply 'vla-delete (list lay))
     )

 

par contre le lisp effacer les présentations marche tres bien en copié collé dans la ligne de commande.

 

dans le lisp au dessus , ça pourrait marcher ? [Edité le 30/8/2011 par autospeed]

 

[Edité le 30/8/2011 par autospeed]

Auteur du logiciel Autospeed

Auteur de la théorie du site www.kheops.biz

Auteur de nombreux livres

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é