Aller au contenu

Projet d'étude :Calcul automatisé du poids d'aciers par éléments de structure


ArnaudCru

Messages recommandés

Bonjour,

 

Je suis en licence CAO/DAO en alternance dans un bureau d'étude structure béton armée et j'ai un projet a réaliser. Celui ci consiste a automatiser un plan de ferraillage. Le principale objectif est de calculer "automatiquement" le poids d'aciers /ml que contient un élément (Longrine/Murs/Poutres). Ensuite la 2ème étape serai d'automatiser l'ensemble de la nomenclature.

 

J'ai quelques notions de LISP vu en formation mais pas assez conséquente pour mener a bien ce projet.

 

Pour mieux comprendre, le dessinateur dessine son coffrage et intègre le ferraillage sous forme de bloc dynamique. Ensuite pour que l'entreprise a laquelle ont fourni les plans comprenne bien, on réalise une nomenclature avec les colonnes suivantes:

 

Élément de structure: longrine, poteau, poutres ...

Numéro d'aciers: un élément de structure peut contenir différents aciers.

Longueur développé: longueur développé de l'acier concerné

Schéma: schéma symbolisant l'acier avec ces dimensions

 

A ce jour dans notre bureau cette nomenclature est réalisé "à la main" rien n'est automatisé. Le but serai de rajouter une 5ème colonne avec le poids de l'aciers en se servant des dimensions des blocs dynamique.

 

Quelqu'un aurait t'il quelques pistes? Ou un projet qui utilise les mêmes besoins?

 

PS: Pour l'instant je n'ai travaillé que sur papiers en essayant de chercher une bonne direction...

 

Cordialement,

 

Arnaud

Etudiant en licence CAO/DAO

Lien vers le commentaire
Partager sur d’autres sites

Pour récupérer les propriétés du bloc dynamique, tu dois utiliser la fonction :

 

vla-GetDynamicBlockProperties

 

Après pour le reste, en recherchant sur Google des bouts de code et en les assemblant, tu devrais réussir à sortir quelque chose.

Maxence DELANNOY

Développement de compléments aux logiciels Autodesk : AutoCAD, Revit, Inventor, Vault, Navisworks... et autres logiciels de CAO

WIIP - http://wiip.fr

Lien vers le commentaire
Partager sur d’autres sites

Bonjour à toutes et tous,

J'aimerais récupérer des valeurs de Distance de mes blocs dynamiques dans des champs invisibles

 

 

 

Un exemple ici =>

 

Pour les champs invisibles, j'ai juste interdit le calque à l'impression, ce qui me permet une vérif rapide de mon métré dans la nomenclature avant de générer le tableur Excel qui me renseigne en poids total et linéaires de chaque diamètre.

 

J'ai quasiment fini le développement de toutes les barres utiles en bâtiment =>

 

Bon courage, car même ce bloc de base, j'y ai passé une bonne dizaine d'heure (bon, c'était mon premier mais tout de même !)

 

Une fois que tu as compris le principe et que ta liaison avec Excel au final fonctionne bien, c'est pareil pour tous les autres blocs mais c'est évidemment très très long !!

 

Par contre, en terme de production et de justesse, y'a pas photo . A tous les diamètres j'ai dessiné les rayons de cintrage à l'échelle, ce qui me permet de vérifier la possibilité dans le coffrage et les quantités justes (j'ai bien entendu calculer les longueurs développées à la fibre neutre).

 

Pour ce faire, il faut utiliser le champ formule =>

Civil 3D 2024 - COVADIS_18.2

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

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

Merci de ta réponse, pour me faciliter la tâche je vais dessiner seulement l'axe neutre. Dans nos plans on a l'habitude de dessiner les armatures avec un trait fin et non doublé comme toi. Je vais faire la démarche suivante sur Lisp:

-Sélection de l'acier

-On donne le diamètre

-Le programme vérifie le nom de l'acier ( U, epingle, etc)

-En fonction de celui-ci le programme affecte les différentes valeurs de distances.

-Calcul de la longueur développée, puis rajout de la distance de la partie courbe en fonction des valeurs spécifié dans l'Eurocode. (Définit dans le LISP)

-Insertion de cette valeur dans la colonne Longueur développé de ma nomenclature.

-Calcul du poids d'aciers en fonction de la longueur développé et du diamètre.

 

