djeff69 Posté(e) le 29 avril 2008 Posté(e) le 29 avril 2008 bonjour;j'essaie de faire un programme en lisp sous autocad, qui soit capable de repérer une pièce sur un plan et d'en renvoyer les varactéristiques dans une nomenclature.je parviens à le faire fonctionner pour 1 pièce, mais pas pour plusieurs.Comment faire?Voici mon code(defun c:nouveaurepere() (setq accro (getvar "osmode")) ( setvar "osmode" 0) (initget "Oui Non") (setq rep (getstring " Voulez vous insérer une nouvelle nomenclature ? [Oui/Non] :" "o")) (if(= rep "o") ( progn (setq ptinsertion (getpoint "\Point d'insertion de la nomenclature")) (command "-inserer" "ENTETE_NOMENCLATURE" ptinsertion 1 1 0) ; lance la bulle de reperage (command "-calque" "ch" "ligne de repérage" "") (setvar "osmode" 1) (setq point1 (getpoint"\point d'insertion du repère:")) (setvar "osmode"0) (setq point2 (getpoint "\second point de la ligne de repère:")) (setq ang1-2 (angle point1 point2)) (setq centrecercle1 (polar point2 ang1-2 60)) (setq distp2centre1 (distance point2 centrecercle1)) (command "ligne" point1 point2 "") (command "cercle" centrecercle1 distp2centre1 "") ; a mettre dans les nomenclatures (setq kelrepère (getstring "\ Quel repère voulez vous attribuer à l'élément ? :")); (setq nombre (getstring"\ Nombre ? : ")); demande le nombre de brides (setq fonction (getstring "\ Fonction de l'élément ?:")) (setq DN (getstring "\ DN ?:")) (setq PN (getstring "\ PN ?:")) (setq diamext (getreal "\ Diamètre Extérieur tube ?:")) (setq eptube (getreal "\ Epaisseur du tube ?:")) (setq matière (getstring "\ Matière du tube ?:")) (setq typebride (getstring "\Type de bride ?:")) (setq dimensions (getstring "\ Dimensions de la bride ?:")) (setq matbride (getstring "\ Matière de la bride ?:")) (setq raccordement (getstring "\Type de raccordement ?:")) (setq nbjoint (getreal "\ Nombre de joints ?:")) (setq typejoint (getstring "\Type de joints ?:")) (setq norme (getstring "\ Norme ?:")) (setq epjoint (getreal "\ Epaisseur du joint ?:")) (setq matjoint (getstring "\ Matière du joint ?:")) (setq nbbls (getreal "\ Nombre de boulons ?:")) (setq desbls (getstring "\ Désignation des boulons ?:")) (setq obs (getstring "\ Observations ?:")) ; définition des cases point par point (setq pt1 (polar ptinsertion 0 70)); début case fonction (setq pt2 (polar pt1 (-(/ pi 2)) 6 )) (setq pt3 (polar ptinsertion (-(/ pi 2)) 6 )); fin case fonction (setq point1 (polar ptinsertion 0 35)); définit le centre de la case fonction (setq centre (polar point1 (-(/ pi 2))3)); (setq pt4 (polar pt1 0 7)); début case nombre (setq pt5 (polar pt4 (-(/ pi 2))6)); fin case nombre (setq point2 (polar pt1 0 3.5)); définit le centre de la case nombre (setq centre1(polar point2 (-(/ pi 2))3)); (setq pt6 (polar pt5 0 15)); début case repère (setq pt7 (polar pt6 (+(/ pi 2))6)); fin case repere (setq point3 (polar pt5 0 7.5)); définit le centre de la case repère (setq centre2 (polar point3 (/ pi 2)3)); (setq pt8 (polar pt6 0 10)) ; début case DN (setq pt9 (polar pt8 (+(/ pi 2))6)); fin case DN (setq point4 (polar pt6 0 5)); définit le centre de la case (setq centre3 (polar point4 (+(/ pi 2))3)); (setq pt10 (polar pt8 0 10)); début case PN (setq pt11 (polar pt10 (+(/ pi 2))6)); fin case PN (setq point5 (polar pt8 0 5)); définit le centre de la case PN (setq centre4 (polar point5 (+(/ pi 2))3)); (setq pt12 (polar pt10 0 11)); debut case diam ext (setq pt13 (polar pt12 (+(/ pi 2))6)); fin case diam ext (setq point6(polar pt10 0 5.5)); définit le centre de la case diam ext (setq centre5 (polar point6 (+(/ pi 2))3)); (setq pt14 (polar pt12 0 9)); début case épaisseur (setq pt15 (polar pt14 (+(/ pi 2))6)); fin case épaisseur (setq point7 (polar pt12 0 4.5)); définit le centre de la case épaisseur (setq centre6 (polar point7 (+(/ pi 2))3)); (setq pt16 (polar pt14 0 24)); début case matière (setq pt17 (polar pt16 (+(/ pi 2))6)); fin case matière (setq point8 (polar pt14 0 12)); définit le centre de la case matière (setq centre7 (polar point8 (+(/ pi 2))3)); (setq pt18 (polar pt16 0 30.01)); début case type (setq pt19 (polar pt18 (+(/ pi 2))6)); fin case type (setq point9 (polar pt16 0 15.005)); définit le centre de la case type (setq centre8 (polar point9 (+(/ pi 2))3)); (setq pt20 (polar pt18 0 25)); début de la case dim (setq pt21 (polar pt20 (+(/ pi 2))6)); fin de la case dim (setq point10 (polar pt18 0 12.5)); définit le centre de la case dim (setq centre9 (polar point10 (+(/ pi 2))3)); (setq pt22 (polar pt20 0 17)); début de la case matière (setq pt23 (polar pt22 (+(/ pi 2))6)); fin de la case matière (setq point11 (polar pt20 0 8.5)); (setq centre10 (polar point11(+(/ pi 2))3)); (setq pt24 (polar pt22 0 39)); début de la case raccordement (setq pt25 (polar pt24 (+(/ pi 2))6)); fin de la case raccordement (setq point12 (polar pt22 0 19.5)); (setq centre11 (polar point12 (+(/ pi 2))3)); (setq pt26 (polar pt24 0 10)); début de la case nombre joint (setq pt27 (polar pt26 (+(/ pi 2))6)); début de la case nombre joint (setq point13 (polar pt24 0 5)); (setq centre12 (polar point13 (+(/ pi 2))3)); (setq pt28 (polar pt26 0 8)); début de la case type joint (setq pt29 (polar pt28 (+(/ pi 2))6)); début de la case type joint (setq point14 (polar pt26 0 4)); (setq centre13 (polar point14 (+(/ pi 2))3)); (setq pt30 (polar pt28 0 8)); début de la case NF (setq pt31 (polar pt30 (+(/ pi 2))6)); fin de la case NF (setq point15 (polar pt28 0 4)); (setq centre14 (polar point15 (+(/ pi 2))3)); (setq pt32 (polar pt30 0 8)); début de la case épaisseur (setq pt33 (polar pt32 (+(/ pi 2))6)); fin de la case épaisseur (setq point16 (polar pt30 0 4)) ; (setq centre15 (polar point16 (+(/ pi 2))3)); (setq pt34 (polar pt32 0 13)); début de la case matière (setq pt35 (polar pt34 (+(/ pi 2))6)); fin de la case matière (setq point17 (polar pt32 0 6.5)); (setq centre16 (polar point17 (+(/ pi 2))3)); (setq pt36 (polar pt34 0 10)); début de la case nombre de bls (setq pt37 (polar pt36 (+(/ pi 2))6)); début de la case nombre de bls (setq point18 (polar pt34 0 5)); (setq centre17 (polar point18 (+(/ pi 2))3)); (setq pt38 (polar pt36 0 22)); début de la case désignation des bls (setq pt39 (polar pt38 (+(/ pi 2))6)); fin de la case désignation des boulons (setq point19 (polar pt36 0 11)); (setq centre18 (polar point19 (+(/ pi 2))3)); (setq pt40 (polar pt38 0 62)); début de la case observations (setq pt41 (polar pt40 (+(/ pi 2))6)); fin de la case observations (setq point20 (polar pt38 0 31)); (setq centre19 (polar point20 (+(/ pi 2))3)); ;dessin des case (command "-calque" "ch" "ligne nomenclature" "") (command "polylign" ptinsertion pt1 pt2 pt3 ptinsertion ""); dessin case fonction (command "polylign" pt1 pt4 pt5 pt2 pt1 ""); dessin de la case nombre (command "polylign" pt5 pt6 pt7 pt4 pt5 ""); dessin de la case repère (command "polylign" pt6 pt8 pt9 pt7 pt6 ""); dessin de la case DN (command "polylign" pt8 pt10 pt11 pt9 pt8 ""); dessin de la case PN (command "polylign" pt10 pt12 pt13 pt11 pt10 ""); dessin de la case diam ext (command "polylign" pt12 pt14 pt15 pt13 pt12 ""); dessin de la case epaisseur (command "polylign" pt14 pt16 pt17 pt15 pt14 ""); dessin de la case matière (command "polylign" pt16 pt18 pt19 pt17 pt16 ""); dessin de la case type (command "polylign" pt18 pt20 pt21 pt19 pt18 ""); dessin de la case dimension (command "polylign" pt20 pt22 pt23 pt21 pt20 ""); dessin de la case matière (command "polylign" pt22 pt24 pt25 pt23 pt22 ""); dessin de la case raccordement (command "polylign" pt24 pt26 pt27 pt25 pt24 ""); dessin de la case nbjoint (command "polylign" pt26 pt28 pt29 pt27 pt26 ""); dessin de la case type joint (command "polylign" pt28 pt30 pt31 pt29 pt28 ""); dessin de la case NF (command "polylign" pt30 pt32 pt33 pt31 pt29 ""); dessin de la case épaisseur (command "polylign" pt32 pt34 pt35 pt33 pt32 ""); dessin de la case matière (command "polylign" pt34 pt36 pt37 pt35 pt34 ""); dessin de la case nbr de boulons (command "polylign" pt36 pt38 pt39 pt37 pt36 ""); dessin de la case désignation des boulons (command "polylign" pt38 pt40 pt41 pt39 pt38 ""); dessin de la case observation ; remplissage des textes dans les cases (command "-calque" "ch" "texte nomenclature" "") (command "texte" "m" centrecercle1 63 0 kelrepère); renvoie le texte repère dans la bulle (command "texte" "m" centre 2.5 0 fonction); renvoie le texte dans la case fonction (command "texte" "m" centre1 2.5 0 nombre); renvoie le texte nombre de bride (command "texte" "m" centre2 2.5 0 kelrepère); renvoie le texte repère dans la case (command "texte" "m" centre3 2.5 0 DN); renvoie le texte DN dans la case (command "texte" "m" centre4 2.5 0 PN); renvoie le texte PN dans la case (command "texte" "m" centre5 2.5 0 diamext); renvoie le texte diam ext dans la case (command "texte" "m" centre6 2.5 0 eptube); renvoie le texte épaisseur dans la case (command "texte" "m" centre7 2.5 0 matière); renvoie le texte "épaisseur" dans la case (command "texte" "m" centre8 2.5 0 typebride); renvoie le texte type bride dans la case (command "texte" "m" centre9 2.5 0 dimensions); renvoie le texte dimensions dans la case (command "texte" "m" centre10 2.5 0 matbride); renvoie le texte matière dans la case (command "texte" "m" centre11 2.5 0 raccordement); renvoie le texte raccordement dans la case (command "texte" "m" centre12 2.5 0 nbjoint); renvoie le texte nb joints dans la case (command "texte" "m" centre13 2.5 0 typejoint); renvoie le texte type joint dans la case (command "texte" "m" centre14 2.5 0 norme); renvoie le texte norme (command "texte" "m" centre15 2.5 0 epjoint); renvoie le texte épaisseur joint (command "texte" "m" centre16 2.5 0 matjoint); renvoie le texte matière du joint (command "texte" "m" centre17 2.5 0 nbbls); renvoie le texte nombre de bls (command "texte" "m" centre18 2.5 0 desbls); renvoie le texte désignation des boulons (command "texte" "m" centre19 2.5 0 obs); renvoie le texte observations ) ( progn ; lance la bulle de reperage (command "-calque" "ch" "ligne de repérage" "") (setvar "osmode" 1) (setq point1 (getpoint"\point d'insertion du repère:")) (setvar "osmode"0) (setq point2 (getpoint "\second point de la ligne de repère:")) (setq ang1-2 (angle point1 point2)) (setq centrecercle1 (polar point2 ang1-2 60)) (setq distp2centre1 (distance point2 centrecercle1)) (command "ligne" point1 point2 "") (command "cercle" centrecercle1 distp2centre1 "") ; a mettre dans les nomenclatures (setq kelrepère (getstring "\ Quel repère voulez vous attribuer à l'élément ? :")); (setq nombre (getreal"\ Nombre ? : ")); demande le nombre de brides (setq fonction (getstring "\ Fonction de l'élément ?:")) (setq DN (getstring "\ DN ?:")) (setq PN (getstring "\ PN ?:")) (setq diamext (getreal "\ Diamètre Extérieur tube ?:")) (setq eptube (getreal "\ Epaisseur du tube ?:")) (setq matière (getstring "\ Matière du tube ?:")) (setq typebride (getstring "\Type de bride ?:")) (setq dimensions (getstring "\ Dimensions de la bride ?:")) (setq matbride (getstring "\ Matière de la bride ?:")) (setq raccordement (getstring "\Type de raccordement ?:")) (setq nbjoint (getreal "\ Nombre de joints ?:")) (setq typejoint (getstring "\Type de joints ?:")) (setq norme (getstring "\ Norme ?:")) (setq epjoint (getreal "\ Epaisseur du joint ?:")) (setq matjoint (getstring "\ Matière du joint ?:")) (setq nbbls (getreal "\ Nombre de boulons ?:")) (setq desbls (getstring "\ Désignation des boulons ?:")) (setq obs (getstring "\ Observations ?:")) ; définition des cases point par point (setq pt1 (polar ptinsertion 0 70)); début case fonction (setq pt2 (polar pt1 (-(/ pi 2)) 6 )) (setq pt3 (polar ptinsertion (-(/ pi 2)) 6 )); fin case fonction (setq point1 (polar ptinsertion 0 35)); définit le centre de la case fonction (setq centre (polar point1 (-(/ pi 2))3)); (setq pt4 (polar pt1 0 7)); début case nombre (setq pt5 (polar pt4 (-(/ pi 2))6)); fin case nombre (setq point2 (polar pt1 0 3.5)); définit le centre de la case nombre (setq centre1(polar point2 (-(/ pi 2))3)); (setq pt6 (polar pt5 0 15)); début case repère (setq pt7 (polar pt6 (+(/ pi 2))6)); fin case repere (setq point3 (polar pt5 0 7.5)); définit le centre de la case repère (setq centre2 (polar point3 (/ pi 2)3)); (setq pt8 (polar pt6 0 10)) ; début case DN (setq pt9 (polar pt8 (+(/ pi 2))6)); fin case DN (setq point4 (polar pt6 0 5)); définit le centre de la case (setq centre3 (polar point4 (+(/ pi 2))3)); (setq pt10 (polar pt8 0 10)); début case PN (setq pt11 (polar pt10 (+(/ pi 2))6)); fin case PN (setq point5 (polar pt8 0 5)); définit le centre de la case PN (setq centre4 (polar point5 (+(/ pi 2))3)); (setq pt12 (polar pt10 0 11)); debut case diam ext (setq pt13 (polar pt12 (+(/ pi 2))6)); fin case diam ext (setq point6(polar pt10 0 5.5)); définit le centre de la case diam ext (setq centre5 (polar point6 (+(/ pi 2))3)); (setq pt14 (polar pt12 0 9)); début case épaisseur (setq pt15 (polar pt14 (+(/ pi 2))6)); fin case épaisseur (setq point7 (polar pt12 0 4.5)); définit le centre de la case épaisseur (setq centre6 (polar point7 (+(/ pi 2))3)); (setq pt16 (polar pt14 0 24)); début case matière (setq pt17 (polar pt16 (+(/ pi 2))6)); fin case matière (setq point8 (polar pt14 0 12)); définit le centre de la case matière (setq centre7 (polar point8 (+(/ pi 2))3)); (setq pt18 (polar pt16 0 30.01)); début case type (setq pt19 (polar pt18 (+(/ pi 2))6)); fin case type (setq point9 (polar pt16 0 15.005)); définit le centre de la case type (setq centre8 (polar point9 (+(/ pi 2))3)); (setq pt20 (polar pt18 0 25)); début de la case dim (setq pt21 (polar pt20 (+(/ pi 2))6)); fin de la case dim (setq point10 (polar pt18 0 12.5)); définit le centre de la case dim (setq centre9 (polar point10 (+(/ pi 2))3)); (setq pt22 (polar pt20 0 17)); début de la case matière (setq pt23 (polar pt22 (+(/ pi 2))6)); fin de la case matière (setq point11 (polar pt20 0 8.5)); (setq centre10 (polar point11(+(/ pi 2))3)); (setq pt24 (polar pt22 0 39)); début de la case raccordement (setq pt25 (polar pt24 (+(/ pi 2))6)); fin de la case raccordement (setq point12 (polar pt22 0 19.5)); (setq centre11 (polar point12 (+(/ pi 2))3)); (setq pt26 (polar pt24 0 10)); début de la case nombre joint (setq pt27 (polar pt26 (+(/ pi 2))6)); début de la case nombre joint (setq point13 (polar pt24 0 5)); (setq centre12 (polar point13 (+(/ pi 2))3)); (setq pt28 (polar pt26 0 8)); début de la case type joint (setq pt29 (polar pt28 (+(/ pi 2))6)); début de la case type joint (setq point14 (polar pt26 0 4)); (setq centre13 (polar point14 (+(/ pi 2))3)); (setq pt30 (polar pt28 0 8)); début de la case NF (setq pt31 (polar pt30 (+(/ pi 2))6)); fin de la case NF (setq point15 (polar pt28 0 4)); (setq centre14 (polar point15 (+(/ pi 2))3)); (setq pt32 (polar pt30 0 8)); début de la case épaisseur (setq pt33 (polar pt32 (+(/ pi 2))6)); fin de la case épaisseur (setq point16 (polar pt30 0 4)) ; (setq centre15 (polar point16 (+(/ pi 2))3)); (setq pt34 (polar pt32 0 13)); début de la case matière (setq pt35 (polar pt34 (+(/ pi 2))6)); fin de la case matière (setq point17 (polar pt32 0 6.5)); (setq centre16 (polar point17 (+(/ pi 2))3)); (setq pt36 (polar pt34 0 10)); début de la case nombre de bls (setq pt37 (polar pt36 (+(/ pi 2))6)); début de la case nombre de bls (setq point18 (polar pt34 0 5)); (setq centre17 (polar point18 (+(/ pi 2))3)); (setq pt38 (polar pt36 0 22)); début de la case désignation des bls (setq pt39 (polar pt38 (+(/ pi 2))6)); fin de la case désignation des boulons (setq point19 (polar pt36 0 11)); (setq centre18 (polar point19 (+(/ pi 2))3)); (setq pt40 (polar pt38 0 62)); début de la case observations (setq pt41 (polar pt40 (+(/ pi 2))6)); fin de la case observations (setq point20 (polar pt38 0 31)); (setq centre19 (polar point20 (+(/ pi 2))3)); ;dessin des case (command "-calque" "ch" "ligne nomenclature" "") (command "polylign" ptinsertion pt1 pt2 pt3 ptinsertion ""); dessin case fonction (command "polylign" pt1 pt4 pt5 pt2 pt1 ""); dessin de la case nombre (command "polylign" pt5 pt6 pt7 pt4 pt5 ""); dessin de la case repère (command "polylign" pt6 pt8 pt9 pt7 pt6 ""); dessin de la case DN (command "polylign" pt8 pt10 pt11 pt9 pt8 ""); dessin de la case PN (command "polylign" pt10 pt12 pt13 pt11 pt10 ""); dessin de la case diam ext (command "polylign" pt12 pt14 pt15 pt13 pt12 ""); dessin de la case epaisseur (command "polylign" pt14 pt16 pt17 pt15 pt14 ""); dessin de la case matière (command "polylign" pt16 pt18 pt19 pt17 pt16 ""); dessin de la case type (command "polylign" pt18 pt20 pt21 pt19 pt18 ""); dessin de la case dimension (command "polylign" pt20 pt22 pt23 pt21 pt20 ""); dessin de la case matière (command "polylign" pt22 pt24 pt25 pt23 pt22 ""); dessin de la case raccordement (command "polylign" pt24 pt26 pt27 pt25 pt24 ""); dessin de la case nbjoint (command "polylign" pt26 pt28 pt29 pt27 pt26 ""); dessin de la case type joint (command "polylign" pt28 pt30 pt31 pt29 pt28 ""); dessin de la case NF (command "polylign" pt30 pt32 pt33 pt31 pt29 ""); dessin de la case épaisseur (command "polylign" pt32 pt34 pt35 pt33 pt32 ""); dessin de la case matière (command "polylign" pt34 pt36 pt37 pt35 pt34 ""); dessin de la case nbr de boulons (command "polylign" pt36 pt38 pt39 pt37 pt36 ""); dessin de la case désignation des boulons (command "polylign" pt38 pt40 pt41 pt39 pt38 ""); dessin de la case observation ; remplissage des textes dans les cases (command "-calque" "ch" "texte nomenclature" "") (command "texte" "m" centrecercle1 63 0 kelrepère); renvoie le texte repère dans la bulle (command "texte" "m" centre 2.5 0 fonction); renvoie le texte dans la case fonction (command "texte" "m" centre1 2.5 0 nombre); renvoie le texte nombre de bride (command "texte" "m" centre2 2.5 0 kelrepère); renvoie le texte repère dans la case (command "texte" "m" centre3 2.5 0 DN); renvoie le texte DN dans la case (command "texte" "m" centre4 2.5 0 PN); renvoie le texte PN dans la case (command "texte" "m" centre5 2.5 0 diamext); renvoie le texte diam ext dans la case (command "texte" "m" centre6 2.5 0 eptube); renvoie le texte épaisseur dans la case (command "texte" "m" centre7 2.5 0 matière); renvoie le texte "épaisseur" dans la case (command "texte" "m" centre8 2.5 0 typebride); renvoie le texte type bride dans la case (command "texte" "m" centre9 2.5 0 dimensions); renvoie le texte dimensions dans la case (command "texte" "m" centre10 2.5 0 matbride); renvoie le texte matière dans la case (command "texte" "m" centre11 2.5 0 raccordement); renvoie le texte raccordement dans la case (command "texte" "m" centre12 2.5 0 nbjoint); renvoie le texte nb joints dans la case (command "texte" "m" centre13 2.5 0 typejoint); renvoie le texte type joint dans la case (command "texte" "m" centre14 2.5 0 norme); renvoie le texte norme (command "texte" "m" centre15 2.5 0 epjoint); renvoie le texte épaisseur joint (command "texte" "m" centre16 2.5 0 matjoint); renvoie le texte matière du joint (command "texte" "m" centre17 2.5 0 nbbls); renvoie le texte nombre de bls (command "texte" "m" centre18 2.5 0 desbls); renvoie le texte désignation des boulons (command "texte" "m" centre19 2.5 0 obs); renvoie le texte observations )))
Patrick_35 Posté(e) le 29 avril 2008 Posté(e) le 29 avril 2008 Salut Dans une boucle Un exemple sur 10 éléments(setq n 0) (while (< n 10) (terpri)(princ n) (setq n (1+ n)) )ou encore(repeat 10 (terpri)(princ n) (setq n (1+ n)) ) @+ [Edité le 29/4/2008 par Patrick_35] Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
djeff69 Posté(e) le 1 juin 2008 Auteur Posté(e) le 1 juin 2008 bonjour; dans mes nomenclature il y a une colonne qui représente le poids des pièces. j'ai placé ces textes dans un calque, et je suis à la recherche d'une fonction capable d'extraire ces poids et d'en faire la somme.comment faire?
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant