yann69690 Posté(e) le 30 janvier 2023 Posté(e) le 30 janvier 2023 Bonjour, Ma problématique : j'ai un certain grand nombre de fichiers (1 panneau par fichier) qui ne sont pas en bloc donc quand je le ré-importe dans mes dessins cela importe un ensemble (typiquement hachure, texte, rond, etc) donc pas très interessant. J'aurais souhaité par exemple via SuperAutoScript par exemple suivant un dossier, ouvrir le fichier, convertir en bloc (mais en conservant le dessin) avec le nom du fichier, et passer au suivant. Je suis à la partie script SCR : (setq fichier (getvar "dwgname")) ;;(setq nomdoc (car (split-string fichier "\\."))) A modifier pour enlever les 4 derniere caractère qui correspond à l'extension (setq nombloc (strcat "BLOC_" fichier)) (setq jeusel (ssget "_C" '(0 0) '(10 10))) (command "_-block" nombloc "0,0" jeusel "") Mon problème pour l'instant se situe avec la commande _block qui prend comme paramètre suppression des objets convertis hors j'aurais aimé juste les conservé, impossible de trouver la doc de la fonction block Merci par avance Cordialement
(gile) Posté(e) le 30 janvier 2023 Posté(e) le 30 janvier 2023 Salut, Normalement, avec la commande INSERER, si tu fais : Parcourir... (ou onglet Bibliothèques et le bouton en haut à droite) et que tu choisis un fichier DWG, il est automatiquement inséré en tant que bloc. Tu devais pouvoir faire ça directement en LISP : (foreach fichier listeFichiers (if (setq filename (findfile fichier)) (progn (command "_INSERT" (strcat "BLOC_" (vl-filename-base filename) "=" filename) ) (command) ) ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
didier Posté(e) le 30 janvier 2023 Posté(e) le 30 janvier 2023 Bonjour @yann69690 Je confirme les propos, en appelant un fichier externe avec la commande "insérer" ou bien en glissé-déposé depuis l'Explorer le "fichier externe" se voit transformé en bloc dans le dessin d'accueil, et le nom du bloc est le nom du fichier importé. Il n'est pas nécessaire que ce soit un bloc dans le fichier à insérer. Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
yann69690 Posté(e) le 9 février 2023 Auteur Posté(e) le 9 février 2023 Bonjour à vous deux, et tous biensur, Je vous remercie d'avoir répondu, de mon coté j'ai fais pas mal de test avant de vous répondre. Je sais pas si je l'avais dit avant, mais mon but final est grâce à un plugin autocad (non développé par moi biensur) pouvoir incorporer les blocs, avec une multitude d'option (un peu comme la bibliothéque d'autocad mais avec plus d'option et de rangement, recherche, etc). Il me permet d'importer des dessins ou des blocs, et on en revien à ma demande initial car c'est plus simple et compréhensible pour mes dessins d'avoir des blocs de panneaux. J'ai déjà réalisé un script python qui m'importe les "futur" blocs dans ce plugin via un XML. @(gile) J'ai essayé de me dépatouillé avec ton script mais j'avoue ne pas avoir réussi (bien que j'ai compris que je dois définir les variable fichier et listeFichiers mais pas réussi). Ce que je me suis dis pour me servir de ton script c'était plutot de creer un dwg vide puis importer ta lips et automatiquement déplacer chaque panneau d'une valeur en x pour pas que cela se superpose. Ce que j'ai essayé (via MacLee lips) car je ne voyais pas comment fournir une liste deFichier: (defun LM:directoryfiles (dir typ sub) (setq dir (vl-string-right-trim "\" (vl-string-translate "/" "\" dir))) (append (mapcar '(lambda (x) (strcat dir "\" x)) (vl-directory-files dir typ 1)) (if sub (apply 'append (mapcar '(lambda (x) (if (not (wcmatch x ".,.`.")) (LM:directoryfiles (strcat dir "\" x) typ sub))) (vl-directory-files dir nil -1))) nil))) (defun C:ImportFiles () (cond ((null (setq dir (LM:browseforfolder "Select a directory to list drawing files" nil 0))) (princ "\nCancel")) ((null (setq lst (LM:directoryfiles dir "*.dwg" t))) (princ "\nNo drawing files found in the selected directory or subdirectories.")) (t (setq listeFichiers (vl-directory-files dir ".dwg")) (foreach dwg lst (if (setq filename (findfile (strcat dir "\" dwg))) (progn (command "INSERT" filename (cons (strcat "BLOC" (vl-filename-base filename)) 1))))) ))) @didierDonc je confirme bien que l'inserer fonctionne bien mais ce n'est pas forcement ce que je recherche ici Meri à vous deux, je vais continuer à bosser dessus (meme si une petite aide serait top si vous etes d'accord)
(gile) Posté(e) le 9 février 2023 Posté(e) le 9 février 2023 Le LISP que j'ai posté plus haut importe de fichier DWG dans la table des blocs sans l'insérer dans le dessin. Comme quand tu lances la commande INSERER, puis Parcourir..., tu sélectionnes le fichier et quand AutoCAD te demandes le point d'insertion, tu fais Echap. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
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