Aller au contenu

2 TYPES DE TEXTE VERS EXCEL


Messages recommandés

Posté(e)

Bonjour à toutes et tous,

 

Peut-être que ma demande existe déjà,...

 

Voilà, j'ai deux types de texte (Style 1 et style 2 sur l'image ci dessous) =>

 

http://www.hostingpics.net/viewer.php?id=804934selection_texte.png

 

Style 1, exemple => 2HA16x5.50m

 

Style 2, exemple => 10HA14x4.00m e=18cm

 

Il faudrait que je puisse récupérer ces infos sous EXcel de cette façon là =>

 

http://www.hebergementimages.com/image-b42e061b55e172a78b4b40d9dcd9d22e_selection-texte2.jpg.html

 

Est-ce réalisable ?

 

Merci d'avance,

 

Civil 3D 2025 - COVADIS_18.3b

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

Posté(e)

Salut,

 

Tous les textes contenant HA sont sélectionnés, le résultat est inscrit dans un fichier csv (je n'ai plus Excel pour tester)

 

(defun c:lili2006 (/ ss filename sep file n ent)
 (if
   (and
     (setq ss (ssget "_X" '((0 . "TEXT") (1 . "*HA*"))))
     (setq filename (getfiled "Créer un fichier CSV" "" "csv" 1))
   )
    (progn
      (setq sep  (vl-registry-read "HKEY_CURRENT_USER\\Control Panel\\International" "sList")
     file (open filename "w")
      )
      (write-line (strcat "nb de barre" sep "diam (mm)" sep "long (m)" sep "espt") file)
      (repeat (setq n (sslength ss))
 (setq
   str (gc:string-subst-all "" " " (cdr (assoc 1 (entget (ssname ss (setq n (1- n)))))))
 )
 (write-line
   (vl-string-subst
     sep
     "HA"
     (vl-string-subst
       sep
       "x"
       (if (wcmatch str "*m*e=*")
	 (vl-string-subst
	   sep
	   "me="
	   (if (wcmatch str "*alternées*")
	     (vl-string-subst
	       sep
	       "cm"
	       str
	     )
	     (vl-string-right-trim
	       "cm"
	       str
	     )
	   )
	 )
	 (vl-string-right-trim
	   "m"
	   str
	 )
       )
       (vl-string-search "HA" str)
     )
   )
   file
 )
      )
      (close file)
    )
 )
 (princ)
)

;; gc:string-subst-all
;; Substitue toutes les occurences d'une chaine par une autre dans une chaine
;;
;; Arguments
;; new : la chaine à substituer au modèle
;; old : le modèle à remplacer
;; str : la chaine
;;
;; Exemple
;; (string-subst-all "/" " " "Oui Non Peut-être") -> "Oui/Non/Peut-être"

(defun gc:string-subst-all (new old str)
 (while (vl-string-search old str)
   (setq str (vl-string-subst new old str))
 )
 str
)

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

Posté(e)

Coucou

 

je suis d'accord avec le corps des routines, j'ai pas bien regardé mais bon

je viens plus préciser le mode de sélection

j'ai cru comprendre que Lili2006 avait créé deux styles

dons on fait deux sélections en filtrant le style

et ensuite on traite...

 

(setq jeusel1 (ssget  "x" (list
		    (cons 1 "style1")
		    (cons 0 "TEXT")
		    )
	      )
     jeusel2 (ssget  "x" (list
		    (cons 1 "style2")
		    (cons 0 "TEXT")
		    )
	      )
     )
      

 

amicalement

Posté(e)

Bonjour à toutes et tous,

 

Je n'ai pu tester que maintenant, étant en déplacement.

 

Carboleum,

 

Merci d'avoir regardé mon pb mais je suis bien incapable d'exploiter tes lignes de code,...

 

La routine de (gile) fonctionne à une vitesse impressionnante (641 lignes le tps d'enregistrer le fichier !!)

 

Par contre, j'ai un soucis avec le rangement sur certaine ligne. Mais peut-être est-ce lié au "format d'écriture" sur AutoCAD.

 

Un exemple.

 

http://img.ahst.fr/data/images/arma1beb.jpg

 

Quoi qu'il arrive, là aussi un grand merci à Gilles, :P

 

 

Merci Didier,

 

deux styles

 

Tu veux dire avec l'information "espt" (espacement) ou sans ?

 

Là aussi, je ne sais que faire de tes lignes de code, mais te remercie d'avoir regardé ou bien de m'en dire un peu plus,..

 

 

Civil 3D 2025 - COVADIS_18.3b

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

Posté(e)

coucou

 

j'avais compris dans le problème que tu posais

que tu avais deux styles de texte différents

et que en fonction du style il fallait faire une chose

en fonction de l'autre autre chose

 

donc je ne t'ai donné que le moyen de faire deux jeux de sélections

ensuite on applique la routine sur l'un puis sur l"autre

 

sans faire trop de test à l'intérieur de la routine

puisque c'est le style de texte qui commande l'action.

 

amicalement

Posté(e)

Re,

 

Salut Didier,

 

Ok ! Merci pour ce complément d'info.

 

Non, je n'avais pas fais attention qu'il y avait 2 styles de textes différents et j'aurai pu, effectivement, devoir trié selon ce critère. En fait, non !

 

Style 1 => Barres longitudinales (Nombre, mais pas d'espacements constants => Exemple ligne 2 sur l'image ci-dessus))

 

Style 2 => Barres type "cadre" (nécessite un espacement constant pour dénombrer => Exemple ligne 5 de cette même image)

 

le moyen de faire deux jeux de sélections

ensuite on applique la routine sur l'un puis sur l"autre

 

Compris,

 

Merci encore de ton intervention,

Civil 3D 2025 - COVADIS_18.3b

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

Posté(e)

Par contre, j'ai un soucis avec le rangement sur certaine ligne. Mais peut-être est-ce lié au "format d'écriture" sur AutoCAD.

 

Tu parlais de 2 "styles de texte :

Style 1, exemple => 2HA16x5.50m

 

Style 2, exemple => 10HA14x4.00m e=18cm

 

Hors, avec HA, dans ton dessin on trouve aussi (entre autre) :

 

- 44HA16 x8.00m e=12cm alternées

 

- 2x2HA14x4.00m

 

- 6HA8x12.00+1.70m e=50

 

Si j'ai eu la présence d'esprit de supprimer tous les espaces au début du traitement de la chaîne, je ne pouvais pas deviner (et encore moins la machine à laquelle parle le programme) qu'il existait d'autres formats...

 

J'ai modifié le code pour que 2x2 soit écrit dans la première colonne et 12.00+1.70 dans la troisième.

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

Posté(e)

Re,

 

Si j'ai eu la présence d'esprit de supprimer tous les espaces au début du traitement de la chaîne, je ne pouvais pas deviner (et encore moins la machine à laquelle parle le programme) qu'il existait d'autres formats...

 

Hum hum, :o

 

Il est clair que je n'ai pas la capacité de définir clairement un cahier des charges comme sait si bien le faire lecrabe, ;)

 

En tout cas, ton analyse du besoin est juste Gilles puisque tout semble fonctionner nickel chrome (il faut que je compare un peu plus le résultat .csv du plan mais je ne vois pas pourquoi ce ne serait pas juste à priori,...)

 

Pour les tetxes de type "12.00+1.70", il suffit de rajouter le "=" devant,

 

http://img.ahst.fr/data/images/arma2.jpg

 

Est-ce qu'il est difficile sur cette routine de faire comme sur SELTEXT, un filtrage par fenêtre de capture ?

 

Encore un grand merci pour ton aide,

 

EDIT :

 

- 44HA16 x8.00m e=12cm alternées

 

Exact ! Je ne m'en étais pas aperçu !

 

http://img.ahst.fr/data/images/arma3.jpg

 

Tu as donc du les exclure (Alors que sur la version précédente, ils l'étaient) alors qu'il faut effectivement les garder. En fait, toutes ces infos correspondent au ferraillage complémentaires de dalles (planchers) en béton armé.

 

Pour ce style (avec en plus "alternées"), si il n'est pas possible de créer une nouvelle cellule,alors j'utiliserai SELTEXT pour les identifier et traiterai "manuellement" ceux-là, à moins que tu n'ai une meilleure idée ?

 

Un extrait du plan dans sa globalité :

 

http://img.ahst.fr/data/images/arma4.jpg

 

Est-il alors également possible de récupérer les informations des Treillis soudés (quadrillage régulier de barres d'armatures HA matérialisé ici par un trait bleu de 2.40m (correspondant à la largeur standard d'un panneau)) du type "ST60 6.00x2.40" ? (c'est un exemple car il existe d'autres types de références de panneaux correspondant à des sections d'aciers différentes). Il serait pas mal aussi de pouvoir les séparer des autres armatures (de type "filantes" ou "cadres").

 

http://img.ahst.fr/data/images/arma5.jpg

 

 

 

Un extrait de plan de ferraillage

 

(Complément technique: Une dalle (plancher) doit reprendre des efforts de flexion, donc de traction en fibre inférieure de la dalle en zone courante et fibre supérieure sur appuis (type murs, poutres,..), le béton ne supportant que très mal la traction (d'ou la naissance du Béton armé), c'est alors l'acier qui récupère les efforts de traction dans la dalle. Le béton ne sert alors que d'enrobage dans ces zones tendus))

 

Civil 3D 2025 - COVADIS_18.3b

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

Posté(e)

Le code est modifié pour mettre 'alternées' dans la colonne suivante.

 

Est-il alors également possible de récupérer les informations des Treillis soudés (quadrillage régulier de barres d'armatures HA matérialisé ici par un trait bleu de 2.40m (correspondant à la largeur standard d'un panneau)) du type "ST60 6.00x2.40" ? (c'est un exemple car il existe d'autres types de références de panneaux correspondant à des sections d'aciers différentes).

 

Certainement,mais fais l'effort de donner :

- ce qui caractérise les textes à sélectionner (permet de les sélectionner tous en excluant les autres ex : commencent par ST)

- ce qui permet de séparer les données (espace 'x')

- répertorier les différents formats pour ce type.

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

Posté(e)

Re,

 

Certainement,mais fais l'effort de donner :

- ce qui caractérise les textes à sélectionner (permet de les sélectionner tous en excluant les autres ex : commencent par ST)

- ce qui permet de séparer les données (espace 'x')

- répertorier les différents formats pour ce type.

 

Oui, oui bien sur mais je voulais savoir d'abord si c'était faisable (je pensais bien que oui pour être honnête) et surtout si tu voudrais bien me donner la main (j'ai longuement hésité avant de poster cette demande car je la trouve bien spécifique et elle risque bien de n'intéresser que moi, et c'est là ou je suis gêné,... :cool: )

 

Je regarde tout ça en détail et t'en remercie (une fois de plus) par avance,...

 

J'espère vraiment un jour pouvoir te rendre la pareille mais j'ai bien peur qu'il n'en sera jamais rien,...(Il est plus facile pour moi de donner que d'accepter de recevoir,... :exclam: )

 

Je viens de tester la nouvelle mouture, tout roule ! :P

 

http://img.ahst.fr/data/images/arma6.jpg

 

Dés que l'info change, le "rangement" aussi, mais je vois mal comment on peut référencer (du moins prendre en compte) tous ces cas de figures,...Et je ne pense pas qu'il soit bien long de rectifier ces quelques lignes "manuellement", la routine fait 95 % du travail de rangement et de dénombrement. Il faut cependant filtrer l'ensemble des armatures et TS du plan, c'est pour ça que je vais réfléchir à comment recenser tous les cas existants sur cette zone de 15 000 m² et ce, sur les deux faces de la dalle (en lit supérieur, il peut y avoir des dénominations encore différentes,..)

 

 

Dés que j'y vois plus clair sur la définition du besoin, je revient

 

Merci encore pour ton soutien et ton aide,

 

(Je ne pensais pas que c'était aussi galère une affaire comme ça,...d'habitude, on fait le métré à l'avancement et par calques, il suffit d'une "méga charrette" pour palier au plus urgent (les toupies de béton qui attendent ou déverser,...) et après on perd bien plus de temps, sans parler des risques d'erreurs,.... Encore une fois,une bonne 'organisation du travail est primordiale,...)

Civil 3D 2025 - COVADIS_18.3b

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

Posté(e)

Re,

 

Je pense avoir recensé les cas les plus "classiques".

 

Un exemple sur un plan depuis la routine en l'état,

Un exemple de formatage souhaitable (si réalisable "facilement", bien entendu, sinon c'est déjà très bien comme ça,...)

 

Les autres cas doivent rester à l'interprétation du métreur.

 

Est-ce qu'il est difficile sur cette routine de faire comme sur SELTEXT, un filtrage par fenêtre de capture ?

 

Une idée ?

 

Merci encore,

 

Civil 3D 2025 - COVADIS_18.3b

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

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é