Aller au contenu

extraire wbloc (dwg) existant d\'un dessin sans l\'exploser


Messages recommandés

Posté(e)

Salut à tous,

 

Je cherche la fonction qui permet d'extraire un bloc existant d'un dessin pour obtenir le fichier dwg correspondant. Je ne veux pas exploser les blocs et les recréer (trop long) !!!

En fait c'est pour compléter ma bibliothèque.

 

Il y a quelques années (environ 10 ans), il existait une fonction "wbloc =" et je ne sais pas comment la remplacer !!!

J'ai autocad LT2009... donc pas de vba !

 

 

Je vous remercie d'avance pour vos réponses.

 

 

 

PATINDKA

Posté(e)

Sur 2008 elle fonctionne toujours

WBLOC

:casstet:

"Je suis fasciné par l'air. Si on enlevait l'air du ciel, tous les oiseaux tomberaient par terre... Et les avions aussi... En même temps l'air tu peux pas le toucher... Ca existe et ça existe pas... Ca nourrit l'homme sans qu'il ait faim... It's magic ! L'air c'est beau en même temps tu peux pas le voir, c'est doux et tu peux pas le toucher... L'air, c'est un peu comme mon cerveau..."

J-C Van Damme

Posté(e)
il existait une fonction "wbloc =" et je ne sais pas comment la remplacer !!!

 

Et si tu lances :

-WBLOC

 

Avec cette syntaxe, tu as toujours accès à "="

 

Ca n'irait pas ?

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

Justement ce matin avant de voir ce post, j'ai fais une routine de quelques lignes qui créer un fichier dwg du bloc selectionné.

 

Pour l'instant, il était fais pour un bloc unique mais dans un avenir proche j'avais l'intention de le faire pour le plan entier.

 

En attendant je te file le code.

 

Il faut juste changer le chemin dans lequel tu souhaites mettre tes blocs.

 

 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;  Créer un fichier dwg à partir d'un ;;;
;;;  bloc selectionné dans c:\bloc      ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(defun c:crbl (/ bloc nom way)
 (while (or
   (not (setq bloc (car (entsel "\nSélectionner un bloc :"))))
   (/= (cdr (assoc 0 (entget bloc))) "INSERT")
 )
 )
 
 (setq nom (cdr (assoc 2 (entget bloc)))
way (strcat [surligneur]"c:\\bloc"[/surligneur] "\\" nom ".dwg")
)

 (command "-wbloc" way nom)
 
 )

 

Voili Voilou

<IMG SRC=http://peronfrederic.free.fr/banniere.jpg></IMG>

 

<a href=www.formu-lan.net>www.FormuLan.net

</a>

Posté(e)

Pas dans LT. Tu peux le faire en macro mais pas en lisp.

 

Voili voilou :cool:

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

Salut à tous,

 

Merci de vos réponses et de votre rapidité.

-WBLOC c'est exactement çà que je cherchais !!!

 

Qd au script, cela m'interresse mais avec AUTOCAD LT je pense que je ne peux pas charger de fichier lisp !

 

FORUM très efficace.

 

@+

 

PATINDKA

 

Posté(e)

La commande qui permet d'extraire un bloc pour an faire un fichier est : _wblock

mais il existe une autre methode de travail que de creer un fichier par bloc : c'est l'utilisation de designcenter et des palettes d' outils : a partir d'un seul fichier ex mesblocs.dwg comprenant tous mes blocs : dans designcenter bloc bouton droit : creer une palette d' outils

et tous mes blocks sont accessibles avec possibilite de paremetrer le calque l'echelle la rotation etc...

Posté(e)
Qd au script, cela m'interresse mais avec AUTOCAD LT je pense que je ne peux pas charger de fichier lisp !

 

SCRIPT et MACRO = toutes versions

LISP = versions non LT.

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

petite precision :

en anglais : _wblock

en francais : wbloc

le caractere _ permet de taper une commande en anglais

Pour ne pa faire apparaitre la boite de dialogue : utiliser le caractere - devant la commande

ex : _-wblock ou -wbloc

cette regle s'applique a la plupatr des commandes autocad

 

Posté(e)

Pas dans LT. Tu peux le faire en macro mais pas en lisp.

 

Voili voilou

 

OUPS..... :cool:

 

J'étais tellement content de pouvoir répondre....

 

Ben voilà....

 

C'est à cause du temps ça!!!!!!

<IMG SRC=http://peronfrederic.free.fr/banniere.jpg></IMG>

 

<a href=www.formu-lan.net>www.FormuLan.net

</a>

Posté(e)

une petite piste pour récupérer la liste de tes BLOCS

 

1. Tu tapes QAFLAGS que tu mets à 2

2. Tu tapes -BLOC (entrée) ? (entrée) et toute la liste défile

3. Tu remets QAFLAGS à 0

3. Tu fais un COPIER-COLLER de ta liste dans un fichier TEXTE

 

