Aller au contenu

CREATION BLOCS EN SCRIPT


lili2006

Messages recommandés

Bonjour à toutes et tous,

 

Suite à ce sujet, je voulais savoir si il était possible de créer en script un bloc du fichier qui porterait le nom du fichier afin de créer une bibliothèque ?

 

Ce n'est peut-être pas réalisable en script ?

 

La possibilités en lisp m'intéresse aussi, pour traiter tout les fichiers dessins d'un répertoire,

 

Merci d'avance,

 

 

Civil 3D 2024 - COVADIS_18.2

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

je voulais savoir si il était possible de créer en script un bloc du fichier qui porterait le nom du fichier afin de créer une bibliothèque ?

 

Tu veux dire qu'un bloc "panneau" défini dans dessin1.dwg devrait être exporté vers un dossier en tant que dwg et porter le nom dessin1 ?

 

C'est vraiment difficile à comprendre...

 

Dans le sujet vers lequel tu renvoies on a encore affaire à la méconnaissance du principe des blocs définis dans le dessin ou en tant que dwg et les problématiques de l'imbrication.

Et là, je suis imbriqué moi-même :cool:

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

Re,

 

Merci de ta réponse Tramber ( et ton imbrication,... :P )

 

Je voulais savoir si un fichier contenant, par exemple un panneau de chantier du nom de panneau1, par exemple construit en polylignes, hachures,.. pouvait être transformé en bloc interne au fichier qui porterait le même nom que le fichier donc ici panneau1.

 

autrement dis, sans que l'utilisateur intervienne dans la création fiare =>

 

1) ouvrir le fichier,

2) lancer la commande bloc,

3) sélectionner toutes les entités du fichier (option "convertir en bloc),

4) nommer ce bloc du même nom que le fichier (ou avant 3), peu importe l'ordre je pense),

5) faire une purge du fichier,

6) faire un zoom tout

7) fermer le fichier

 

Heu, c'est vrai que mon premier message n'était pas très explicite,... :P :P

 

En espérant que celui-ci soit plus clair,... ;)

 

Merci encore,

 

Civil 3D 2024 - COVADIS_18.2

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

,.. pouvait être transformé en bloc interne au fichier qui porterait le même nom que le fichier donc ici panneau1.

 

Franchement ?

Incompréhensible. Tu avais dit que panneau était un bloc interne au fichier. Il faut comprendre que le dwg aussi se nomme panneau1 ?

 

Ton "autrement dit" est plus clair mais, entre nous je ne comprends plus rien à partir du 3), je croyais qu'il y avait un bloc défini dans le dessin or tu me parles d'entités du dessin. Suis-je trop rigoriste ?

 

En script, on ne peut pas utiliser le DIESEL. Difficile donc d'utiliser DWGNAME, ce qui est facile avec le lisp.

Bureau d'études dessin.

Spécialiste Escaliers

Développement - Formation

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

Je ne suis pas sûr d'avoir compris non plus, mais il me semble que ce tu veux faire génèrerait un fichier comme celui mis en téléchargement par Gilles1 ici et c'est exactement ce qu'il faut faire pour avoir le message :

Le bloc K2 se réfère à lui-même.

*Incorrect*

 

Une bibliothèque de blocs c'est :

- soit un répertoire contenant des fichiers (créés avec WBLOC ou non) qu'on peut insérer avec la commande INSERER

- soit un fichier contenant plusieurs blocs qu'ont peut insérer via le DesignCenter

- soit une palette

 

