Aller au contenu

wbloc et fichiers


Messages recommandés

Posté(e)

Bonjour

 

Mon métier est celui des SIG et de la cartographie.

 

Je tiens à préciser d'avance que je ne connais pas le LISP mais qui m'arrive depuis quelques jours d'utiliser ceux du forum (avec beaucoup de bonheur).

 

J'ai plusieurs centaines de fichiers dwg dans des répertoires et sous répertoires.

 

Je souhaiterais :

 

- ouvrir le 1er fichier

- appliquer simplement la commande "wbloc"

- enregistrer le fichier (sous le même nom et à un format qui ne soit pas supérieur à la version 2004).

- fermer le fichier

- ouvrir le 2ième fichier

- appliquer la commande "wbloc" et ainsi de suite jusqu'à ce que tous les fichiers soient traités.

 

Attention, les fichiers ne doivent pas quitter leur répertoire d'origine.

 

Peut-être que quelqu'un a déjà crée un lisp qui l'a fait.

 

Je suis sur Autodesk map 2007.

 

Merci d'avance.

 

PHP

Posté(e)

si tu veux enregistrer sous le même nom le wbloc ne fonctionne pas!

 

mais si tu veux juste sauvegarder sous format 2004 la commande _saveas est plus recommander.

 

hannn didier pourquoi avoir changer ton avatar??? sniff :( elle me plaisait bien ta bonne bouille

 

[Edité le 24/1/2007 par Maximilien]

Dessinateur AutoCAD, Modeleur BIM, consultant informatique logiciels métier

Lenovo ThinkStation P330 i9 9900K 32Gb RAM 512 SSD + 1To

GstarCAD, Fisa-CAD, Revit, FisaBIM CVC, Microsoft Office

 

PlaquetteDeplianteMars2024.pdf

Posté(e)

Je te remercie pour ce lisp.

 

Je l'ai essayé avec comme seul message "veuillez sauvegarder votre dessin" ce que j'ai fait.

Puis c'est tout. Pourtant si je regarde les lignes du programme il pose plusieurs questions que je n'ai pas vu apparaître.

 

D'autre part et sans vouloir abuser de ton temps, peux tu m'expliquer comment je peux introduire la commande wbloc dans le cours du programme.

 

Merci.

 

PHP

Posté(e)

En clair, tu fais ton script ou lisp sur un dessin que tu testes, et quand tout est ok, tu peux lancer le traitement général.

Pour cela, tu lances scriptor qui va demander de sauver le dessin si cela n'a pas été fait, de modifier la variable SDI s'il elle n'est pas à un, de choisir le fichier script ou lisp source et ensuite une branche de répertoire.

Avec cela, il recherchera tous les dwg qui se trouve dans cette branche de répertoire (donc avec les sous répertoires) , les ouvrira et lancera le script ou lisp source sur chaque dessin qu'il sauvegardera pour terminer

 

@+

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

Exact c'est bien supprimer les couches éteintes, qui m'intéressent.

 

J'ai téléchargé DWG convert que je ne connaissais pas.

 

Visiblement Il permet d'opérer un changement de version sur une série de fichier, mais pas de lancer le traitement (wbloc) qui m'intéresse.

 

Bonne fin d'après midi.

 

PHP

 

 

Posté(e)

hello,

 

je récapitule ce que j'ai compris, car ce n'est pas explicite à cent pour cent.

 

le but de la routine à créer c'est :

créer un fichier DWG à partir d'un fichier ouvert

et ne prendre dans celui ci que les calques actifs

au moment du lancement de la commande ?

 

je pense qu'il y a un risque de perte d'informations

et qu'il sera judicieux de garder une trace de l'original.

 

si j'ai bien compris, merci de le dire pour qu'on s'y colle.

 

amicalement

Éternel débutant…
Mon site perso : Programmer dans AutoCAD

 

 

Posté(e)

Oui il s'agit de ne garder que les calques actifs dans chacun des fichiers.

 

Effectivement on pourrait garder une copie de l'original (sous un autre nom).

 

Merci d'avance et bonne soirée.

 

PHP

Posté(e)

Bonsoir,

 

exemple de routine, à compléter suivant tes besoins,

 

j'ai choisi d'effacer du fichier toutes les entités des calques inactifs ou gelés

puis de faire une purge.

 

libre à toi de sauvegarder ou pas,

de renommer ou pas

 

 

(setq Description_Calque (tblnext "LAYER" T))

(while Description_Calque

(if (= 1 (cdr(assoc 70 Description_Calque)))

(progn

(setq JeuSelection (ssget "x" (list (cons 8 (cdr(assoc 2 Description_Calque))))))

(command "_erase" JeuSelection "")

)

)

(if (

(progn

(setq JeuSelection (ssget "x" (list (cons 8 (cdr(assoc 2 Description_Calque))))))

(command "_erase" JeuSelection "")

)

)

(setq Description_Calque (tblnext "LAYER"))

)

(command "purger" "to" "*" "n")

 

amicalement

Éternel débutant…
Mon site perso : Programmer dans AutoCAD

 

 

Posté(e)

Bonsoir

 

Merci pour le code lisp et désolé pour cette réponse tardive.

 

Je viens tout juste de l'essayer et je n'ai pas eu de résultat ou plutôt brièvement voici ce que ça donne :

 

Sur un fichier dwg avec 5 couches inactives lorsque je charge le lisp et que je souhaite fermer la boîte de dialogue _appload, il faut faire 6 fois fermer avant de pouvoir en sortir. Cela doit être lié avec mes 5 couches inactives ?

 

Et mes couches inactives sont toujours dans mon fichier ???

 

Bonne soirée.

 

PHP

 

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité