Aller au contenu

Messages recommandés

Posté(e)

bonjour

j'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 obj

name bloc ent r_lst x_lst p_lst c_lst

m

)

(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))

(setq

obj (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))

)

(setq

r_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éant

Tout le monde le sait mais personne ne dit rien du tout

 

ultra Vomit

Posté(e)

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!

Posté(e)

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éant

Tout le monde le sait mais personne ne dit rien du tout

 

ultra Vomit

Posté(e)

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éant

Tout le monde le sait mais personne ne dit rien du tout

 

ultra Vomit

Posté(e)

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!

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é