Je bosse dessus et je te tiens au courant.

 

 

Arnaud

Lien vers le commentaire
Partager sur d’autres sites

  • 3 semaines après...

Bonjour à tous,

 

J'ai commencé mon LISP, j'ai un soucis pour récupérer le nom des bloc armatures (cadre U etc) car dès que je copie le bloc et change ses dimensions, le nom change complètement... Dois je passer par un champ invisible avec le nom du bloc?

 

PS: Je dois récupérer le nom pour vérifier quel est l'acier dans mon lisp pour pouvoir poursuivre...

 

Cordialement,

 

Arnaud

Lien vers le commentaire
Partager sur d’autres sites

Merci de ta réponse, j'ai vu qu'il fallait utiliser cette fonction mais je n'y arrive pas...

Je fais un test avec un le dernier bloc dessiné mais ça me met :

; erreur: type d'argument incorrect: VLA-OBJECT <Nom d'entité: 7ef91ad8>

 

Lisp:

 

(defun c:nombd()

(vl-load-com)

(setq bloc (entlast))

(setq bloc (vla-get-effectivename bloc))

)

 

As tu une idée?

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

Bonjour à tous,

 

Le programme avance doucement mais sûrement...

 

Deux point sont un peu flou pour moi:

 

1er point:

 

Quel est le rôle exacte des fonctions STRCAT , ITOA et FIX?