et il y a plus qu'à traiter tout ça avec EXCEL c'est très facile ! Mais faut connaitre !

 

Tu peux aussi créer directement un fichier Journal .LOG à l'emplacement de ton choix ( Options : Onglet Fichier : Rubrique Emplacement du fichier journal )

 

Christian

 

Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...

cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)

Posté(e)

salut Christian

 

QAFLAGS ..... C'est quoi au juste ?? j'ai fait la manip que tu preconise et j'ai eu le resultat que tu d'ecrits j'ai bien le nom de tous les blocs inseres dans le dessin ..... J'ai le meme resultat sans mettre QAFLAGS a 2 c'est a dire avec QAFLAGS a 0 ...... ????

 

D'autre part je trouve pas QAFLAGS dans les variables systeme ???? C 'est quoi ce truc ????

En rechercahnt dans mes archives j'ai trouve que sa valeur devait etre a 0 quand PICKFIRST est a 1 . Peux tu eclairer ma lanterne .......

 

Dans la foulee je suis un peu dans la nebuleuse avec AFLAGS qui doit avoir une valeur a 0 pour une option par defaut des attributs (visible-invisible-constant-verifie). Es ce a dire que'avec une valeur a 0 tous les attributs sont visibles a l'ecran ? Quant est il de la variable ATTECRAN ?

si valeur IN - AC - NO (NO qui serait le mode normal)

 

@+

 

Posté(e)

d' aprés didier lourdelle : QAFLAGS

Contrôle, dans Autocad, le défilement du texte dans la fenêtre texte d'Autocad (cette variable est non documentée). 0 Arrêt du défilement toutes les 25 lignes de texte 2 Défilement continu dans la fenêtre texte d'Autocad.

Commentaire :Méfiance d'autre valeur produise des changements dans le comportement d'AutoCAD.

je pense que cette variable est de peu d'interet

Posté(e)

Un exemple du changement de comportement d'Autocad suivant la valeur de QAFLAGS.

 

Dessiner quelques polylignes simples (LWPOLYLINE), et appliquez le code suivant en ligne de commande.

Suivant la valeur de QAFLAGS (< ou > 3), [surligneur]le résultat de la commande DECOMPOS ne sera pas identique [/surligneur] . Soit une seule polyligne, soit toute seront décomposées.

 

((lambda ( / js)

(setq js (ssget "_x" '((0 . "LWPOLYLINE"))))

(command "_.explode" js (if (> (getvar "QAFLAGS") 2) ""))

))

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Posté(e)

((lambda ( / js)

(setq js (ssget "_x" '((0 . "LWPOLYLINE"))))

(command "_.explode" js (if (> (getvar "QAFLAGS") 2) ""))

))

 

Alors Bonus ! On ne suit pas mes remontrances ?!

plus haut.

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Posté(e)

Alors Bonus ! On ne suit pas mes remontrances ?!

 

Ce n'est pas en rapport avec la question originelle..., mais plutôt a cette remarque a propos de QAFLAGS

 

Commentaire :Méfiance d'autre valeur produise des changements dans le comportement d'AutoCAD.

 

C'était juste pour étayer ce commentaire et observer le comportement...

 

Donc j'étais bien hors sujet concernant LT :P

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

  • 6 ans après...
Posté(e)

Justement ce matin avant de voir ce post, j'ai fais une routine de quelques lignes qui créer un fichier dwg du bloc selectionné.

 

 

Pour l'instant, il était fais pour un bloc unique mais dans un avenir proche j'avais l'intention de le faire pour le plan entier.

 

 

En attendant je te file le code.

 

 

Il faut juste changer le chemin dans lequel tu souhaites mettre tes blocs.

 

 

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;  Créer un fichier dwg à partir d'un ;;;

;;;  bloc selectionné dans c:\bloc      ;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(defun c:crbl (/ bloc nom way)

 (while (or

   (not (setq bloc (car (entsel "\nSélectionner un bloc :"))))

   (/= (cdr (assoc 0 (entget bloc))) "INSERT")

 )

 )

 

 (setq nom (cdr (assoc 2 (entget bloc)))

way (strcat [surligneur]"c:\\bloc"[/surligneur] "\\" nom ".dwg")

)


 (command "-wbloc" way nom)

 

 )

 

 

Voili Voilou

 

Bonjour le forum,

 

Je relance le post parce que le lisp qui extrait tous les blocs d'un fichier m'intéresse. Y aurait-il quelqu'un qui aurait ça vers lui ?

Posté(e)

Bonjour,

 

Ma réponse en 2005 ici et voir aussi les suivantes...

Merci Bonuscad c'est sympa pour le lien... mais au sujet de ton lisp, je ne suis pas expert en lisp, et ton fichier bloc sur une boite de dialogue!

Par contre celui de crabe fonctionne en écrasant les fichiers. Dans ce dernier fichier ce serait intéressant d'avoir la boite de dialogue de choix du répertoire au lieu de le noter à la mano.

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é