esbe Posté(e) le 31 octobre 2006 Posté(e) le 31 octobre 2006 Bon ok, le titre n'est pas clair !!j'aimerai savoir si c'est possible de creer avec wbloc ou d'extraire tous les blocs d'un fichier, "automatiquement", biensur...vous connaissez mon goût pour la paresse ;) j 'ai fait un recherche rapide car je crois avoir vu passer un lisp de ce genre mais je ne l'ai pas retrouvé ! Merci à tous
yalta Posté(e) le 31 octobre 2006 Posté(e) le 31 octobre 2006 ...est-ce celui-là ..??MOVE .lspPermet d'afficher tous les blocs d'un même fichier en un seul clic. ((lambda ( / prefix pt_ins last_pt obj ll ur lg)(setvar "cmdecho" 0)(setvar "attreq" 0)(vl-load-com)(setq prefix (strcat (vl-filename-directory (getfiled "Sélectionner un fichier DWG TEMOIN" "" "dwg" 16)) "\\"))(setq pt_ins (getpoint "\nPoint d'insertion pour le 1er Bloc? <0.0,0.0,0.0>: "))(if (null pt_ins) (setq pt_ins '(0.0 0.0 0.0)))(setq last_pt nil)(foreach dwg (vl-directory-files prefix "*.dwg" 1)(command "_.-insert" (strcat "\"" prefix dwg "\"") "_none" pt_ins "1.0" "1.0" "0.0")(setq Obj (vlax-ename->vla-object (entlast)))(vla-GetBoundingBox Obj 'll 'ur)(setq ll (safearray-value ll))(setq ur (safearray-value ur))(if last_pt(progn(command "_.move" (entlast) "" "_none" (list (car ll) (cadr pt_ins) (caddr pt_ins)) "_none" pt_ins)(setq lg (distance (list (car ll) (cadr pt_ins) (caddr pt_ins)) pt_ins)))(setq lg 0.0)) (setq pt_ins (list (+ lg (car ur)) (cadr pt_ins) (caddr pt_ins)))(setq last_pt pt_ins))(command "_.zoom" "_all")(command "_.zoom" "_extents")(setvar "attreq" 1)(setvar "cmdecho" 1)(prin1)))
esbe Posté(e) le 31 octobre 2006 Auteur Posté(e) le 31 octobre 2006 Merci Yalta je ne veux pas les afficher mais les transformer en fichier (comme avec wbloc) pour les recuperer ds une biblio !!Mon soucis c'est que je suis toujours pressée donc je creer des blocs pour un projet mais j'ai rarement le temps d'en faire des wbloc à chaque fois pour les réutiliser ds un projet similaire d'où l'usage intensif de copier/coller inter fichier, peu donc j'aimerai quand un projet est fini lancer un programme pour que tous les blocs utilisé ds ce fichier deviennent des dwg independantsLà c'est plus clair @+
esbe Posté(e) le 31 octobre 2006 Auteur Posté(e) le 31 octobre 2006 oups et puis je vais essayer de ce pas ton lisp biensur !!
bonuscad Posté(e) le 31 octobre 2006 Posté(e) le 31 octobre 2006 Voir ce SUJET Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
yalta Posté(e) le 31 octobre 2006 Posté(e) le 31 octobre 2006 .... déjà à l'école j'étais hors sujet.....!!! ;) ;)
mikL44 Posté(e) le 31 octobre 2006 Posté(e) le 31 octobre 2006 vas voir la http://www.cadxp.com/modules.php?op=modload&name=XForum&file=viewthread&tid=10467#pid40276
x13 Posté(e) le 2 novembre 2006 Posté(e) le 2 novembre 2006 Voiçi celui que j'utilise. ;| WBL.lsp Bob Abernethy, dba/CADesigner ©1998 Create a wblocked dwg without keeping block in the original dwg Predefined insertion point set to 0,0,0 can be setup by removing comma on line below ;COMMENT2 and placing a comma in front of line below ;COMMENT1 Directory set to D:\BLDIR (@ COMMENT 0) - Directory MUST BE predefined change directory pointed to in line below COMMENT0 to point to the directory of your choice Wblock name given WILL overwrite if SAME filename is in directory|; ;COMMENT0 (setq bldir "D:\\bldir\\") (defun ERR (s) (if (/= s "Function cancelled \n\n") (if (= s "quit / exit abort") (princ) (alert " >> Error <<") ) ) (setvar "expert" XPRT) (command "undo" "back") (setq *error* olderr) (princ)) (defun c:wbl (/ title) (setq dcl_id (load_dialog "wbl.dcl")) (if (not (new_dialog "wbl" dcl_id)) (exit) ) (action_tile "blkname" "(setq blkname $value)") (action_tile "accept" "(done_dialog 1)") (if (equal (start_dialog) 1) (do_wblock) ) (unload_dialog dcl_id) (princ)) (defun do_wblock (/ bklname blkss blkpt) (setq olderr *error* *error* err ) (setq ce (getvar "cmdecho")) (setq osm (getvar "osmode")) (setvar "cmdecho" 0) (setq xprt (getvar "expert")) (setvar "expert" 2) (setvar "filedia" 0) (command "undo" "mark") (command "ucs" "w") (prompt "\nSelect entities to wblock") (setq blkss (ssget)) (setq blkpt (getpoint "\nPoint d'Insertion ... "));COMMENT1 (command "_block" blkname blkpt blkss "");COMMENT2; (command "_block" blkname (list 0 0 0) blkss "") (command "oops") (command "_wblock" (strcat bldir blkname) blkname) (command "undo" "back") (setvar "filedia" 1) (setvar "expert" xprt) (setvar "osmode" osm) (setvar "cmdecho" ce) (setq *error* olderr) (princ))*****************************************************************// WBL.DCL Dialogue Wblock , Bob Abernethy 1998// Change D:\\BLDIR to your directory wbl : dialog { label = "Nom du Wblock "; initial_focus = "blkname"; : edit_box { edit_width = 20; key = "blkname"; label = "Nom du Wblock: "; allow_accept = true; is_default = true; } : paragraph { : text_part { label = " "; } : text_part { label = "Après avoir nommé le wblock, selectionné OK"; } : text_part { label = " "; } : text_part { label = "NOTE:"; } : text_part { label = "Wblock est placé dans D:\\BLDIR"; } } ok_cancel;} :)
Patrick_35 Posté(e) le 2 novembre 2006 Posté(e) le 2 novembre 2006 SalutVoici celle dont je me sers @+ (defun c:wbl(/ bl cmd doc) (vl-load-com) (setq doc (vla-get-activedocument (vlax-get-acad-object)) cmd (getvar "cmdecho")) (vla-startundomark doc) (setvar "cmdecho" 0) (setq bl (tblnext "block" t)) (while bl (if (and (not (eq (logand (cdr (assoc 70 bl)) 1) 1)) (not (eq (logand (cdr (assoc 70 bl)) 4) 4)) (not (eq (logand (cdr (assoc 70 bl)) 16) 16)) (not (vl-string-search "AVE_" (strcase (cdr (assoc 2 bl)))))) (command "_.wblock" (strcat (getvar "dwgprefix") (cdr (assoc 2 bl))) (cdr (assoc 2 bl))) ) (setq bl (tblnext "block")) ) (setvar "cmdecho" cmd) (vla-endundomark doc) (princ) ) Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
esbe Posté(e) le 3 novembre 2006 Auteur Posté(e) le 3 novembre 2006 OUHAAAAAAAAAAAAAAAMerci à tous J'ai l'embarras du choix , bon je vais essayer ce WE, En passant, dites moi, tous ces lisp font-ils exactement la même chose ??? ou il y a des variantes
Patrick_35 Posté(e) le 3 novembre 2006 Posté(e) le 3 novembre 2006 D'après ce que j'ai put lireCelui de Yalta te demande un fichier témoin pour écrire les blocs dans ce répetoireCelui de X13 écrit les blocs dans le répetoire D:\bldir et suivant une sélection des blocsLe mien écrit les blocs dans le répertoire du dessin qui est actif @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
esbe Posté(e) le 7 novembre 2006 Auteur Posté(e) le 7 novembre 2006 Hello Patrick pardonnes mon silence mais je n'ai plus le loisir de suivre en direct les messages !!! Je ne suis pas sure d'avoir tout compris !! :exclam: un fichier témoin pour écrire les blocs dans ce répetoire et Le mien écrit les blocs dans le répertoire du dessin qui est actif C'est le "qui est actif " que je ne pije/pige pas (Heu...pardon, je cale sur l'argot écrit ) Sinon merci de ta réponse ;) J'avoue, je n'ai pas eu le temps e tester tout cela, je suis à plein temps ds une agence, en ce moment , et c'est + que du plein tps , bref je ne vois plus le jour, au sens propre !! Ce n'est pas l'enfer parce que c'est interessant mais çà limite mes "à coté" preferés en ces lieux !!
Patrick_35 Posté(e) le 7 novembre 2006 Posté(e) le 7 novembre 2006 un fichier témoin pour écrire les blocs dans ce répetoire Tu choisis un fichier dans un répertoire, et les blocs sont mis dans ce répertoire Le mien écrit les blocs dans le répertoire du dessin qui est actif en clair avec la variable dwgprefix, ce qui veux dire dans le répertoire où tu as ouvert le dessin actuel dont tu cherches à extraire les blocs @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
esbe Posté(e) le 8 novembre 2006 Auteur Posté(e) le 8 novembre 2006 OK trés cool ces possibilités !!! Merci encore
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