Mais un fichier contenant un seul bloc du même nom que le fichier (et qui, en plus, est composé de toutes les entités de l'EO) c'est, à mon avis, absurde et la garantie d'aller au devant d'erreur d'auto-référencement.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

coucou

 

[surligneur] le mieux est l'ennemi du bien[/surligneur]

c'est bien connu mais souvent, pas assez présent à l'esprit

 

c'est faisable pour une utilisation perso et ponctuelle

mais pas plus,

car les gens ignorent tant de la définition des blocs

et de leur re-définition

qu'il y a plus de risques d'erreurs que de réussite

 

sans compter qu'il faudra déifinir un point d'insertion

une définition des unités, etc...

 

je constate quotidiennement que les "cadors" d'AutoCAD

enfin, ceux qui se déclarent comme tels

ne connaissent guère que les dix commandes usuelles.

RIEN des unités, des définitions de blocs, des SCU etc...

 

c'est dans le cas particulier qu'on reconnaît celui qui sait !

 

je ne vise personne, je parle de PRINCIPE, nous sommes d'accord ?

 

amicalement

 

 

Lien vers le commentaire
Partager sur d’autres sites

Bonjour à toutes et tous,

 

Je développe,

 

Le post de Gilles1 m'a fait penser à une demande d'il y a 2 ans environ :

 

J'ai un copain qui travaille dans un BE climatisation-chauffage-électricité. Ils ont en leur possession pas moins de 500 fichiers dessins qu'ils utilisent comme une bibliothèque en passant par la commande "insertion bloc". Ces fichiers sont constitués d'entités simples, c'est à dire pas de bloc interne, (en reprenant un des exemple de gilles1, ça pourrait être ça). J'avais alors proposé d'utiliser les palettes par famille MAIS pour ce faire, il faut transformer les entités de leurs fichiers en blocs internes (soit comme ceci, en gardant le même exemple).

 

En effet, ils souhaitent garder leurs fichiers uniques et non regrouper les symboles sur un seul fichier par famille par exemple,... (En fait, lorsqu'une norme change ou une représentation, la maison mère situé à Paris, leur fait passer la nouvelle définition d'un symbole sous forme d'un fichier unique, ce qui, pour eux, est plus simple à gérer au niveau de la mise à jour,...).

 

Il faudrait donc réaliser cette manip autant de fois qu'il y a de fichiers afin de pouvoir (enfin) créer une palette.

 

D'où ma question de savoir si il était possible d'automatiser cette tâche et de préférence en script car ils travaillent sur des lt.

 

Mais un fichier contenant un seul bloc du même nom que le fichier (et qui, en plus, est composé de toutes les entités de l'EO) c'est, à mon avis, absurde et la garantie d'aller au devant d'erreur d'auto-référencement.

 

C'est à cause des modifs incessantes qu'ils souhaitent travailler comme ça,...Bon ou mauvais choix, la maison mère l'impose !

 

la garantie d'aller au devant d'erreur d'auto-référencement

 

Ils souhaitent absolument garder le nom du fichier pour le bloc interne.

 

Le pb ensuite sera de créer une palette unique de ces fichiers !

 

A part une insertion par glisser-déposer depuis l'ouverture de chaque fichiers,....

 

Bref, pas simple l'affaire.

 

Mais bon ma question initiale était de savoir si la manip décrite (transformer des entités d'un fichier en bloc interne, ce bloc ainsi créé portant le nom du fichier) était possible à automatiser en script, mais Tramber semble dire que non,...

 

 

 

Faut reconnaitre que la demande est spécifique et je ne sais même pas quelle solution apporter à ce pb au niveau de l'organisation.J'avais à cette époque proposé de tout mettre sur un fichier par famille et donc une palette par famille, mais cette solution ne les avaient pas séduite. C'est pourtant celle qui semble la meilleure, non ?

 

Dans ce genre de situation, comment procéderiez-vous avec les contraintes énoncées ci-dessus ?

 

Merci et désolé de ne pas avoir été très clair.

Civil 3D 2024 - COVADIS_18.2

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

Re,

 

c'est faisable pour une utilisation perso et ponctuelle

mais pas plus,

 

Plus de 500 fichiers, ce n'est donc pas raisonnable à ton avis (avec environ une dizaine de modifs par mois depuis deux ans qu'ils travaillent ainsi).

 

J'avoue ne pas avoir plus d'idée que ça, mais je ne me prend pas pour un cador, donc ça va, j'ai le droit,... ;)

Civil 3D 2024 - COVADIS_18.2

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

Re,

 

Toujours sans être sûr de bien comprendre, je persiste.

 

Il est possible d'avoir les deux types de bibliothèque décrits plus haut :

Un répertoire avec 500 fichiers et un fichier avec ces 500 fichiers/blocs insérés.

En cas de mise à jour, il suffit de ré-insérer le nouveau fichier/bloc dans le fichier qui contient les 500 insertions pour le redéfinir.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Re,

 

Ok !

 

Donc il faut bien faire un fichier unique !

 

Et chaque fichier doit déjà contenir un bloc !

 

Dans ce cas, cela ne pose pas de pb que le bloc porte le même nom que son nom de fichier ?

 

En cas de mise à jour, il suffit de ré-insérer le nouveau fichier/bloc dans le fichier qui contient les 500 insertions pour le redéfinir.

 

Pas besoin de refaire la palette alors si il porte le même nom ?

 

Merci encore,

 

 

 

Civil 3D 2024 - COVADIS_18.2

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

Non,

 

Je dois mal me faire comprendre.

 

Exemple simple :

Méthode 1

- Le fichier Rectangle.dwg ne contient qu'une polyligne rectangulaire (sur le calque 0 etc.) dont un des coins ou le centre est en 0,0

- Le fichier Cercle.dwg ne contient qu'un cercle (sur le calque 0 etc.) dont le centre est en 0,0

etc.

Tous ces fichiers sont dans un répertoire "Blocs" et peuvent être insérés dans n'importe quel autre dessin avec INSERER ou ajoutés à une palette via le Design Center (un par un).

 

Méthode 2

Dans un fichier vierge on insère tous les fichiers du répertoire "Blocs" soit à la main pour les positionner, soit on les efface au fur et à mesure, peu importe. On enregistre le fichier sous Blocs_collection.dwg, par exemple.

On peut ensuite insérer ces blocs dans n'importe quel autre fichier via le Design Center ou les ajouter à une palette via le DesignCenter (en les sélectionnant tous en une fois).

 

Si un jour le fichier Rectangle.dwg est modifié

Si la palette a été crée à partir des fichiers du répertoire (méthode 1) elle est automatiquement mise à jour.

 

Si la palette a été crée avec la seconde méthode, il faudra insérer le nouveau Rectangle.dwg dans Blocs_collection.dwg pour le redéfinir et modifier manuellement la palette.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Re,

 

Je dois mal me faire comprendre.

 

Sisi, c'était juste pour m'assurer d'avoir bien compris !,

 

Merci pour ce complément d'infos !

 

Sujet clos en ce qui me concerne.

 

Donc pas de méthode "miracle" pour ma demande, c'est un peu ce que je pensais,...

 

Que l'on choisisse la première ou la seconde méthode, il faut créer les blocs "manuellement" (fichiers par fichiers) ou tous les créer sur le fichier unique,...

 

Pour résumer, je me demandais si il était possible d'automatiser cette étape par script ou lisp,...

 

Merci encore à tous,

Civil 3D 2024 - COVADIS_18.2

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

Je crains que nous ne nous comprenions pas

 

Donc il faut bien faire un fichier unique !

 

[surligneur]Et chaque fichier doit déjà contenir un bloc ![/surligneur]

 

NON, c'est à mon avis une absurdité !

 

Il faut faire :

- soit un fichier qui contient tous les blocs ;

- soit un répertoire dont l'Espace Objet de chaque fichier ne contient que des entités (sur le calque 0 etc.) correctement placées par rapport au 0,0 (qui sera le point d'insertion). L'espace Objet de tout fichier dwg est un bloc en puissance.

Si ce fichier contient des références de blocs dans son EO, ces références deviendront des blocs imbriqués quand on insèrera ce fichier. Si, en plus une de ces référence a le même nom que le fichier, on aura l'erreur d'auto-référencement décrite plus haut.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Re,

 

soit un répertoire dont l'Espace Objet de chaque fichier ne contient que des entités (sur le calque 0 etc.) correctement placées par rapport au 0,0 (qui sera le point d'insertion)

 

Oui mais dans le cas d insertion par palette(s) depuis des fichiers uniques, il faut bien faire un bloc ?

 

Même si ce n'est pas la méthode que je préfère, le copain en question récupère les fichiers dessin en simple entités,...Il doit donc les transformer en blocs pour pouvoir les insérer sur sa palette, non (si il ne veut pas passer par un fichier unique)?

 

Ou alors, il faut bannir complétement cette méthode ?

 

Merci encore,

Civil 3D 2024 - COVADIS_18.2

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

Oui mais dans le cas d insertion par palette(s) depuis des fichiers uniques, il faut bien faire un bloc ?

 

Non, C'est l'espace Objet du fichier qui devient un bloc quand on l'insère.

 

Exemple en images.

 

Le répertoire Demo Blocs contient :

- un répertoire :" Chassis dynamiques" qui contient 6 dwg (chacun d'eux ne contient que des polylignes)

- un fichier Chassis.dwg qui contient 6 blocs (les fichiers dwg sus-cités)

 

Avec l'un comme avec l'autre, je peux créer une palette.

 

http://img130.imageshack.us/img130/3044/blocspalettes.gif

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Re,

 

un répertoire :" Chassis dynamiques" qui contient 6 dwg (chacun d'eux ne contient que des polylignes)

 

Comment obtiens-tu alors des blocs dyns ????

 

Car ils portent le même nom (donc la même définition) que les blocs créés depuis la première palette, je suppose,...

Civil 3D 2024 - COVADIS_18.2

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

Comment obtiens-tu alors des blocs dyns ????

 

Dans ce cas les blocs dynamiques ont été créés dans le fichiers "Chassis.dwg" et les fichiers créés avec WBLOC (option Bloc).

Mais ça revient au même, au final on a un répertoire de fichiers qui ne contiennent que les composants des blocs.

 

Les blocs

 

Je ne comprends pas pourquoi tu n'as pas cette option (je l'ai sur 2007 et 2010), tu devrais l'avoir en faisant un clic droit directement sur le répertoire dans l'arborescence.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Re,

 

- un répertoire :" Chassis dynamiques" qui contient 6 dwg (chacun d'eux ne contient que des polylignes)

 

Dans ce cas les blocs dynamiques ont été créés dans le fichiers "Chassis.dwg" et les fichiers créés avec WBLOC (option Bloc).

 

En faisant comme ça je suis d'accord !

 

tu devrais l'avoir en faisant un clic droit directement sur le répertoire dans l'arborescence.

 

Oui, comme ça j'ai possibilité de créer une palette car il existe dans ces fichiers les "composants des blocs" issues des blocs du fichier source.

 

Mais si tes fichiers n'ont jamais eu de définition de blocs (comme dans l'exemple sur la vidéo message ci-dessus), tu n'as pas l'option de création de palettes,...). Je pensais que tu disais que c'était possible de créer une palette de blocs depuis le DC sur des fichiers n'ayant jamais eu de définition de blocs,...(En espérant être clair,... ;)[Maitrisant mal ce concept, je me suis dis que c'était une possibilité que je ne connaissait peut-être pas,... ]

 

C'est là ou je n'avais pas bien compris.

 

J'ai donc pratiqué comme je fais d'habitude sur le dossier en exemple de la vidéo (Est-ce bien la bonne méthode ? )

 

1) J'ouvre un nouveau fichier

2) J'insère mes fichiers dwg (via _insert dans ce nouveau fichier)

3) J'exporte dans des fichiers uniques les blocs ainsi créés (via wbloc dans ce nouveau fichier) dans un répertoire.

4) Je créé une palette de ce répertoire via le DC

 

Et là, pas de pb !

 

Donc, il n'y a pas plus cours et sans moyen d'automatisation,...

 

(Remarque : J'utilise pour faire l'étape 3) le lisp "blk2dwg" de bonuscad)

 

Merci encore de ton aide

Civil 3D 2024 - COVADIS_18.2

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

Mais si tes fichiers n'ont jamais eu de définition de blocs (comme dans l'exemple sur la vidéo message ci-dessus), tu n'as pas l'option de création de palettes,...)

 

Si, un dwg est un dwg qu'il ait été créé via WBLOC ou traditionnellement depuis un gabarit.

 

Essaye en créant et en enregistrent plusieurs dwg dans un répertoire, tu pourras faire une palette avec ce répertoire.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Lien vers le commentaire
Partager sur d’autres sites

Re,

 

Je viens de le faire est j'ai le même résultat que sur la vidéo (Dossier Chantier-Lilian),...

 

C'est pour cela que je pensais qu'on ne pouvait pas,...

Sur 2008 ou 2011, idem,...

 

J'ai l'option de création d'une palette sur un des fichiers du répertoire, en effet, mais pas sur le répertoire,...!!

 

Une variable d'environnement, windows,...?

 

Je testerai au lycée dés que je pourrai

 

Tiens en passant, une autre question :

 

Comment peut-on mettre à jour le DC lorsque l'on créer un nouveau dossier ? En effet, (chez moi du moins !), je suis obligé d'éteindre et rallumer AutoCAD,...

 

Merci encore, et désolé pour l'insistance mais j'aime bien comprendre,...(mon origine Bretonne surement, ;) :P )

 

EDIT : Le plus étonnant, c'est que j'ai bien l'option de création de palettes sur des dossiers qui ne contiennent pas de fichiers de dessin ???

Civil 3D 2024 - COVADIS_18.2

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

Re,

 

Je viens de trouver pourquoi je n'y arrivais pas !

 

Sur le dossier test placé sur le bureau, impossible !

 

Sur le sous-dossier "Nouveau dossier", pas de pb !

 

http://free0.hiboox.com/images/2010/187f5dcaf6b37345267238d01a64dc62.png

 

Et c'était le même pb sur la vidéo ci-dessus !

 

Conclusion : Il faut au moins un sous dossier si l'on travaille depuis le bureau,...C'est bon à savoir car bien entendu je fais tout mes tests depuis le bureau,...plus facile à mettre à la corbeille ensuite, mais ce n'est peut-être pas toujours une bonne idée,...(Ou alors c'est un auttre paramètre qui m'échappe encore, ...bref !)

 

Ailleurs, pas de pb !

 

Comment peut-on mettre à jour le DC lorsque l'on créer un nouveau dossier ? En effet, (chez moi du moins !), je suis obligé d'éteindre et rallumer AutoCAD,.

 

Clic droit => Actualiser

 

Je me sers tellement peu du DC que j'avais oublié,..

 

Merci encore aux participants et notamment à (gile),

 

PS : Didier à raison, il va falloir que je reprenne les fondamentaux,..

 

Civil 3D 2024 - COVADIS_18.2

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

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é