Invité tjrsNRV Posté(e) le 23 décembre 2010 Posté(e) le 23 décembre 2010 bonjour à tous, après pas mal de recherche, je ne retrouve plus un Lisp qui permettait de mettre plusieurs fichiers .dwg . Je m'explique : Je possède un grande nombre de petit fichier ".dwg", et je souhaiterais n'en faire qu'un avec tous ses fichiers inséré en tant que bloc avec le nom du bloc correspondant au nom du fichier. Est-ce que vous savez où je peux trouver ça ? par exemple fichiers :toto1.dwgtoto2.dwgtoto3.dwgtoto4.dwgtoto5.dwg vers un fichier avec blocstoto1toto2toto3toto4toto5 évidement il ne faut pas que les blocs soit les un sur les autres sinon ça perd de sont charmes
lili2006 Posté(e) le 23 décembre 2010 Posté(e) le 23 décembre 2010 Bonjour à toutes et tous, Bienvenue tjrsNRV , Parles-tu de WXREF de (gile) ? ;; WXREF (gile) ;; Crée un nouveau fichier DWG avec les objets sélectionnés. ;; Supprime ces objets du dessin courant. ;; Insère le nouveau fichier comme référence externe. (defun c:wxref (/ dcl_id loop prefix insBase ss basePt insPt insTyp filename unit lst opt xref) (vl-load-com) (defun *error* (msg) (or (= msg "Fonction annulée") (princ (strcat "\nErreur: " msg)) ) (and ss (vla-delete ss)) (foreach l lst (vla-put-Lock l :vlax-true)) (vla-EndUndoMark *acdoc*) (princ) ) (or *acad* (setq *acad* (vlax-get-acad-object))) (or *acdoc* (setq *acdoc* (vla-get-ActiveDocument *acad*))) (setq dcl_id (load_dialog "Wxref.dcl") loop 2 prefix (getvar 'dwgprefix) insBase T basePt '(0. 0. 0.) unit (getvar 'insunits) filename (UnicFilename "XREF" prefix ".dwg") ) (while ( (if (not (new_dialog "wxref" dcl_id)) (exit) ) (start_list "unit") (mapcar 'add_list '("Sans unités" "Pouces" "Pieds" "Miles" "Millimètres" "Centimètres" "Mètres" "Kilomètres" "Micropouces" "Milles" "Yards" "Angströms" "Nanomètres" "Microns" "Décimètres" "Décamètres" "Hectomètres" "Gigamètres" "Unités astronomiques" "Parsecs" ) ) (end_list) (set_tile "unit" (itoa unit)) (set_tile "filename" filename) (if ss (mode_tile "accept" 0) (mode_tile "accept" 1) ) (if insBase (progn (set_tile "insBase" "1") (mode_tile "insPt" 1) ) (progn (set_tile "insBase" "0") (mode_tile "insPt" 0) ) ) (set_tile "baseX" (rtos (car basePt))) (set_tile "baseY" (rtos (cadr basePt))) (set_tile "baseZ" (rtos (caddr basePt))) (if insBase (progn (set_tile "insX" (strcat "X : " (rtos (car basePt)))) (set_tile "insY" (strcat "Y : " (rtos (cadr basePt)))) (set_tile "insZ" (strcat "Z : " (rtos (caddr basePt)))) ) ) (if (and insPt (not insBase)) (progn (set_tile "insX" (strcat "X : " (rtos (car insPt)))) (set_tile "insY" (strcat "Y : " (rtos (cadr insPt)))) (set_tile "insZ" (strcat "Z : " (rtos (caddr insPt)))) ) ) (action_tile "objSel" "(done_dialog 3)") (action_tile "basePt" "(done_dialog 4)") (action_tile "baseX" "(if (setq coord (distof $value)) (progn (if basePt (setq basePt (list coord (cadr basePt) (caddr basePt))) (setq basePt (list coord (get_tile \"baseY\") (get_tile \"baseZ\")) ) ) (if insBase (set_tile \"insX\" (strcat \"X : \" $value)) ) ) (progn (alert \"Nécéssite un nombre valide\") (mode_tile \"baseX\" 2) ) )" ) (action_tile "baseY" "(if (setq coord (distof $value)) (progn (if basePt (setq basePt (list (car basePt) coord (caddr basePt))) (setq basePt (list (get_tile \"baseX\") coord (get_tile \"baseZ\")) ) ) (if insBase (set_tile \"insY\" (strcat \"Y : \" $value)) ) ) (progn (alert \"Nécéssite un nombre valide\") (mode_tile \"baseY\" 2) ) )" ) (action_tile "baseZ" "(if (setq coord (distof $value)) (progn (if basePt (setq basePt (list (car basePt) (cadr basePt) coord)) (setq basePt (list (get_tile \"baseX\") (get_tile \"baseY\") coord) ) ) (if insBase (set_tile \"insZ\" (strcat \"Z : \" $value)) ) ) (progn (alert \"Nécéssite un nombre valide\") (mode_tile \"baseZ\" 2) ) )" ) (action_tile "insBase" "(if (= $value \"1\") (progn (mode_tile \"insPt\" 1) (setq insBase T) (set_tile \"insX\" (strcat \"X : \" (rtos (car basePt)))) (set_tile \"insY\" (strcat \"Y : \" (rtos (cadr basePt)))) (set_tile \"insZ\" (strcat \"Z : \" (rtos (caddr basePt)))) ) (progn (mode_tile \"insPt\" 0) (setq insBase nil) ) )" ) (action_tile "insPt" "(done_dialog 5)") (action_tile "filename" "(if (and (findfile $value) (not (overwrite))) (mode_tile \"filename\" 2) (setq filename $value) )" ) (action_tile "getfile" "(done_dialog 6)") (action_tile "unit" "(setq unit (atoi $value))") (action_tile "accept" "(if insBase (setq insPt basePt) (if (not insPt) (setq insPt (list (atof (substr (get_tile \"insX\") 5)) (atof (substr (get_tile \"insY\") 5)) (atof (substr (get_tile \"insZ\") 5)) ) ) ) ) (if (= (get_tile \"attach\") \"1\") (setq opt :vlax-false) (setq opt :vlax-true) ) (done_dialog 1)" ) (action_tile "cancel" "(setq ss nil) (done_dialog 0)") (setq loop (start_dialog)) (cond ((= loop 3) (setq ss (ssget ":L")) ) ((= loop 4) (if (setq basePt (getpoint "\nSpécifiez le point de base: ")) (setq basePt (trans basePt 1 0)) ) ) ((= loop 5) (if (setq insPt (getpoint "\nSpécifiez le point d'insertion: ")) (setq insPt (trans insPt 1 0)) ) ) ((= loop 6) (setq filename (getfiled "Créer un fichier DWG" prefix "dwg" 1)) ) ) ) (unload_dialog dcl_id) (if ss (progn (vla-StartUndoMark *acdoc*) (setq ss (vla-get-ActiveSelectionSet *acdoc*)) (vlax-for o ss (vla-Move o (vlax-3d-point basePt) (vlax-3d-point '(0. 0. 0.))) ) (setq iunt (getvar 'insunits)) (setvar 'insunits unit) (vla-Wblock *acdoc* filename ss) (setvar 'insunits iunt) (vlax-for o ss (vla-delete o)) (vla-delete ss) (setq ss nil) (setq xref (vla-AttachExternalReference (vla-get-ModelSpace *acdoc*) filename (vl-filename-base filename) (vlax-3d-point insPt) 1. 1. 1. 0. opt ) ) (vla-EndUndoMark *acdoc*) ) ) (princ) ) ;;; UnicFileneme (gile) ;;; Retourne un chemin complet de fichier unique (incrémenté) ;;; ;;; arguments ;;; pat : modèle du nom de fichier (STR) ;;; dir : chemin du répertoire (STR) ;;; ext : extension (STR) (defun UnicFilename (pat dir ext / ind res) (setq ind 0) (while (findfile (setq res (strcat dir pat (cond (( (( (T "_") ) (itoa (setq ind (1+ ind))) ext ) ) ) ) res ) Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
Invité tjrsNRV Posté(e) le 23 décembre 2010 Posté(e) le 23 décembre 2010 soit ce n'est pas ce que je cherche, soit j'arrive pas à le faire marcher : Commande: WXREFErreur: quitter / sortir abandon Il ne manquerais pas un DLC ? sechanbask
bryce Posté(e) le 23 décembre 2010 Posté(e) le 23 décembre 2010 Bonjour, Ne te casse pas la tête, ce lisp (WXREF) n'a de toutes façons aucun rapport avec ta demande. :casstet: Personnellement je ne connais pas le lisp que tu recherches (ni un équivalent), mais pour ce que tu veux faire tu pourrais sans doute créer un script. Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
lili2006 Posté(e) le 23 décembre 2010 Posté(e) le 23 décembre 2010 Re, Il ne manquerais pas un DLC ? Oups, :cool: // Boite de dialogue Wref wxref :dialog{ label = "WXREF"; :row{ :boxed_column{ label = "Source"; :row{ :button{label = ">>"; key = "objSel"; fixed_width = true;} :text{label = "Choix des objets";} } :boxed_column{ label = "Point de base"; :row{ :button{label = ">>"; key = "basePt"; fixed_width = true;} :text{label = "Choisir un point";} } :edit_box{label = "X :"; key = "baseX";} :edit_box{label = "Y :"; key = "baseY";} :edit_box{label = "Z :"; key = "baseZ";} } } :boxed_column{ label = "Insertion"; :radio_row{ :radio_button{label = "Attacher"; key = "attach"; value = "1";} :radio_button{label = "Superposer"; key = "overlay";} } :boxed_column{ label = "Point d'insertion"; :toggle{label = "Utiliser le point de base"; key = "insBase"; value = "1";} :row{ :button{label = ">>"; key = "insPt"; fixed_width = true; is_enabled = false;} :text{label = "Choisir un point";} } :text{key = "insX";} :text{key = "insY";} :text{key = "insZ";} } } } :boxed_column{ label = "Destination"; :text{label = "Nom et chemin du fichier";} :row{ :edit_box{key = "filename"; edit_width = 54;} :button{label = "..."; key = "getfile"; fixed_width = true;} } :popup_list{label = "Unité d'insertion"; key = "unit"; edit_width = 30;} } ok_cancel; } Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
Invité tjrsNRV Posté(e) le 23 décembre 2010 Posté(e) le 23 décembre 2010 merci mais effectivement, ça en correspond pas à ma demande. Je ne souhaite pas faire u Xref avec des objets que je sélectionne dans autocad. Je souhaite insérer dans un fichier plusieurs fichier en tant que blocs.
lili2006 Posté(e) le 23 décembre 2010 Posté(e) le 23 décembre 2010 Re, Désolé, je n'avais pas compris ta première demande,... :cool: Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
lili2006 Posté(e) le 23 décembre 2010 Posté(e) le 23 décembre 2010 Re, Via la palette des XREFS tu peux sélectionner par fenêtre de capture plusieurs fichiers et les lier ensuite à ton fichier ? Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
Invité tjrsNRV Posté(e) le 23 décembre 2010 Posté(e) le 23 décembre 2010 près de 1200 blocs ça risque d'être long...
bonuscad Posté(e) le 23 décembre 2010 Posté(e) le 23 décembre 2010 Je souhaite insérer dans un fichier plusieurs fichier en tant que blocs. Cette réponse ? sur un sujet d'insertion en masse... Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
lili2006 Posté(e) le 23 décembre 2010 Posté(e) le 23 décembre 2010 Re, Quel est vraiment ton but ? En fonction, tu peux peut être utiliser le Désign Center pour créer une palette de ces 1200 blocs, et ensuite les glisser-déposer sur ton fichier synthèse ? Mais ça risque d'être long aussi,... Après, j'ai fait une biblio type mosaïque avec LibMenu et ça va bien (pas loin de 4000 fichiers),.. http://img.ahst.fr/data/images/bibliopers.jpg Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
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