Aller au contenu

Lisp pour insérer un Bloc sur une hachure ou polyligne contenant des attributs dont la surface de la polyligne


Messages recommandés

Posté(e)

Bonjour à toutes et tous, 

Le titre du sujet peut paraître inadapté.

Je vais dans un premier temps essayer de définir le besoin de base et comment j'envisageai de le faire (dans la limite de mes compétences et connaissances)

Je dois réaliser des plans de programmation dans le cadre d'un projet de rénovation partielle d'un Hôpital.

Dans mes données d'entrées, je dispose de plans archis qui contiennent des polylignes fermées ainsi que le nom et numéro de la pièce  correspondantes mais en simple texte.

Il faut produire une séries de plans faisant apparaître les pièces/zones à rénover avec une hachure d'une certaine couleur suivant le service

Sur ces plans doivent apparaître le nom de la pièce ainsi que le numéro et la surface de la pièce.

J'ai aussi besoin de produire un fichier Excel contenant ces infos ainsi que d'autres qui n'ont pas besoin d'apparaître sur le plan

J'avais imaginé de créer un bloc contenant l'ensemble des différentes informations sous formes d'attribut et j'aurai pu (grâce à ATTIN/ATTOU) faire des export/import vers un fichier Excel (par l'intermédiaire d'un fichier au format txt).

J'ai trouvé des Lisps qui insèrent au centre de gravité de toutes les polylignes des champs contenant la surface de la pièce.

Le problème est que j'ai besoin de la surface de la pièce dans Excel et que je ne vois pas du tout comment faire pour avoir un lien entre le bloc et la surface ou même le bloc avec la polyligne...

Si quelqu'un pouvait me donner une piste, ce serait sympa...

Dans mes différentes recherche, j'ai trouvé l'idée d'utiliser des calques, mais j'ai des milliers de pièces dans mon projet

J'ai déjà utiliser cette technique pour remplir des rubans de cartouches par exemple et j'utilise la valeur 'maintien' (HANDLE).

Dommage que le projet ne soit pas sous REVIT...

Merci d'avance pour vos réponses, Sébastien

Posté(e)

Bonjour @babatche06

Ce que je comprends :

On a pour chaque pièce une polyligne et quelque part à l'intérieur de cette polyligne un numéro de pièce et un nom.
Il faudrait donc cliquer la polyligne -> trouver sa superficie -> trouver le nom et numéro de la pièce ->-> et insérer un bloc regroupant toutes ces informations.
Éventuellement hachurer la polyligne en fonction de son numéro ou de son nom, dans un deuxième temps.

Est-ce bien ça ?

Pour nous aider à t'aider, il nous faudrait un extrait de DWG avec quelques pièces et quelques noms/numéros pour voir comment on peut extraire ces données.

Amicalement

Posté(e)

Oui ce serait l'idéal j'aurai du présenter la chose de cette manière en fait ...

J'ai joint une petite zone du projet UNCH-LS-1-1-Basement.dwg

J'aurai d'autres attributs à intégrer dans le bloc et que je renseignerai dans le fichier Excel

S'il était possible éventuellement d'hachurer la zone dans un calque ou une couleur suivant une valeur d'attribut, ce serait juste magique ...

Merci pour votre aide

 

Posté(e)

Bonjour @babatche06

Ça n'a pas l'air impossible, je voulais voir un exemple pour appréhender les données entrantes et ça a l'air gérable.
Tout de suite, je n'ai pas le temps, mais je vais suivre ce post et tenter d'y répondre, sauf si je vois une réponse d'un tiers arrivee 

Question : puis-je avoir le bloc à insérer pour ne pas créer des trucs à ma sauce qui risquent de ne pas coller à l'arrivée.

Ensuite :
S'il était possible éventuellement de hachurer la zone dans un calque ou une couleur suivant une valeur d'attribut, ce serait juste magique…

Certainement, mais quelle couleur en fonction de quelle valeur ?, de quel attribut ? dans quel calque ? je ne suis ni magicien ni mentaliste.

Amicalement

Posté(e)

Hello @babatche06

 

Alors il y a des choses bien sur ton DWG 10 LWPOLYLINE  sur le Calque :  "A-AREA-BDRY"

 

