Aller au contenu

ArnaudCru

Membres
  • Compteur de contenus

    24
  • Inscription

  • Dernière visite

Tout ce qui a été posté par ArnaudCru

  1. Effectivement cela marche, le problème maintenant c'est que je ne peux pas éditer le bloc dans le dessin si je fais cela... J'ai un message d'alerte qui me dit pour résumer que cela supprime le lien vers la définition d'origine car la référence de bloc contient des propriétés de blocs personnalisés..
  2. Oui on a déjà pensé à mettre des visibilités mais au final je dois quand même faire deux fois la modification des voiles si j'ai un changement. N'est il pas possible d'associer une hachure à un bloc qui se trouve dans un bloc... :wacko: Je m'explique: -Faire un bloc contenant que les traits des voiles -Faire un bloc qui appel le bloc précédent mais où je créer des hachures associative dessus...? -Je fait pareil avec un 3ème bloc où j'appel le 1er bloc et créer une hachure avec un motif différent Je sais pas si je suis clair...
  3. Que veux tu dire par "visualisation des hachures"...? Arnaud
  4. Je veux garder le principe du bloc (Si je déplace un trait il doit se déplacer dans les deux blocs) Je ne sais pas si cela est possible, peut être avec un LISP... Dans mon cas l'objectif est d'avoir un seul bloc pour la représentation des voiles du niveau courant et de l'impact. (Le seul changement est le motif de la hachure). Si j'ai une modif archi ou autre tout serai lié. Arnaud
  5. Bonjour, J'ai deux fois le même bloc contenant des traits et une hachure sur mon dessin et je souhaite pourvoir changer le motif de la hachure d'un seul bloc. Cela est-il possible? Bien entendu je voudrai conserver le principe du bloc... Arnaud
  6. Merci beaucoup, j'ai trouvé mon bonheur avec les liens. J'ai placé ceci en début de commande : (defun *error* (msg) (princ (strcat "\nErreur: " msg)) ; renvoie un msg d'erreur (setvar "OSMODE" osmode) ; Restore les variables AutoCAD (princ msg) ; Quitte silencieusement ) Et avec ma sauvegarde des accrochages en début de programme et leurs restauration en fin de programme, tout marche. Merci. Nouveau point, j'ai une commande permettant de récupérer la valeur d'un texte ( Exemple : 15.50 Kg je récupére le 15.50 et le transforme en réel). J'en sélectionne plusieurs puis le programme fait l'addition et à la fin insère la somme. Je souhaite améliorer la sélection des textes car actuellement l'utilisateur doit cliquer le texte puis renseigner "oui" pour pourvoir en sélectionner un autre,etc... et quand on à tous sélectionner répondre "non" pour quitter la boucle. Je voudrai que l'utilisateur clique toutes les valeurs qu'ils souhaitent additionner et en validant par entrée finir la commande pour insérer la somme. Le code: (defun c:somme1() (vl-load-com) (defun *error* (msg) (princ (strcat "\nErreur: " msg)) ; renvoie un msg d'erreur (setvar "OSMODE" osmode) ; Restore les variables AutoCAD (princ msg) ; Quitte silencieusement ) (setq osmode (getvar "OSMODE")) (setvar "OSMODE" 0) ;Style et forme (command "-calque" "ch" "02-NOMENCLATURE" "") (command "-couleur" "93" "") (command "textstyle" "ITALIC" "") ;Appel de la fonction dimensions (Dimensions) ;Définition des variables à 0 (setq Total 0) (setq nombre_tour 0) (setq Tot 0) ;Début de la boucle (terpri)(setq rep "O") (while (or (= rep "O")(= rep "OUI")) (while ;Sélection du poids d'aciers (null (setq NomEntité (car (entsel "\nSélectionnez le poids d'acier"))))) (setq poids (atof (cdr (assoc 1 (entget NomEntité)))));Converti texte du poids en valeur (setq listeee (entget NomEntité)) ;Récupére la liste des variables du texte (setq X (car(cdr (assoc 11 listeee)))) ;Récupère la valeur d'implantation en X (setq Y (car(cdr(cdr (assoc 11 listeee)))));Récupère la valeur d'implantation en Y (setq Total (+ Total poids));Aditionne les poids selectionné (setq nombre_tour (+ nombre_tour 1 ));Compteur pour le nombre de tour (setq Tot (+ Tot Y)) ;Additionne les valeur d'implantation des poids en Y ;SI oui = on reselectionne un poids si Non=somme du regroupement fini (setq rep (strcase(getstring "\nVoulez continuer (o/n): "))) ) ;On trouve le milieu des lignes pour l'implantation de la somme (setq Ymilieu (/ Tot nombre_tour)) ;On décale pour se mettre dans la colonne somme et obtenir le point d'implantation centré (setq Xnouveau (- X 30)) ;Point d'implantation de la somme (setq p (list Xnouveau Ymilieu)) ;Vérifie si le terme "ml" est présent dans le texte (setq pos (vl-string-search "ml" (cdr (assoc 1 (entget NomEntité))))) (cond ((= pos 7) ;Si il renvoie 7, "ml" se situe à la 7ème position de la chaine de caractère (setq U "kg/ml")); C'est donc une somme en "kg/ml" ((= pos nil); Si il renvoie nil, cela veut dire que "ml" n'est pas présent (setq U "kg"));C'est donc une somme en "kg" ) ;Ecriture de la somme sur 2 lignes (command "texte" "j" "mc" (polar p (/ pi 2) 5) 5 0 (strcat (rtos Total 2 1 ))) (command "texte" "j" "mc" (polar p (/ pi -2) 5) 5 0 U) (princ) (setvar "OSMODE" osmode) ) [code] J'espère que j'ai était comprehensible, grosso modo je souhaite enlever la ligne du code suivante : [code] ;SI oui = on reselectionne un poids si Non=somme du regroupement fini (setq rep (strcase(getstring "\nVoulez continuer (o/n): "))) [code] Merci d'avance
  7. Bonjour, Je me rend compte d'un problème conséquent. Si l'utilisateur annule une commande en cours, l'accrochage aux objets reste en l'état (je le désactive pendant les commandes pour éviter tout accrochage auto) donc il reste désactivé. Comment puis je éviter cela? Je me sers en début de commande de (setq osmode (getvar "OSMODE")) pour sauvegarder les accroches et en fin de commande(setvar "OSMODE" osmode) pour les remmettre. J'aimerai donc que même avec annulation de la commande par ECHAP, le programme se finisse correctement pour retrouver mes accrochages... cordialement, Arnaud
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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 )) "") )
  13. 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 )
  14. 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
  15. Bonjour, Je vois que le post date un peu mais je tente :) J'ai un problème avec la fonction réseau car j'aimerais utiliser cette fonction mais seulement sur les 5 dernières ligne dessinée... Comment procéder? Arnaud
  16. 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
  17. C'est bon j'ai trouvé, merci bien :) (defun c:nombd() (vl-load-com) (setq bloc (car (entsel "\nSélectionnez le bloc dynamique"))) (setq bloc (vlax-ename->vla-object bloc)) (setq bloc (vla-get-effectivename bloc)) )
  18. 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?
  19. 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
  20. 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
  21. Un autre petit coup de pouce ...? J'aimerais récupérer des valeurs de Distance de mes blocs dynamiques dans des champs invisibles pour ensuite calculer la longueur développé à l'aide de ces champs... Arnaud
  22. Je vais essayer de me débrouiller avec ça alors, pas sur que je parvienne à quelque chose... Arnaud
  23. 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
×
×
  • 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é