(J'ai bien des éléments de réponses avec mes recherches sur le forum mais cela reste flou... des exemples?)

 

2ème point:

 

Ma nomenclature se créer dans un calque définit en LISP.

Comment faire pour que certaines entités obtiennent une autre couleur? et un style différent pour certains éléments de textes?

 

Arnaud

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Pour ton premier point :

 

strcat

Retourne la concaténation de deux "strings" ou plus

 

itoa

Retourne la conversion d'un "int"(nombre entier) en "string"

 

fix

Retourne la valeur arrondi d'un nombre réel au plus proche petit entier.

(En gros ca prend un nombre réel, supprime tout ce qui a après la virgule)

 

Le mieux c'est d'ouvrir vlide et de t'amuser avec.

 

Pour le point 2, il faut regarder le code dxf 62 pour forcer la couleur d'une entite

(autodesk dxf reference "Common Group Codes for Entities . 61")

Pour changer le style des entites TEXT et MTEXT, c'est le code dxf 7

(autodesk dxf reference "MTEXT . 117" ou "TEXT . 144")

 

Apres, si ça ne dérange pas de partager, tu pourrais poster un bout de ton code, parce qu'en fonction de ce que tu as écris, les solutions a tes problèmes (point 2 par exemple) peuvent être différentes.

Et tu auras sans doute des conseils de vétérans ph34r.gif sur comment améliorer le code.

 

Sur ce, c'est dimanche, mais pas pour moi wacko.gif

Ju du Japon

Lien vers le commentaire
Partager sur d’autres sites

Bonjour tout le monde,

 

Merci de vos réponses.

 

Je souhaite injecter une valeur issue d'un calcul dans du texte en lisp.

J'arrive à le faire mais la valeur est arrondi à 0 décimal (0.45 =0)

Dès que j'utilise le RTOS cela ne marche plus...

 

Code:

(setq poids  (strcat (itoa (rtos ( fix (* (/ (+  A (* B 2) delta ) 100) poids_ml ))) 2 2)))

 

J'ai du mal comprendre un truc avec le rtos...

 

Merci d'avance

 

Arnaud

Lien vers le commentaire
Partager sur d’autres sites

Oui delta et poid_ml sont des variables calculer avant et après j'insère un texte issue de poids avec la valeur calculer. Cela marche, mais pas avec le rtos...

 

Plus de code:

(setq longDev     (strcat (itoa ( fix (+  A (* B 2) delta )))))
	(setq poids  (strcat (itoa (fix (rtos (* (/ (+  A (* B 2) delta ) 100) poids_ml ) 2 2)))))
   
	  

(command "texte" "j" "mc" i3 5 0 longDev
 "inserer" NomBDyn i2 1 1 0
 "texte" "j" "mc" i1 5 0 poids

      )

Lien vers le commentaire
Partager sur d’autres sites

Allez je me lance, voici le code dans l'état actuelle.

Il est composé de 3 fonctions (Dessin de nomenclature / Aciers / Repère)

 

Merci d'avance pour les améliorations...

 

Prochain objectif, lier les 3... Mais comment?

J'ai envie que quand on sélectionne l'acier, on lui rentre les différentes caractéristiques et qu'en dernier on rentre le numéro du repère pour qu'il vienne se ranger automatiquement dans la bonne ligne de la nomenclature.

 

Pour l'instant je dois cliquer sur le point haut droit de la ligne (Le point haut droit de la case poids)

 

Code:

(defun c:nomenclature()

  

   (setvar "cmdecho"0)
   (setvar "osmode" 0)
   (command "scu" "")

 (command "calque" "n" "NOMENCLATURE" "ep" "0.13" "NOMENCLATURE" "co" "3" "NOMENCLATURE" "tl" "continuous" "NOMENCLATURE" "ch" "NOMENCLATURE" "")

 ;Insertion tableau (Point HauT Droit du tableau
 (setq p1 (getpoint "\nPoint haut droit du tableau :"))

 
      (setq nbl (getint "\nQuel est le nombre de repère")) ;Nombre de repère dans le dessin (Numéro d'aciers)
      (setq nbl1 (+ nbl 1)) ;+1 ligne pour l'entête
      
(setq larg1 45) ; Largeur colonne Poids
(setq larg2 85) ; Largeur colonne schéma
(setq larg3 25) ; Largeur colonne Ldev
(setq larg4 70) ; Largeur colonne Description
(setq larg5 30) ; Largeur colonne Numero

(setq hcase 33) ; Hauteur des lignes

;Point pour tracer les segment d'une ligne entière
(setq p2 (polar p1 pi larg1)) 
(setq p3 (polar p2 pi larg2))
(setq p4 (polar p3 pi larg3))
(setq p5 (polar p4 pi larg4))
(setq p6 (polar p5 pi larg5))	
(setq p7 (polar p6 (/ pi -2) hcase))
(setq p8 (polar p5 (/ pi -2) hcase))
(setq p9 (polar p4 (/ pi -2) hcase))
(setq p10 (polar p3 (/ pi -2) hcase))
(setq p11 (polar p2 (/ pi -2) hcase))
(setq p12 (polar p1 (/ pi -2) hcase))


 ;Traçage des segment + réseau par rapport au nombre d'aciers
  (command	
     	"polylign" p1 "la" 0 0 p6 p7 p12 "c"
"reseau" "d" "" "r" nbl1 1 (* -1 hcase)
"ligne" p5 p8 ""
"reseau" "d" "" "r" nbl1 1 (* -1 hcase)
"ligne" p4 p9 ""
"reseau" "d" "" "r" nbl1 1 (* -1 hcase)
"ligne" p3 p10 ""
"reseau" "d" "" "r" nbl1 1 (* -1 hcase)
"ligne" p2 p11 ""
"reseau" "d" "" "r" nbl1 1 (* -1 hcase)
)

 ;Definition des points d'implantation ( Milieu des cases d'entête)
 (setq i (polar p1 (/ pi -2) (/ hcase 2))

 i1 (polar i pi (* larg1 0.5)) ;Point insertion Poids
 i2 (polar i pi (+ larg1 (* larg2 0.5)));Point insertion Schéma
 i3 (polar i pi (+ larg1 larg2 (* larg3 0.5)));Point insertion Ldev
 i4 (polar i pi (+ larg1 larg2 larg3 (* larg4 0.5)));Point insertion Description
 i5 (polar i pi (+ larg1 larg2 larg3 larg4 (* larg5 0.5)));Point insertion Numéro

 )
 
  
;Insertion du texte d'entête justifié en MC
 (command "texte" "j" "MC" i1 7 0 "Poids" ""
   "texte" "j" "MC" i2 7 0 "Schéma" ""
   "texte" "j" "MC" i3 7 0 "Ldev" ""
   "texte" "j" "MC" i4 7 0 "Description" ""
   "texte" "j" "MC" i5 7 0 "N°" ""
   )

;Création d'une boucle pour numéroter automatiquement les lignes
(setq num 1) ;Début à 1
(setq inc 1) ; Incrémentation de 1
(princ  (itoa num) )
(setq pins (polar i5 (/ pi 2) (* -1 hcase))) ;Decalage d'une hauteur pour arrivé en 1ère ligne et non dans l'entête
(command "texte" "j" "mc" pins 6 0 (itoa num));Insertion numéro1
(command "cercle" pins 10 );Dessin du cercle
(while (< num nbl) ; Début de la boucle, on se limite au nombre d'aciers
(setq num (+ num inc)) 
(princ  (itoa num) )
(setq pins (polar pins (/ pi 2) (* -1 hcase)))
(command "texte" "j" "mc" pins 6 0 (itoa num))
(command "cercle" pins 10 )
)
        
 )
 )



 

;ACIERS



(defun c:aciers()
 
 (vl-load-com)

 (command "-calque" "ch" "01-NOMENCLATURE"  "")

(setq mvol 7800)
(setq p1 (getpoint "\nPoint haut droit de la ligne de l'acier :"))
(setq i (polar p1 (/ pi -2) (/ hcase 2))

 i1 (polar i pi (* larg1 0.5))
 i2 (polar i pi (+ larg1 (* larg2 0.5)))
 i3 (polar i pi (+ larg1 larg2 (* larg3 0.5)))
 i4 (polar i pi (+ larg1 larg2 larg3 (* larg4 0.5)))
 i5 (polar i pi (+ larg1 larg2 larg3 larg4 (* larg5 0.5)))

 )



   ;Remise à zéro autocad.
   (setvar "cmdecho"0)
   (setvar "osmode" 0)
   (command "scu" "")


 ;recuperer le nom du bloc dynamique
(setq NomBloc (car (entsel "\nSélectionnez le bloc dynamique")))
(setq Bloc (vlax-ename->vla-object NomBloc))
(setq NomBDyn (vla-get-effectivename Bloc))
 
;Vérifie quel aciers avec une condition:
(cond
  ;Cadre
  ((= NomBDyn "cadre")
   (setq diametre (getint "\nQuel est le diamètre des HA des cadres?"))
      (cond
 ( (= diametre 6)
    (setq poids_ml (* pi (* 0.003 0.003) 1 mvol))
    (setq delta 14.3))
 ( (= diametre 8)
    (setq poids_ml (* pi (* 0.004 0.004) 1 mvol))
    (setq delta 16.2))
 ( (= diametre 10)
    (setq poids_ml (* pi (* 0.005 0.005) 1 mvol))
    (setq delta 20.3))
 ( (= diametre 12)
    (setq poids_ml (* pi (* 0.006 0.006) 1 mvol))
    (setq delta 24.5))
 ( (= diametre 14)
    (setq poids_ml (* pi (* 0.007 0.007) 1 mvol))
    (setq delta 29.1))
 ( (= diametre 16)
    (setq poids_ml (* pi (* 0.008 0.008) 1 mvol))
    (setq delta 32.4))
 ( (= diametre 20)
    (setq poids_ml (* pi (* 0.010 0.010) 1 mvol))
    (setq delta 44.8))        
 )

   (setq espacement (getint "\nQuel est l'espacement des cadres en cm?"))
   (setq nbrecadre_ml (rtos (/ 100 espacement) 2 0) )

   		(foreach prop_lst (vlax-invoke Bloc 'getDynamicBlockProperties)
 

	(if (= (vla-get-propertyname prop_lst) "Distance")

 		 (setq A (vlax-variant-value(vla-get-value prop_lst)))
 			)

		(if (= (vla-get-propertyname prop_lst) "Distance1")

 		 (setq B (vlax-variant-value(vla-get-value prop_lst)))
  
  			 ))
  				
 					
(setq longDev (+ (* 2 (+ A B)) delta ))) 			 
   
  ;U
  ((= NomBDyn "U")
   (setq diametre (getint "\nQuel est le diamètre des HA du U?"))
(cond
 ( (= diametre 6)
    (setq poids_ml (* pi (* 0.003 0.003) 1 mvol))
    (setq delta 2.8))
 ( (= diametre 8)
    (setq poids_ml (* pi (* 0.004 0.004) 1 mvol))
    (setq delta 3.7))
 ( (= diametre 10)
    (setq poids_ml (* pi (* 0.005 0.005) 1 mvol))
    (setq delta 4.6))
 ( (= diametre 12)
    (setq poids_ml (* pi (* 0.006 0.006) 1 mvol))
    (setq delta 5.6))
 ( (= diametre 14)
    (setq poids_ml (* pi (* 0.007 0.007) 1 mvol))
    (setq delta 6.8))
 ( (= diametre 16)
    (setq poids_ml (* pi (* 0.008 0.008) 1 mvol))
    (setq delta 7.3))
 ( (= diametre 20)
    (setq poids_ml (* pi (* 0.010 0.010) 1 mvol))
    (setq delta 11.7))        
 )
   (setq espacement (getint "\nQuel est l'espacement des U en cm?"))
   (setq nbrecadre_ml (rtos (/ 100 espacement) 2 0) )
     


   		(foreach prop_lst (vlax-invoke Bloc 'getDynamicBlockProperties)
 

	(if (= (vla-get-propertyname prop_lst) "Distance")

 		 (setq A (vlax-variant-value(vla-get-value prop_lst)))
 			)

		(if (= (vla-get-propertyname prop_lst) "Distance1")

 		 (setq B (vlax-variant-value(vla-get-value prop_lst))))
	  )

(setq longDev   (strcat (itoa ( fix (+  A (* B 2) delta )))))
(setq poids  (strcat (itoa (fix (* (/ (+  A (* B 2) delta ) 100) poids_ml )))))
   
	  

(command "texte" "j" "mc" i3 5 0 longDev
 "inserer" NomBDyn i2 1 1 0
 "texte" "j" "mc" (polar i2 (/ pi -2) (* -0.8 A ))  5 0 (itoa ( fix B ))
 "texte" "j" "mc" (polar i2 pi (* B 0.4)) 5 0 (itoa ( fix A ))
 "texte" "j" "mc" i1 5 0 poids

      )
   )
   )
 )
 

   
;REPERE



(defun c:repere()


(setvar "osmode" 1)
(setq point1 (getpoint "\npoint d'insertion du repère:"))
(setvar "osmode"0)
(setq point2 (getpoint "\nsecond point de la ligne de repère:"))
(setq ang1-2 (angle point1 point2))
(setq centrecercle1 (polar point2 ang1-2 7))
(setq distp2centre1 (distance point2 centrecercle1))
(setq num (getint "\nQuel est le numéro du repère"))
(command "ligne" point1 point2 "")
(command "cercle" centrecercle1 distp2centre1 "")
(command "texte" "j" "MC"  centrecercle1  7.56 0 (itoa ( fix num )) "")
 )

Lien vers le commentaire
Partager sur d’autres sites

Bonjour à tous,

 

Oubliez le message précédent, de nombreuses modifs ont eu lieu depuis...

 

Plusieurs point:

 

Je n'arrive pas à mettre les décimal à mon résultat...?

 

 

Code:

A savoir Espacement est une entré en entier "getint"...

((= NomBDyn "cadre")
   (setq diametre (getint "\nQuel est le diamètre des HA des cadres?"))
      (cond
 ( (= diametre 6)
    (setq poids_ml (* pi (* 0.003 0.003) 1 mvol))
    (setq delta 14.3))
 ( (= diametre 8)
    (setq poids_ml (* pi (* 0.004 0.004) 1 mvol))
    (setq delta 16.2))
 ( (= diametre 10)
    (setq poids_ml (* pi (* 0.005 0.005) 1 mvol))
    (setq delta 20.3))
 ( (= diametre 12)
    (setq poids_ml (* pi (* 0.006 0.006) 1 mvol))
    (setq delta 24.5))
 ( (= diametre 14)
    (setq poids_ml (* pi (* 0.007 0.007) 1 mvol))
    (setq delta 29.1))
 ( (= diametre 16)
    (setq poids_ml (* pi (* 0.008 0.008) 1 mvol))
    (setq delta 32.4))
 ( (= diametre 20)
    (setq poids_ml (* pi (* 0.010 0.010) 1 mvol))
    (setq delta 44.8))        
 )

   (setq espacement (getint "\nQuel est l'espacement des cadres en cm?"))
   (setq long_ELEMENT (getint "\nQuel est la longueur de l'élèment structurel?"))
   

   		(foreach prop_lst (vlax-invoke Bloc 'getDynamicBlockProperties)
 

	(if (= (vla-get-propertyname prop_lst) "Distance")

 		 (setq A (vlax-variant-value(vla-get-value prop_lst)))
 			)

		(if (= (vla-get-propertyname prop_lst) "Distance1")

 		 (setq B (vlax-variant-value(vla-get-value prop_lst)))
  
  			 )
	  )
  				
 			(setq typecalcul (strcase (getstring "\nQuel type de calcul de poids?(Ml ou par ELement)")))
   			(setq longDev   (strcat (itoa ( fix (+ (* 2 (+ A B)) delta )))))
		(setq poidsCADRE  (rtos (* (/ (+ (* 2 (+ A B)) delta ) 100) poids_ml ) 2 2)
   			(setq description  (strcat "Cadre HA" (itoa ( fix diametre )) "  e=" (itoa ( fix espacement )) " cm"))
			(cond
                       ((or (= typecalcul "E")(= typecalcul "EL"))

 				(setq poidsCADRE_ELEMENT (strcat (itoa (fix (* (/ long_ELEMENT espacement) poidsCADRE))) " kg"))
			(command "texte" "j" "mc" i1 5 0 poidsCADRE_ELEMENT)
		 )

		 ((or (= typecalcul "M")(= typecalcul "ML"))

		  
 				(setq poidsCADRE_ml  (* (/ 100 espacement) poidsCADRE))
 				(setq txtpoidsCADRE_ml (strcat (poidsCADRE_ml) " kg/ml"))
			(command "texte" "j" "mc" i1 5 0 txtpoidsCADRE_ml)
			)
		 
		)
	  

(command "texte" "j" "mc" i3 5 0 longDev
 "inserer" "cadre" i2 0.5 0.5 0
 "texte" "j" "mc" (polar i2 (/ pi 2) (* hcase 0.25))  5 0 (itoa ( fix B ))
 "texte" "j" "mc" (polar i2 pi (* larg2 0.25)) 5 0 (itoa ( fix A ))
 "texte" "j" "mc" i4 5 0 description

      )
   )
  )

 

Je souhaite que dans le texte insérer, j'ai par exemple 19.56 et non 19...

Je mélange tout je crois en entier/réel et entre les fonctions rtos/fix...

 

Besoin d'une grande aide...

 

Merci d'avance,

 

Arnaud

Lien vers le commentaire
Partager sur d’autres sites

Bonjour à tous.

 

Problème résolu au fait... Ne pas tenir compte du dernier message.

 

Nouveau problème si il y a encore du monde qui suit la conversation...

 

Pour résumé où j'en suis:

 

-J'ai crée ma fonction pour réaliser la grille de nomenclature.

 

-J'ai crée mon programme pour 3 aciers pour l'instant (U, cadre , et filants) sachant que le filants prend en charge différents types de façonnage.

 

-Tout se rentre bien organisé dans la nomenclature mais les valeurs sont insérer sous forme de textes... donc quand les informations sont écrites, il y a plus moyen de modifier. (Par exemple si par la suite une modif à lieu sur la dimension d'un bloc rien ne va suivre où même si on change le diamètre...)

 

Le problème est comment lier le tout?

 

Arnaud

Lien vers le commentaire
Partager sur d’autres sites

  • 4 semaines après...

Bonjour à tous,

 

Après une pause de 2 semaines je me suis remis sur mon projet aujourd'hui. Je suis tombé sur le problème suivant:

 

J'ai plusieurs commandes (NOMENCLATURE/ACIERS/TOTAL/SOMME), dans ces commandes j'ai souvent besoin des dimensions des colonnes et des lignes pour implanter mes textes ou autres entités (Définit dans la commande NOMENCLATURE). Pour cela je n'arrive pas à faire appel aux variable largeur des colonnes du coup je contourne le problème mais cela me complique la chose et si je veux changer la dimension d'une colonne alors rien ne va plus...

 

Ma question : Comment utiliser dans une commande des variables présente dans une autre commande?

 

Merci d'avance,

 

Arnaud

Lien vers le commentaire
Partager sur d’autres sites

  • 5 mois après...

Bonjour,

 

Après 1 an sur le programme, à mon rythme, j'ai fini le programme. Je peux nomenclaturer automatiquement 95% des aciers avec mes commandes. La nomenclature est composé de 6 colonne (ELEMENT/N°/DESCRIPTION/LD/SCHÉMA/POIDS PAR ACIERS/ POIDS TOTAL PAR ÉLÉMENT).

Etant en CDI à la suite de mon contrat d'apprentissage, je me réserve quelques heures par semaines pour améliorer et développer ce petit programme.

 

Merci à tous pour vôtre aide,

 

Arnaud

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é