et par contre "moins bien" 20 MTEXTs sur le meme Calque :  "A-AREA-IDEN"

ALORS qu il devrait y avoir 2 calques de TEXT :

-- 1 pour le Service par exemple "Control Room"

-- 1 pour l Identification unique de la piece par exemple "WHB0409E"

 

J imagine bien la generation automatique d un Bloc avec la Surface, le Service, l Identification, etc

 

Pour moi le hachurage devrait se faire sur un calque du genre "HATCH__Nom_du_Service"

Ainsi on aurait facilement les surfaces totales par Service ...

 

Bye, lecrabe

 

PS: ATTENTION ton DWG est de type US !

                  LWPOLYLINE  Calque: "A-AREA-BDRY"
                            Espace: Espace objet
                   Maintien = bd56
             Fermée
Epaisseur constante     0'-0"
               aire   14451.01 pouce carré (100.3543 pied carré)
         périmètre   42'-7 3/16"

 

 

Autodesk Expert Elite Team

Posté(e)

Je vais créer le bloc et définir exactement les besoins de couleur

Pour le calque des textes des fichiers reçus, je peux ranger manuellement les textes dans les bons calques ? 

Effectivement, c'est un projet aux états-unis donc les fichiers sont en pouces

En tout cas merci infiniement pour vos réponses très encourageantes

 

Posté(e)

Bonjour,

Voici une Vidéo qui présente les principes pour ce genre de gestion...

C'est quelque chose que je traite très souvent avec des BLOCS et EXCEL pour le traitement des données extraites via ATTEXTR tout simplement...

Il faut effectivement avoir créé un BLOC qui va reprendre les étiquettes pour y insérer le Nom ou N° du Local, la surface, le périmètre, etc. 

Et toujours pour toutes ces petites applications que je développe, j'utilise à 100% une version LT d'AutoCAD, je n'utilise aucun LISP.


Christian

  • Upvote 1

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)

Bonjour

 

Avec AutoCAD MAP3D (inclus dans l'abonnement) pas besoin de développement, c'est tout en natif.

1. Séparer les identifiants dans 2 calques différents (style de texte différent, donc pas compliqué)

2. Ne garder à l'écran que les polylignes englobantes et 1 calque d'identifiant

3. Créer une table de données d'objets contenant  1 champ de type caractère

4. Avec la commande ADEGENLINK en choisissant l'option Texte délimité, puis en sélectionnant tous les textes à l'écran, chaque texte va être "transféré" (copié) en tant que donnée attributaire sur la polyligne englobant chaque texte.

5. Refaire les étapes 2, 3 et 4 avec le second calque d'identifiant.

6. Créer un gabarit d'annotation avec 3 attributs recevant chacun un identifiant et la surface dans le 3ème.

7. Utiliser ce gabarit pour étiqueter toutes les polylignes fermées.

8. ATTOUT pour sortir les 3 infos par pièce en format TXT ouvrable sous Excel.

 

Compter 2 minutes sur le fichier d'exemple, mais il y aurait 3000 ou 10 000 pièces ça ne serait guère plus long.

 

Olivier

UNCH-LS-1-1-Basement.dwg UNCH-LS-1-1-Basement.txt UNCH-LS-1-1-Basement.xlsx

  • Like 2
Posté(e)
Le 06/01/2024 à 15:38, babatche06 a dit :

S'il était possible éventuellement d'hachurer la zone dans un calque ou une couleur suivant une valeur d'attribut, ce serait juste magique ...

Avec AutoCAD MAP, tu pourras aussi faire une thématique de type hachure en choisissant le modèle, couleur... selon la valeur d'un attribut.

 

Olivier

  • Upvote 1
Posté(e)

Bon j'ai essayé sur AutoCAD Map mais je bloque à l'étape 6:

Lorsque j'essaie de créer le gabarit d'annotation, je ne comprend pas comment l'on fait pour créer le 3 eme attribut relié à la surface

Entre temps j'avais créé le dwg exemple manuellement contenant:

-l'ensemble des objets dans les bons calques pour les données d'entrées (pour les surfaces, room name et room number)

-le bloc AutoCAD avec les attributs

-Les calques de hachures suivant le fichier excel expliquant les règles de couleur

Merci d'avance

Color Scheme.xlsx UNCH-LS-Test.dwg

Posté(e)

Bonjour à toutes et tous

En fait je n'ai pas réussi à appliquer la méthodo sur autocad map

Si quelqu'un peut m'aider je suis preneur avec une préférence pour des lisp

Merci d'avance

Cordialement

Sébastien

  • 2 semaines après...
Posté(e)

Désolé pour mes remerciements tardifs mais j'étais en vacances

Donc merci beaucoup à toutes les personnes qui ont répondu à mon problème et pour avoir pris la peine de faire cette vidéo

Je n'ai jamais utilisé Autocad MAP mais avec la vidéo, je ne peux qu'y arriver ...

Une fois que j'aurai terminé de préparer mes blocs et l'export vers Excel,  j'aurai besoin, suivant des valeurs remplies dans le fichier excel, d'hachurer les pièces d'une certaine couleur.

Je ne vois pas comment 'automatiser' cela et surtout je ne sais pas comment préparer mon fichier de base

Pour l'instant, je pensais créer un fichier contenant tous les niveaux avec un décalage en Y.

Ces fichiers contiendraient, pour chaque pièce une polyligne, et 2 textmult (numéro et nom).

Une fois ceci terminé, je suis la vidéo pour créer l'ensemble de mes blocs

Dois-je avant de faire l'export excel, créer et lier la hachure avec la polyligne et un gabarit d'annotation adapté à ce besoin, ou Autocad MAP est capable de créer en fonction d'une valeur d'attribut une hachure d'une certaine couleur ou dans un certain calque?

Merci d'avance

Sébastien

 

 

 

  • 3 semaines après...
Posté(e)

Bonjour à toutes et tous et encore merci pour votre aide

Désolé, mais je n'avais pas regardé la vidéo en entier et je n'avais pas vu que mon problème pour la couleur des hachures était expliqué.

Donc j'ai bien avancé sur le sujet et terminé mon fichier mais il me restent 2 problèmes

Dans la vidéo, je n'arrive pas bien à bien lire la syntaxe pour passer la surface en pied carrés arrondi

je lis itos (/ .AREA 144) 2 0) mais cela ne fonctionne pas

Cela n'est pas très grave puisque je me débrouille dans excel

 

Par contre j'ai un souci dont je me rend compte un peu à la fin c'est que

(grâce à la vidéo) J'ai compris comment ajouter des données attributaires manuellement ou automatiquement dans les polylignes

Ensuite j'annote avec un gabarit d'annotation, mais je voulais pouvoir modifier dans excel ces données et les réimplanter dans les polylignes, 

Comme je fais un ATTOUT / IN sur les bloc d'annotations, je ne remets à jour que les valeur dans le annotations

Je voulais savoir s'il était possible de modifier les valeurs d'attributs de polyligne à travers Excel ?

 

Cordialement

Encore merci pour tout

Sébastien

 

 

 

Posté(e)

Merci

Entre temps j'ai trouvé OlivierEckmannExploitationdesdonnesd_objets.msi qui fait ce dont j'ai besoin

Je suis content je suis à peu près autonome pour faire le job

Merci à toutes et tous

Sébastien

Posté(e)

Bon j'ai essayé avec rtos (/ .AREA 144) 2 0)

aussi avec (rtos (/ .AREA 144) 2 0) (pour fermer la seconde parenthère)

Aucun des 2 ne fonctionne, je sais me débrouiller avec excel donc cela n'a pas d'importance, c'était juste pour comprendre

Sébastien

Posté(e)

Bonjour @babatche06

Je suis largué, je pense qu'il faut créer un nouveau post avec un dessin exemple et bien expliquer ce qui est attendu.
Des solutions ont été proposées, on ne sait pas avec laquelle vous travaillez, et on ne sait pas quoi vous répondre de ce fait.
Vous en êtes où exactement ?

Exemple de réponse : j'arrive à créer mes polylignes périmétriques et créer un bloc avec le nom de la pièce et la superficie.
Ensuite, Exemple de question : je n'arrive pas à créer un tableau Excel avec les valeurs de superficies en m² en choisissant une précision en décimales.

Amicalement

 

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • 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é