Big666 Posté(e) le 21 novembre 2012 Posté(e) le 21 novembre 2012 bonjourj'ai rajouter a ce lisp un e transmit ,le lisp s’exécute bien mais pas de e transmit.avant dans arrivée là j'ai batailler dure en recherchant dans d'autre lisp ,bon vous avez compris je ni connais pas grand chose .il doit manquer un petit truc pour le faire fonctionner en totalitémerci de votre aide ;;; SPURGE version 1.40;;; Purge tout, y compris les blocs imbriqués, les blocs vides,;;; les xrefs et les images non référencées (defun c:QSP(/ AcDoc lay l_lst ss n objname bloc ent r_lst x_lst p_lst c_lstm)(vl-load-com)(setq AcDoc (vla-get-ActiveDocument (vlax-get-acad-object))) ;; Purge les xrefs et rasters non référencées ;;(c:xref_purge);;(c:raster_purge) ;; Dévérouillage de tous les calques (vlax-for c (vla-get-Layers AcDoc)(if (= :vlax-true(vla-get-lock c))(progn(vla-put-lock c :vlax-false)(setq l_lst (cons c l_lst))))) ;; r_lst : liste des blocs et "sous-blocs" insérés;; x_lst : liste des xrefs insérées (setq ss (ssget "_X" '((0 . "INSERT"))))(if ss(progn(repeat (setq n (sslength ss))(setqobj (vlax-ename->vla-object (ssname ss (setq n (1- n)))))(if (vlax-property-available-p obj 'EffectiveName)(setq name (vla-get-EffectiveName obj))(setq name (vla-get-Name obj)))(if (and(= 0(vla-get-count (vla-item (vla-get-Blocks AcDoc) name)))(= :vlax-false(vla-get-isXref(vla-item (vla-get-Blocks AcDoc) name))))(vla-delete obj) ;_ Suppression des blocs vides(if (= :vlax-true(vla-get-isXref(vla-item (vla-get-Blocks AcDoc) name)))(if (not (member name x_lst))(setq x_lst (cons name x_lst)))(if (not (member name r_lst))(setq r_lst (cons name r_lst)))))) ;; Ajout des "sous-blocs" des blocs insérés à r_lst (setq n 0)(if r_lst(while (setq name (nth n r_lst))(setq bloc (vla-item (vla-get-blocks acDoc) name))(repeat (setq m (vla-get-count bloc))(setq ent (vla-item bloc (setq m (1- m))))(if (and (= (vla-get-ObjectName ent) "AcDbBlockReference")(not (member (vla-get-name ent) r_lst)))(setqr_lst(reverse (cons (vla-get-Name ent) (reverse r_lst))))))(setq n (1+ n)))))) ;; c_lst liste des définitions de blocs de la collection (setq c_lst nil)(vlax-for b (vla-get-blocks AcDoc)(setq c_lst (cons (vla-get-name B) c_lst))) ;; p_lst : liste des blocs à purger, soit les blocs de la collection ...;; ... moins les blocs "*Model_Space" "*Paper_Space*" et les blocs insérées (setq p_lst (vl-remove-if'(lambda (x)(or (= (substr x 1 1) "*")(member x r_lst)))c_lst)) ;; ... moins les xrefs insérées et les blocs qu'elles contiennent (mapcar '(lambda (x)(setq p_lst(vl-remove-if'(lambda (y)(wcmatch y (strcat x "*")))p_lst)))x_lst) ;; suppression de tous le blocs de p_lst (mapcar '(lambda (x)(vla-delete (vla-item (vla-get-Blocks AcDoc) x)))p_lst) ;; Purge et audit du dessin (vla-PurgeAll AcDoc)(vla-AuditInfo AcDoc :vlax-true) ;; Restauration de l'état des calques (if l_lst(mapcar '(lambda (x)(vla-put-lock x :vlax-true))l_lst))(princ);; control enregistre ferme(command "-MODIFLISTECHELLE" "R" "O" "Q") (command "CONTROLE" "O" ) (command "-PURGER" "TO" "*" "N") (command "_qsave") (command "_etranmit") (command "FERMER") (princ)) Nous vivons tous dans le ventre d'un chien géantTout le monde le sait mais personne ne dit rien du tout ultra Vomit
alala Posté(e) le 21 novembre 2012 Posté(e) le 21 novembre 2012 A remplacer : (command "_etranmit")par :(command "_etransmit") ;) C'est en forgeant que l'on devient forgerons.Et c'est en sciant que Léonard DeVinci!
Big666 Posté(e) le 21 novembre 2012 Auteur Posté(e) le 21 novembre 2012 merci je ne peut pas modifier maintenant, mais si c'est ça GRRRR! le Temps que j'ai passée a GRRRRR Nous vivons tous dans le ventre d'un chien géantTout le monde le sait mais personne ne dit rien du tout ultra Vomit
Big666 Posté(e) le 21 novembre 2012 Auteur Posté(e) le 21 novembre 2012 Sert arrivée a e transmit , il me demande des options enregistre le zip n'importe ou et ne ferme pas le dessin .donc il faut que je creuse encore .merci pour cette aide. Nous vivons tous dans le ventre d'un chien géantTout le monde le sait mais personne ne dit rien du tout ultra Vomit
alala Posté(e) le 21 novembre 2012 Posté(e) le 21 novembre 2012 Tente un :(command "_etransmit" pause)Par contre dans ce cas la ton etransmit se fait en ligne de commande, donc a toi de voir les infos à passer pour que ça fasse ce que tu souhaite. C'est en forgeant que l'on devient forgerons.Et c'est en sciant que Léonard DeVinci!
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant