Adi Posté(e) le 27 mars 2014 Posté(e) le 27 mars 2014 BonjourJe souhaite écrire un SCRIPT.scr qui doit :-libérer 2 couches puis faire un wbloc(OGEOMETRE_extract.dwg) à partir d’un fichier d’origine(OGEOMETRE.dwg).Puis je veux insérer ce wbloc dans un autre fichier(TERMINAL.dwg) puis le sauvegarder sous (TERMINAL.dwg) Mon wbloc n’est pas bon car je récupère TOUS les calques de OGEOMETRE dans le wbloc Voici mon script :_-layerch NUM_GEOM_freeze*L REF_GEOM wblocOGEOMETRE_extract.dwg*_openTERMINAL.dwg_-insertTERMINAL.dwg0,0110 A terme, si ça marche , je souhaiterais pouvoir paramétrer le nom des fichiers d’entrée et de sortie.D’avance, merci pour vos réponses
bonuscad Posté(e) le 27 mars 2014 Posté(e) le 27 mars 2014 Bonjour, Je pense que c'est l'option "*" de wbloc qui fait que tu récupère l'intégralité du dessin.Essayes (sans avoir testé) de passer par l'option de Sélection d'objets et en réponse "Choix des objets:" donner l'option "Tout" Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Adi Posté(e) le 28 mars 2014 Auteur Posté(e) le 28 mars 2014 Bonjour, Je pense que c'est l'option "*" de wbloc qui fait que tu récupère l'intégralité du dessin.Essayes (sans avoir testé) de passer par l'option de Sélection d'objets et en réponse "Choix des objets:" donner l'option "Tout"
Adi Posté(e) le 28 mars 2014 Auteur Posté(e) le 28 mars 2014 Merci pour ta réponse. Petite précision, j'ai fait une erreur de recopie de mon script vers le forum :Tout à la fin du script , il fallait lireOGEOMETRE_extract.dwg et non pas TERMINAL.dwg(ce qui revient bien à insérer mon WBLOC OGEOMETRE_extract.dwg dans le fichier TERMINAL.dwg)Toutes mes excuses!!! Par contre je n'ai pas compris ton explication:J'ai remplacé l'"*" par "tout":-->ça ne marche pas.en relisant la ligne de commande à cet endroit, je lis: Commande: wblocEntrez le nom du fichier de sortie: OGEOMETRE_extract.dwgEntrez le nom du bloc existant ou[= (bloc=fichier de sortie)/* (dessin entier)] <définir nouveau dessin>: toutLe bloc "tout" n'a pas été trouvé.Entrez le nom du bloc existant ou ....... Je ne vois pas comment passer par l'option Sélection des objets et en réponse "Choix des objets" donner l'option "Tout" Merci encore pour votre aide
bonuscad Posté(e) le 28 mars 2014 Posté(e) le 28 mars 2014 Il te faut simplement mettre une ligne vide supplémentaire pour prendre l'option par défaut qui est "définir nouveau dessin", puis définir ton point d'insertion (généralement 0,0,0) [= (bloc=fichier de sortie)/* (dessin entier)] <définir nouveau dessin>: Spécifiez le point de base de l'insertion: 0,0,0Choix des objets: tout et encore une ligne vierge pour valider le choix des objets... Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Adi Posté(e) le 28 mars 2014 Auteur Posté(e) le 28 mars 2014 SUPER çà marche !!!! Merci encore. Il me reste encore quelques détails à perfectionner:1°) Au moment où dans mon script, j'écris _openTERMINAL.dwg quelle est la syntaxe pour donner le CHEMIN pour TOUJOURS trouver le fichier TERMINAL.dwg ? 2°) Si je veux pouvoir utiliser ce script sur d'autres fichiers (avec des noms différents, mais qui ont la même constitution de couches ) est il possible d'avoir un paramétrage ou une fenêtre où l'on saisirait le nom du fichier ? Ou bien faut il écrire le script avec à chaque fois les bons noms de fichiers correspondants?
bonuscad Posté(e) le 28 mars 2014 Posté(e) le 28 mars 2014 quelle est la syntaxe pour donner le CHEMIN pour TOUJOURS trouver le fichier TERMINAL.dwg ? Pour ton info Autocad interprète le signe "\" comme un caractère spécial (qui en gros lui dit de lire le caractère suivant littéralement)Donc pour un chemin de dossier exprimé sous windows comme C:\toto\titi\fichier.dwg devra être transcrit pour autocad sous la syntaxe: C:\\toto\\titi\\fichier.dwg (tu doubles les anti-slash)Si tes noms de dossiers ou fichiers comporte des espaces, je te conseilles d'entourer l'ensemble de guillemets ("") pour que les espaces ne soit pas interprété comme une validation.Exemple:pour C:\to to\ti ti\mon fichier.dwg donner a autocad "C:\\to to\\ti ti\\mon fichier.dwg" On a aussi la possibilté de remplacé l'anti-slash par un slash simple:C:\toto\titi\fichier.dwg peut être écrit C:/toto/titi/fichier.dwg, c'est au choix! Si je veux pouvoir utiliser ce script sur d'autres fichiers (avec des noms différents)En script, pas vraiment de solution, pour ce cas de figure il te faut te tourner vers un langage plus évolué, lisp par exemple.Tu peux regarde aussi SCRIPTPro (ou un truc du genre, faire une recherche), qui je crois permet d'automatiser un script sur un lot de fichier DWG. Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Adi Posté(e) le 28 mars 2014 Auteur Posté(e) le 28 mars 2014 J'ai essayé comme çà:_open N:\\O_ESSIDIS\\RESERVE\\CARTO\\ puis comme çà:_open N:\\O_ESSIDIS\\RESERVE\\CARTO\\....... puis comme çà:_open N:/O_ESSIDIS/RESERVE/CARTO/....... --> A chaque fois j'ai le messsage : "Impossible de trouver le fichier spécifié....."
FormaBois Posté(e) le 28 mars 2014 Posté(e) le 28 mars 2014 Si je veux pouvoir utiliser ce script sur d'autres fichiers (avec des noms différents) faut il écrire le script avec à chaque fois les bons noms de fichiers correspondants?Il y a aussi SuperAutoScript d'Eric sur Caderix, qui permet de traiter tous les fichiers d'un dossier Studio Gfilm - Agence de communication par l'image "Le matin tu peux rester couché pour poursuivre ton rêve, ou te lever pour le réaliser"
Adi Posté(e) le 31 mars 2014 Auteur Posté(e) le 31 mars 2014 Bonjour FormaBois Merci pour la solution du SuperAutoScript.Je vais essayer cà.
bonuscad Posté(e) le 31 mars 2014 Posté(e) le 31 mars 2014 --> A chaque fois j'ai le messsage : "Impossible de trouver le fichier spécifié....." Pourquoi tu ne fourni que le chemin du dossier sans le nom du fichier? _open "N:\O_ESSIDIS\RESERVE\CARTO\TERMINAL.dwg" devrait fonctionner...Contrairement à ce que j'ai dit, un "\" simple à l'air de fonctionner pour un script. Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Adi Posté(e) le 31 mars 2014 Auteur Posté(e) le 31 mars 2014 Bonjour bonuscad Mes chemins sont très longs. Ce n'était que pour simplifier que je n'ai mis que le début de la syntaxe.Mais dans la réalité j'ai bien terminé par le nom du fichier.dwg.Mais je n'ai pas de secrets et te livre à présent mon script dans l'intégralité. Là encore, pour simplifier, j'ai voulu te ménager en te donnant des noms simplifiés( les vrais noms sont tordus, mais ce n'ai pas moi qui les ait choisis !!!!)Je te donne donc ici le script avec les vrais noms de fichiers (je te donne également la correspondance des noms de fichiers par rapport au script initial que je t'ai fourni. Encore un précision:Dans l'ancien script, j'ouvrais manuellement le 1er fichier pour en faire un wbloc à l'aide de mon script.J'ai fait évoluer mon script en me disant que ce serait bien d'arriver à ouvrir automatiquement le 1er fichier.(C'est à dire que je lance Autocad qui me donne un dessin vierge, puis je lance mon script à partir de cet endroit) _open N:/O_ESSIDIS/RESERVE/CARTO/BROUILLO.N/HA/Autocad/Calage_réseau/02_simulation_script/HEILIGENBERG_ref-OLD-GEOM.dwg_-layerch NUM_GEOM_freeze*L REF_GEOM wblocHEILIGENBERG_ref-OLD-GEOM_extract.dwg 0,0tout _openN:/O_ESSIDIS/RESERVE/CARTO/BROUILLO.N/HA/Autocad/Calage_réseau/_heiligenberg.dwg_-insertN:/O_ESSIDIS/RESERVE/CARTO/BROUILLO.N/HA/Autocad/Calage_réseau/HEILIGENBERG_ref-OLD-GEOM_extract.dwg0,0110 Et voici la correspondance des noms pour que tu t'y retrouves .... HEILIGENBERG_ref-OLD-GEOM.dwg --> C'est mon fichier d'origine que j'ouvrais manuellementHEILIGENBERG_ref-OLD-GEOM_extract.dwg -->C'est le nom de mon WBLOC que j'appelais OGEOMETRE_extract.dwg _heiligenberg.dwg --->C'est le nom du fichier que j'appelais TERMINAL.dwg Actuellement quand je lance ce script, le fichier d'origine (HEILIGENBERG_ref-OLD-GEOM.dwg)s'ouvre et le script s'arrête ainsi: Commande: N:/O_ESSIDIS/RESERVE/CARTO/BROUILLO.N/HA/Autocad/Calage_réseau/02_simulation_script/HEILIGENBERG_ref-OLD-GEOM.dwgCommande inconnue--> n'y aurait il pas encore un problème d'espace où de retour chariot ? D'avance, merci pour ton aide!!!
bonuscad Posté(e) le 31 mars 2014 Posté(e) le 31 mars 2014 Mais je n'ai pas de secrets et te livre à présent mon script dans l'intégralité.Sans les fichiers ont ne fait pas grand chose d'un script :(rires forts): Voici par exemple un script que j'ai généré en lisp pour l’exécuter ensuite sour AutocadMap en 32bits (Windows XP) Il fait en tout 78844 lignes et il s'est exécuté sans problème pour faire mon assemblage.Je t'en donne un extrait, pour te donner une idéee. _.undo _control _none _.new "C:\Program Files\Autodesk\AutoCAD Map 3D 2011\Template\map2Diso.dwt" cmddia 0 _ADESETCRDSYS _sourceDrawings CADASTRE:\com-013\feuille-0130000D02\0130000D02.dwg RGF93.CC45 _currentSession Lambert93 _exit _ADEDRAWINGS _ALias _Update CADASTRE CADASTRE I:\DEPART07\BD_CADASTRE-07 _exit _ATtach CADASTRE:\com-013\feuille-0130000D02\0130000D02.dwg _exit _ADEQUERY _Define _Location _all _exit _execute _draw _.zoom _extent _.saveas 2010 I:\Depart07\L93-BD_CADASTRE-07\com-013\feuille-0130000D02\0130000D02.dwg cmddia 1 _.close Essayes en entourant de guillemets "unité:\chemin dossier\fichier.dwg" Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Adi Posté(e) le 2 avril 2014 Auteur Posté(e) le 2 avril 2014 Bonjour Bonuscad J'ai repris mon script pas à pas.Ouf !!! Enfin çà fonctionne, avec la syntaxe suivante:_openN:\O_ESSIDIS\RESERVE\CARTO\BROUILLO.N\HA\Autocad\Calage_réseau\02_simulation_script\_heiligenberg.dwg (sans que je puisse expliquer pourquoi ça bloquait alors que j'avais déjà essayé celà) En tout cas, je suis bien content et te remercie encore pour ton aide.Merci aussi pour l'appercu de ton script.Je ne connaissais pas le point entre l'underscore et la commande comme par exemple _.saveasQuel est le role du point ?
bonuscad Posté(e) le 2 avril 2014 Posté(e) le 2 avril 2014 comme par exemple_.saveasQuel est le role du point ? Il sert a utiliser la commande native d'Autocad En effet (très rare d'utilisation) on peut redéfinir une commande qui pourrait faire, soit des actions complémentaires, soit même des actions complétement différentes.Ceci ce fait avec la commande REDEF ou NONDEF (voir l'aide d'Autocad)Donc avec le point tu es toujours sur d'avoir affaire à la vraie commande native. Personnellement, je l'ai fais qu'une fois par programmation pour redéfinir la commande "polylign", qui lorsqu'elle était appelée faisait des lignes spéciale et prédéfinies (marquage au sol routier). Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
Adi Posté(e) le 2 avril 2014 Auteur Posté(e) le 2 avril 2014 OK Merci encore et à une prochaine peut être...
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