nicolas2 Posté(e) le 13 mai 2020 Posté(e) le 13 mai 2020 Bonjour,Est-t'il possible d'enregistrer une partie d'un plan par capture ?Pour être clair:Un plan avec 1 rond + 1 cercle + 1 triangle.Je sélectionne le rond et demande de l'enregistrer sous XJe sélectionne le cercle et demande de l'enregistrer sous YJe sélectionne le triangle...Pour l'instant, j'enregistre 1 fois le plan de départ en le nommant rond + 1 fois en le nommant cercle + 1 fois en le nommant triangle. J'ouvre les 3 plans, efface chaque pièce pour ne garder que la pièce nommée dans le titre et réenregistre.Merci pour votre aide. Citer
Aleck_Ultimate Posté(e) le 13 mai 2020 Posté(e) le 13 mai 2020 Salut. Tu peut faire ça en passant par WBLOC. Citer Je suis dysorthographique alors lâchez-moi les basques avec ça, je fait déjà de mon mieux. Membre d'Extinction Rebellion, car pour sauver le monde il n'est jamais trop tard, amour et rage ! Pour écrire un vraie point médian (e·x·e·m·p·l·e) [Alt + 0183] ou ajout d'un raccourci clavier personnalisé (ex. [AltGr + ;]) Utilisateur d'AutoCAD 2021 sous Windows 10
nicolas2 Posté(e) le 13 mai 2020 Auteur Posté(e) le 13 mai 2020 Merci Aleck,Je ne connaissais pas WBLOC.En fouillant j'ai trouvé un LISP de Gile :(defun c:ss2dxf (/ path file ss) (setq dir "") (while (not (vl-file-directory-p dir)) (if (= "" (setq dir (getstring T (strcat "\nSpécifiez le chemin du répertoire: <" (getvar "DWGPREFIX") ">: " ) ) ) ) (setq dir (getvar "DWGPREFIX")) ) ) (while (findfile (strcat dir (setq file (getstring T "\nSpécifiez le nom du fichier: ")) ".dxf" ) ) (princ (strcat "\n\"" file "\" existe déjà.")) ) (if (setq ss (ssget)) (command "_saveas" "dxf" "_v" "2000" "_o" ss "" "16" (strcat dir file ".dxf")) )Merci à vous 2. Citer
nicolas2 Posté(e) le 14 mai 2020 Auteur Posté(e) le 14 mai 2020 Bonjour, N'ayant aucune compétence en LISP : 1 - Est-il possible de modifier le chemin d'enregistrement ?Le chemin de mon plan de départ => C:\Télétravail\15877\ETUDES\PlansLe chemin d'enregistrement => C:\Télétravail\15877\ATELIER\DXF\DXF PLASMAEn fait, garder "C:\Télétravail\15877\" et remplacer "ETUDES\Plans" par "ATELIER\DXF\DXF PLASMA"Etant en télétravail et n'ayant pas d'accès au serveur entreprise, le "C:\Télétravail" changera à mon retour au boulot [garder seulement une partie du DWGPREFIX (?)] 2 - Ne pas poser la question du chemin d'enregistrement et du coup pouvoir enregistrer "à la volée" les différentes pièces. Merci beaucoup pour votre aide. Citer
PHILPHIL Posté(e) le 14 mai 2020 Posté(e) le 14 mai 2020 hello nicolas2 voici des lisps pour enregistrer une partie d'un fichier dwg premiere étape choisir un sous répertoire ou seront enregistré les fichiers exportéscette info est enregistrée dans ton fichier de base (setcustombykey "REPERTOIRE_ORIGINAUX" "...") ;;; Commande sauve_repertoire_bloc ;;;Invite l'utilisateur à choisir un sous répertoire qui sera sauvegarder dans le fichier (boites de dialogue) (defun c:sauve_repertoire_originaux (/ dirbox rep) (defun dirbox (txt / cdl rep) (if (setq cdl (vlax-create-object "Shell.Application")) (progn (and (setq rep (vlax-invoke cdl 'browseforfolder 0 txt 512 "")) (setq rep (vlax-get-property (vlax-get-property rep 'self) 'path)) ) (vlax-release-object cdl) ) ) rep ) (setq repertoireoriginaux (gc:getcustombykey "REPERTOIRE_ORIGINAUX")) (if (= repertoireoriginaux "...") (prompt "\nIL N'Y A PAS DE REPERTOIRE POUR LES ORIGINAUX :") (prompt (strcat "\nLA VALEUR ACTUELLE DE REPERTOIRE_ORIGINAUX EST :" repertoireoriginaux " ")) ) (princ) (princ) (setq rep (dirbox "CHSOISISSEZ UN REPERTOIRE OU SERONT RECHERCHES / SAUVEGARDES LES ORIGINAUX DU DESSIN.")) (setcustombykey1 "REPERTOIRE_ORIGINAUX" rep) (princ) ) (defun gc:getcustombykey (key / val) (vl-catch-all-apply '(lambda () (vla-getcustombykey (vla-get-summaryinfo (vla-get-activedocument (vlax-get-acad-object))) key 'val) ) ) val) (defun setcustombykey1 (key val) (vl-load-com) (not (vl-catch-all-apply '(lambda () (vla-setcustombykey (vla-get-summaryinfo (vla-get-activedocument (vlax-get-acad-object))) key val) ) ) )) (defun setcustombykey (key val) (vl-load-com) (not (vl-catch-all-apply '(lambda () (vla-addcustominfo (vla-get-summaryinfo (vla-get-activedocument (vlax-get-acad-object))) key val) ) ) )) deuxieme etape exporter les extrait de fichiers (defun c:fichier_extrait_fichier_repertoire_originaux () (setvar "cmdecho" 0) (setq repertoire_originaux (gc:getcustombykey "repertoire_originaux")) (prompt (strcat "\nLE REPERTOIRE DES BLOCS DE L'OPERATION EST : " repertoire_originaux)) (setq nomextraitfichier (getcfg "APPDATA/NOMEXTRAITFICHIER")) (setq boite "ENTRER LE NOM DU FICHIER DE SAUVEGARDE DE L'EXTRAIT ") (setq message "NOUVEAU NOM DE L'EXTRAIT") (inputbox2 boite message nomextraitfichier) (if (/= ret "") (setq nomextraitfichier ret) ) (setcfg "APPDATA/NOMEXTRAITFICHIER" nomextraitfichier) (setq poi nil) (while (null poi) (setq poi (getpoint "\nPOINT DE REFERENCE DU FICHIER EXTRAIT"))) (prompt (strcat "\nCLIQUER SUR LES OBJETS A EXTRAIRE DANS UN FICHIER")) (setq obj nil) (while (null obj) (setq obj (ssget))) (command-s "scu" "ez" poi "") (command-s "-WBLOC" (strcat repertoire_originaux "\\" nomextraitfichier ".DWG") "" poi obj "") (command-s "ANNULER" "") (command-s "scu" "p") (setq openfile1 (getcfg "APPDATA/openfile1")) (initget "oui OUI o O non NON n N") (setq tmp (getkword (strcat "\nVOULEZ VOUS OUVRIR LE FICHIER ENSUITE [ Oui / Non ] <" openfile1 "> : "))) (if tmp (setq openfile1 tmp) ) (setcfg "APPDATA/openfile1" openfile1) (if (or (= openfile1 "oui") (= openfile1 "OUI") (= openfile1 "o") (= openfile1 "O")) (progn ((vla-open (vla-get-documents (vlax-get-acad-object)) (strcat repertoire_originaux "\\" nomextraitfichier ".DWG"))) ) ) (princ) ) ;; InputBox (gile) ;; Ouvre une boite de dialogue pour récupérer une valeur ;; sous forme de chaine de caractère ;; ;; Arguments ;; tous les arguments sont de chaines de caractère (ou "") ;; box : titre de la boite de dialogue ;; msg : message d'invite ;; val : valeur par défaut ;; ;; Retour ;; une chaine ("" si annulation) ;; ;; Modifié par Patrick_35 pour inclure le caractère \n ;; comme retour chariot (defun inputbox2 (box msg val / subr temp file dcl_id ;;ret ) ;; Retour chariot automatique à 50 caractères (defun subr (str / pos) (cond ((setq pos (vl-string-search "\n" str)) (strcat ":text_part{label=\"" (substr str 1 pos) "\";}" (subr (substr str (+ 2 pos)))) ) ((and (< 80 (strlen str)) (setq pos (vl-string-position 32 (substr str 1 80) nil t))) (strcat ":text_part{label=\"" (substr str 1 pos) "\";}" (subr (substr str (+ 2 pos)))) ) (t (strcat ":text_part{label=\"" str "\";}")) ) ) ;; Créer un fichier DCL temporaire (setq temp (vl-filename-mktemp "Tmp.dcl") file (open temp "w") ret "" ) ;; Ecrire le fichier (write-line (strcat "InputBox:dialog{key=\"box\";initial_focus=\"val\";spacer;:paragraph{" (subr msg) "}spacer;:edit_box{key=\"val\";edit_width=120;allow_accept=true;} spacer;ok_cancel;}" ) file ) (close file) ;; Ouvrir la boite de dialogue (setq dcl_id (load_dialog temp)) (if (not (new_dialog "InputBox" dcl_id)) (exit) ) (set_tile "box" box) (set_tile "val" val) (action_tile "accept" "(setq ret (get_tile \"val\")) (done_dialog)") (start_dialog) (unload_dialog dcl_id) ;;Supprimer le fichier (vl-file-delete temp) ret ) ca devrait te convenir j'ai peut etre oublié des petits bouts de lisp a+ Phil Citer FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
nicolas2 Posté(e) le 14 mai 2020 Auteur Posté(e) le 14 mai 2020 Bonjour Philphil,Merci pour votre aide, mais n'ayant aucune notion de LISP, il me sera très difficile, voire impossible, de modifier le LISP de Gile.Je vais continuer de l'utiliser tel que.Merci encore à vous d'avoir pris de votre temps. Citer
PHILPHIL Posté(e) le 14 mai 2020 Posté(e) le 14 mai 2020 HELLO nicolas2 tu n'as pas a modifier le lispjuste a les utiliser dans le bon ordre tu dois avoir déja créer un sous repertoire : C:\Télétravail\15877\ATELIER\DXF\DXF PLASMA quand tu es dans ton fichier "PLAN DE DEPART" 1iere etape : utiliser la commande "sauve_repertoire_originaux" pour selectionner C:\Télétravail\15877\ATELIER\DXF\DXF PLASMA2ieme étape : utiliser la commande "fichier_extrait_fichier_repertoire_originaux" a+ Phil Citer FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
Messages recommandés