Aller au contenu

usegomme

Membres
  • Compteur de contenus

    621
  • Inscription

  • Dernière visite

Tout ce qui a été posté par usegomme

  1. Salut Damien Je n'ai pas testé ton lisp, mais j'ai vu 4 divisions qui ne sont pas correctes, tu as oublier des arguments. (/ 0) (/ pi) Tu veux probalement juste indiquer l'angle 0 ou pi, dans ce cas il suffit de supprimer les deux parenthèses et le signe diviser. (setq ptac12 (polar pt08 (/ 0)(/ longipe 2))) devient (setq ptac12 (polar pt08 0 (/ longipe 2))) Bon courage. [Edité le 6/8/2011 par usegomme]
  2. Salut , pour l'instant je n'arrive pas à reproduire le bug avec autocad 2008. J'ai trouvé cette erreur : (defun c:TUB (/ sel typent ent ent1 pt eptub pouce lga px p1 atdia epc tub1 Supprime pouce dans la ligne ci-dessus. Aprés avoir fait fonctionner le lisp, tape sur la ligne de commande !pouce La valeur de la variable doit s'afficher et ne pas être nil. Si cela persiste donne moi le plus de détails possible. Il arrive que les lisp foire lorsque la mémoire qui leur est aloué est pleine aprés de nombreux tests par exemple.
  3. Tant fait pas, il y en a beaucoup qui ont des lacunes , venir sur le forum et s'intêresser au lisp ça aide beaucoup. Il faut consulter l'atelier des nouvelles fonctionnalités dans l'aide d'autocad et remonter à la version 2007 pour voir les subtilités du Ctrl clic. Salut
  4. J'espère que tu n'essaies pas avec la commande "etirer". Si le tuyau est un cylindre sans épaisseur avec les poignées ou avec Ctrl clic, normalement ça marche. Si le tube a une épaisseur, Ctrl Alt clic sur la face , sinon il faut déplacer la face ou copier et additionner les morceaux , ou sectionner , c'est souvent mieux de refaire je pense. Pour les tubes en bloc , il y a "editlen" de (gile). Je pense avoir fait le tour, mais je ne connais pas autocad 11. a+
  5. C'est normal si tu utilises les commandes CDB et TUB car elles génèrent ou insérent des blocs, si tu veux travailler avec des solides étirables, il te faut utiliser les autres commandes: TUY, TSA, CDT, TU.
  6. C'est fait pour le coude , l'attribut "POUCE" est rajouté .
  7. Salut Philou et les autres amateurs de tuyaux j'ai remplacé le code au dessus par la version 5 qui peut faire aussi les tubes droits en bloc. Avec ces blocs "tube" on peut utiliser les lisp de (gile) stretchins et editlen puisque leur longueur = echelle axe X du bloc. Je n'ai pas pu mettre tous les diamètres de tube que tu m'as indiqué car il me manque certains rayon de coude. Bien que j 'y ai passé un temps certain , il y a des choses à améliorer et probablement des bugs à corriger. Je te ( vous) laisse continuer les tests et faire les commentaires, pour l'instant j'ai ma dose, mais je suis content d'être arrivé à quelques choses de pas trop mal. A+
  8. Salut , c'est dans autocad qu'il faut modifier la variable DELOBJ. Mais j'ai remplacé le code au dessus par la version 5 , même si elle n'est pas finalisée, il ne doit plus y avoir ce problème, mais sans doute d'autres . A tester.
  9. Merci, pour l'info , c'est plus simple que je ne l'imaginais. Comme quoi l'ignorance peut conduire à des raisonnements complétement "tordus". A+
  10. Salut Philou Oui , je pense à faire aussi les tubes en blocs , dans quelques temps ça devrait sortir, mais bon pas d'impatience , je n'ai pas trop le temps de lisper et je ne suis loin d'être un as ce qui ne m'arrange pas. Ceci mis à part les pouces que tu indiques sont ceux des diamètres et pas ceux des longueurs de soudure correspondante . Est-ce bien ce que tu veux ?
  11. Salut , j'ai remplacé le code au-dessus par la version 4.1 qui prend en compte dans les attributs des coudes en blocs, l' épaisseur et la matière si elles sont renseignées Si on ne veut l'épaisseur que dans les attributs et pas dans le dessin, il faut la renseigner avec le signe "-" devant. Les options sont accessibles au moment de la sélection des axes.
  12. Salut Oui, ce serait pas mal, mais pour l'encombrement, l'équivalent est la bride tournante type 37.
  13. Il n'y a pas de quoi, c'est le SCU objet qui me sauve la mise, le plus long a été de retrouver comment fonctionne le lsp et les quelques essais pour assurer la greffe. a+
  14. BBRIDE.LSP --> bride en bloc 3D voir code plus bas
  15. Enfin presque, puisque je me suis arrêté au PN40, la suite viendra si je retrouve du courage. BRIDE.LSP --> bride en solide 3D ;;; bonuscad 22-12-2008 ;; norme NF E 29-203 1986 (périmée) ;;;dernières modifications: ;; usegomme 28/02/2010 corrigé choix unité dessin ;;; 27/03/2010 changé affichage DN ;;; 08/11/2010 orientation bride 8 trous et + ;;; 21/01/2011 gestion erreur et delobj + scu ;;; ;;; ************************** Passage à la norme EN 1092-1:2007 jusqu' à PN 40 ***** ;;; 12/02/2011 ajout Tampon plein ;;; 15/02/2011 bride tournante -->2007 ;;; 09 05 2012 compléter tableau PN10 pour br plate dn700 à 1200 ;;; 31 07 2012 accepte "m2p" milieu entre 2 points. (defun erreurbride (msg) (setvar "delobj" delobjet) (if sv_dm (setvar "DYNMODE" sv_dm)) (setvar "CMDECHO" 1) (if (not (zerop (getvar "cmdactive")))(command)) (command "_undo" "_e") (command "_u") (setq *error* m:err m:err nil) (princ "\nPas de valeur dans base données pour ce type de bride") (prin1) ) (defun c:bride ( / PN6 PN10 PN20 PN25 PN40 PN50 PN100 PN150 PN250 PN420 joint sv_mnu typ_brd l_data l_str model_brd unit_key unit_draw l_val pt_ins js_add js_remove e1 j d1 d2 typ_collet axebride PN_brd talon) (setq m:err *error* *error* erreurbride) (command "_undo" "_g") (setq delobjet (getvar "delobj")) (setvar "delobj" 2) (setvar "CMDECHO" 0) (setq js_add (ssadd) js_remove (ssadd)) (initget 1) ;(setq pt_ins (getpoint "\nPoint d'insertion?: ") js_add (ssadd) js_remove (ssadd)) (prompt "\n Specifiez le point d'insertion") (command "_ucs" pause ) ;; ligne ci-dessous pour "m2p" si problème mettre un ; devant pour la désactiver. (while (not (equal (getvar "lastpoint") '(0.0 0.0 0.0) 0.01))(command pause)) (command "") (setq pt_ins '(0. 0. 0.)) ;; orientation bride (prompt "\n Direction de la bride <>") (command "_ucs" "_zaxis" "" pause) (setq sv_dm (getvar "DYNMODE")) (cond ((< sv_dm 0) (setq dm (* sv_dm -1)) (setvar "DYNMODE" dm)) (t (setq sv_dm nil dm nil)) ) ;; definition de l'unité de dessin , en cas d'erreur de choix réinitialisé "users5" via la ligne de commande (if (or (eq (getvar "USERS5") "") (not (eq (substr (getvar "USERS5") 1 2) "qz"))) (progn (initget "ME CM MM") (if (not (setq unit_key (getkword "\nDessin réalisé en [ME/CM/MM] <MM>: "))) (setq unit_key "MM") ) (cond ((eq unit_key "ME") (setq unit_draw 1000) ) ((eq unit_key "CM") (setq unit_draw 10) ) ((eq unit_key "MM") (setq unit_draw 1) ) ) (setvar "USERS5" (strcat "qz" (itoa unit_draw))) (setq unit_draw (/ 1.0 unit_draw)) ) (setq unit_draw (/ 1.0 (atoi (substr (getvar "USERS5") 3)))) ) (initget 1 "PN6 PN10 PN16 PN20 PN25 PN40 PN50 PN100 PN150 PN250 PN420") ;(setq PN_brd (getkword "\nType de bride [PN6/PN10/PN16/PN20/PN25/PN40/PN50/PN100/PN150/PN250/PN420]?: ")) (setq PN_brd (getkword "\nType de bride [PN6/PN10/PN16/PN25/PN40]?: ")) ;; norme 2007 en cours de maj ;(setq matrice '(dn . (D K L nb A1 B1 c1 c2 c3 c4 c5 c6 h1 h2 h3 N1 N2 N3 B6 d1 f1 s ))) ; (0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21) (cond ((= PN_brd "PN6") (setq PN6 '( ;; 0 F c1 20 21 22 H4 H4 25 26 27 28 29 30 ;;;; D K L nb A B1 c1 c2 c3 c4 c5 c6 h1 h2 h3 N1 N2 N3 B6 d1 f1 s11 F35 35 36 h5 F36 F37 s35 s36 s37 (10 . (75.0 50.0 11.0 4 17.20 18.00 12 12 12 12 10 10 20 28 6 26 25 20 nil 35.0 2 2 5 28 35 7 2 2.5 3 2 2)) (15 . (80.0 55.0 11.0 4 21.30 22.00 12 12 12 12 10 10 20 30 6 30 30 26 nil 40.0 2 2 5 30 38 7 2 2.5 3 2 2)) (20 . (90.0 65.0 11.0 4 26.90 27.50 14 14 14 14 10 10 24 32 6 38 40 34 nil 50.0 2 2.3 6 32 40 8 2.5 3 3 2.6 2)) (25 . (100.0 75.0 11.0 4 33.70 34.50 14 14 14 14 10 12 24 35 6 42 50 44 nil 60.0 2 2.6 7 35 40 10 2.5 3 3 2.6 2)) (32 . (120.0 90.0 14.0 4 42.40 43.50 16 16 14 14 10 12 26 35 6 55 60 54 nil 70.0 2 2.6 8 35 42 12 3 3 3 3.2 2)) (40 . (130.0 100.0 14.0 4 48.30 49.00 16 16 14 14 10 12 26 38 7 62 70 64 nil 80.0 3 2.6 8 38 45 15 3 3 3 3.2 2)) (50 . (140.0 110.0 14.0 4 60.30 61.50 16 16 14 14 12 12 28 38 8 74 80 74 nil 90.0 3 2.9 8 38 45 20 3 3 3 3.2 2)) (65 . (160.0 130.0 14.0 4 76.10 77.50 16 16 14 14 12 12 32 38 9 88 100 94 nil 110.0 3 2.9 8 38 45 20 3 3 4 3.2 2)) (80 . (190.0 150.0 18.0 4 88.90 90.50 18 18 16 16 12 14 34 42 10 102 110 110 nil 128.0 3 3.2 10 42 50 25 3 4 4 3.2 2)) (100 . (210.0 170.0 18.0 4 114.30 116.00 18 18 16 16 14 14 40 45 10 130 130 130 nil 148.0 3 3.6 10 45 52 25 4 4 4 3.2 3.2)) (125 . (240.0 200.0 18.0 8 139.70 141.50 20 20 18 18 14 14 44 48 10 155 160 160 nil 178.0 3 4 10 48 55 25 4 4 5 4 3.2)) (150 . (265.0 225.0 18.0 8 168.30 170.50 20 20 18 18 14 14 44 48 12 184 185 182 nil 202.0 3 4.5 10 48 55 25 5 4 6 5 3.5)) (200 . (320.0 280.0 18.0 8 219.10 221.50 22 22 20 20 16 16 44 55 15 236 240 238 nil 258.0 3 6.3 11 55 62 30 5 5 6 5 4.5)) (250 . (375.0 335.0 18.0 12 273.00 276.50 24 24 22 22 18 20 44 60 15 290 295 284 nil 312.0 3 6.3 12 60 68 nil 8 nil 8 8 nil)) (300 . (440.0 395.0 22.0 12 323.90 327.50 24 24 22 22 18 24 44 62 15 342 355 342 nil 365.0 4 7.1 12 62 68 nil 8 nil 8 8 nil)) (350 . (490.0 445.0 22.0 12 355.60 359.50 26 26 22 22 18 26 nil 62 15 385 nil 392 nil 415.0 4 7.1 13 62 68 nil 8 nil 8 8 nil)) (400 . (540.0 495.0 22.0 16 406.40 411.00 28 28 22 22 20 28 nil 65 15 438 nil 442 nil 465.0 4 7.1 14 65 72 nil 8 nil 8 8 nil)) (450 . (595.0 550.0 22.0 16 457.00 462.00 30 30 22 24 20 30 nil 65 15 492 nil 494 nil 520.0 4 7.1 15 72 72 nil 8 nil 8 8 nil)) (500 . (645.0 600.0 22.0 20 508.00 513.50 30 24 24 24 22 32 nil 68 15 538 nil 544 nil 570.0 4 7.1 16 75 75 nil 8)) (600 . (755.0 705.0 26.0 20 610.00 616.50 32 30 30 30 22 36 nil 70 16 640 nil 642 nil 670.0 5 7.1 16 70 )) (700 . (860.0 810.0 26.0 24 711.00 717.00 40 30 30 40 nil 36 nil 76 16 740 nil 746 nil 775 5 8.0 16 70 )) (800 . (975.0 920.0 30.0 24 813.00 819.00 40 30 30 44 nil 36 nil 76 16 842 nil 850 nil 880 5 8.0 16 70 )) (900 . (1075 1020 30.0 24 914.00 920.00 48 34 34 48 nil 36 nil 78 16 942 nil 950 nil 980 5 8.0 16 70 )) (1000 . (1175 1120 30.0 28 1016 1022 52 38 38 52 nil 36 nil 82 16 1045 nil 1050 nil 1080 5 8.0 18 70 )) (1200 . (1405 1340 33.0 32 1219 1025 60 42 42 60 nil 36 nil 104 20 1248 nil 1264 nil 1295 5 8.8 20 90 )) (1400 . (1630 1560 36.0 36 1422 1428 72 56 56 68 nil 36 nil 114 20 1452 nil 1480 nil 1510 5 8.8 nil nil )) (1600 . (1830 1760 36.0 40 1626 1632 80 63 63 76 nil 36 nil 119 20 1655 nil 1680 nil 1710 5 10.0 nil nil )) (1800 . (2045 1970 39.0 44 1829 1835 88 69 69 84 nil 36 nil 133 20 1855 nil 1878 nil 1920 5 11.0 nil nil )) (2000 . (2265 2180 42.0 48 2032 2038 96 74 74 92 nil 36 nil 146 25 2058 nil 2082 nil 2125 5 12.5 nil nil )) ) ) ) ((= PN_brd "PN10") (setq PN10 '( ;; 0 F32 c1 20 21 22 H4 H4 25 26 27 28 29 30 ;;;; D K L nb A B1 c1 c2 c3 c4 c5 c6 h1 h2 h3 N1 N2 N3 B6 d1 f1 s11 F35 35 36 h5 F36 F37 s35 s36 s37 (10 . (90.0 60.0 14.0 4 17.20 18.00 14 16 16 16 12 14 22 35 6 28.0 30.0 28.0 t 40.0 2 2.0 5 35 35 7 2 2.5 3 2 2)) (15 . (95.0 65.0 14.0 4 21.30 22.00 14 16 16 16 12 14 22 35 6 32.0 35.0 32.0 t 45.0 2 2.0 5 38 38 7 2 2.5 3 2 2)) (20 . (105.0 75.0 14.0 4 26.90 27.50 16 18 18 18 14 16 26 40 6 40.0 45.0 40.0 t 58.0 2 2.3 6 40 40 8 2.5 3 3 2.6 2)) (25 . (115.0 85.0 14.0 4 33.70 34.50 16 18 18 18 14 16 26 40 6 46.0 52.0 50.0 t 68.0 2 2.6 7 40 40 10 2.5 3 3 2.6 2)) (32 . (140.0 100.0 18.0 4 42.40 43.50 18 18 18 18 14 18 28 42 6 56.0 60.0 60.0 t 78.0 2 2.6 8 42 42 12 3 3 3 3.2 2)) (40 . (150.0 110.0 18.0 4 48.30 49.50 18 18 18 18 14 18 32 45 7 64.0 70.0 70.0 t 88.0 3 2.6 8 45 45 15 3 3 3 3.2 2)) (50 . (165.0 125.0 18.0 4 60.30 61.50 20 18 18 18 16 20 28 45 8 74.0 85.0 84.0 t 102.0 3 2.9 8 45 45 20 3 4 3 3.2 2)) (65 . (185.0 145.0 18.0 8 76.10 77.50 20 18 18 18 16 20 32 45 10 92.0 104.0 104.0 t 122.0 3 2.9 8 45 45 20 3 4 4 3.2 2)) (80 . (200.0 160.0 18.0 8 88.90 90.50 20 20 20 20 16 20 34 50 10 105.0 118.0 120.0 t 138.0 3 3.2 10 50 50 25 3 4 4 3.2 2)) (100 . (220.0 180.0 18.0 8 114.30 116.00 22 20 20 20 18 22 40 52 12 131.0 140.0 140.0 t 158.0 3 3.6 10 52 52 25 4 4 4 3.2 3.2)) (125 . (250.0 210.0 18.0 8 139.70 141.50 22 22 22 22 18 22 44 55 12 156.0 168.0 170.0 t 188.0 3 4.0 10 55 55 25 4 4 5 4 3.2)) (150 . (285.0 240.0 22.0 8 168.30 170.50 24 22 22 22 20 24 44 55 12 184.0 195.0 190.0 t 212.0 3 4.5 10 55 55 25 4 4 6 5 3.5)) (200 . (340.0 295.0 22.0 8 219.10 221.50 24 24 24 24 20 24 44 62 16 234.0 246.0 246.0 t 268.0 3 6.3 11 62 62 30 5 4 6 5 4.5)) (250 . (395.0 350.0 22.0 12 273.00 276.50 26 26 26 26 22 26 46 68 16 292.0 298.0 298.0 t 320.0 3 6.3 12 68 68 nil 8 nil 8 8)) (300 . (445.0 400.0 22.0 12 323.90 327.50 26 26 26 26 22 26 46 68 16 342.0 350.0 348.0 t 370.0 4 7.1 12 68 68 nil 8 nil 8 8)) (350 . (505.0 460.0 22.0 16 355.60 359.50 30 26 26 26 22 30 53 68 16 385.0 400.0 408.0 t 430.0 4 7.1 13 68 68 nil 8 nil 8 8)) (400 . (565.0 515.0 26.0 16 406.40 411.00 32 26 26 26 24 32 57 72 16 440.0 456.0 456.0 t 482.0 4 7.1 14 72 72 nil 8 nil 8 8)) (450 . (615.0 565.0 26.0 20 457.00 462.50 36 28 28 28 24 36 63 72 16 488.0 502.0 502.0 t 532.0 4 7.1 15 72 nil nil nil nil 8 8)) (500 . (670.0 620.0 26.0 20 508.00 513.50 38 28 28 28 26 38 67 75 16 542.0 559.0 559.0 t 585.0 4 7.1 16 75 nil nil nil nil 8 8)) (600 . (780.0 725.0 30.0 20 610.00 616.50 42 30 34 34 26 42 75 82 18 642.0 658.0 658.0 t 685.0 5 8.0 18 80 nil nil nil nil 10 nil)) (700 . (895.0 840 30 24 711.00 711.00 50 35 35 38 nil 50 nil 85 18 746.0 nil 772.0 t 800 5 8.8 26 100 nil nil nil nil 10 nil)) (800 . (1015.0 950 33 24 813.00 813.00 56 38 38 48 nil 56 nil 96 18 850.0 nil 876.0 t 905 5 8.8 28 105 nil nil nil nil 12 nil)) (900 . (1115.0 1050 33 28 914.00 914.00 62 38 38 50 nil 62 nil 99 20 950.0 nil 976.0 t 1005 5 12.5 30 110 nil nil nil nil 12 nil)) (1000 . (1230.0 1160 36 28 1016.00 1016.0 70 44 44 54 nil 70 nil 105 20 1052 nil 1080 t 1110 5 12.5 35 120 nil nil nil nil 12 nil)) (1200 . (1455.0 1380 39 32 1219.00 1219.0 83 55 55 66 nil 83 nil 132 25 1256 nil 1292 t 1330 5 12.5 nil nil nil nil nil nil 16 nil)) (1400 . (1675.0 1590 42 36 1422.00 1422.0 95 65 65 nil nil 95 nil 143 25 1460 nil 1496 t 1535 5 14.2 nil nil nil nil nil nil nil nil)) (1600 . (1915.0 1820 48 40 1626.00 1626.0 95 75 75 nil nil 95 nil 159 25 1666 nil 1712 t 1760 5 16.0 nil nil nil nil nil nil nil nil)) (1800 . (2115.0 2020 48 44 1829.00 1829.0 95 85 85 nil nil 95 nil 175 30 1868 nil 1910 t 1960 5 17.5 nil nil nil nil nil nil nil nil)) ) ) ) ((= PN_brd "PN16") (setq PN16 '( ;; F32 c1 20 21 22 H4 H4 25 26 27 28 29 30 ;;;; D K L nb A B1 c1 c2 c3 c4 c5 c6 h1 h2 h3 N1 N2 N3 B6 d1 f1 s11 F35 35 36 h5 F36 F37 s35 s36 s37 (10 . (90.0 60.0 14.0 4 17.20 18.00 14 16 16 16 12 14 22 35 6 28.0 30.0 28.0 t 40.0 2 2.0 5 35 35 7 2 2.5 3 2.0 2.0)) (15 . (95.0 65.0 14.0 4 21.30 22.00 14 16 16 16 12 14 22 38 6 32.0 35.0 32.0 t 45.0 2 2.0 5 38 38 7 2 2.5 3 2.0 2.0)) (20 . (105.0 75.0 14.0 4 26.90 27.50 16 18 18 18 14 16 26 40 6 40.0 45.0 40.0 t 58.0 2 2.3 6 40 40 8 2.5 3 3 2.6 2.0)) (25 . (115.0 85.0 14.0 4 33.70 34.50 16 18 18 18 14 16 28 40 6 46.0 52.0 50.0 t 68.0 2 2.6 7 40 40 10 2.5 3 3 2.6 2.0)) (32 . (140.0 100.0 18.0 4 42.40 43.50 18 18 18 18 14 18 30 42 6 56.0 60.0 60.0 t 78.0 2 2.6 8 42 42 12 3 3 3 3.2 2.0)) (40 . (150.0 110.0 18.0 4 48.30 49.50 18 18 18 18 14 18 32 45 7 64.0 70.0 70.0 t 88.0 3 2.6 8 45 45 15 3 3 3 3.2 2.0)) (50 . (165.0 125.0 18.0 4 60.30 61.50 20 18 18 18 16 20 28 45 8 74.0 84.0 84.0 t 102.0 3 2.9 8 45 45 20 3 4 3 3.2 2.0)) (65 . (185.0 145.0 18.0 8 76.10 77.50 20 18 18 18 16 20 32 45 10 92.0 104.0 104.0 t 122.0 3 2.9 8 45 45 20 3 4 4 3.2 2.0)) (80 . (200.0 160.0 18.0 8 88.90 90.50 20 20 20 20 16 20 34 50 10 105.0 118.0 120.0 t 138.0 3 3.2 10 50 50 25 3 4 4 3.2 3.2)) (100 . (220.0 180.0 18.0 8 114.3 116.00 22 20 20 20 18 22 40 52 12 131.0 140.0 140.0 t 158.0 3 3.6 10 52 52 25 4 4 4 3.2 3.2)) (125 . (250.0 210.0 18.0 8 139.7 141.50 22 22 22 22 18 22 44 55 12 156.0 168.0 170.0 t 188.0 3 4.0 10 55 55 25 4 4 5 3.2 3.5)) (150 . (285.0 240.0 22.0 8 168.3 170.50 24 22 22 22 20 24 44 55 12 184.0 195.0 190.0 t 212.0 3 4.5 10 55 55 25 5 5 6 3.2 4.5)) (200 . (340.0 295.0 22.0 12 219.1 221.50 26 24 24 24 20 26 44 62 16 235.0 246.0 246.0 t 268.0 3 6.3 11 62 62 30 6 6 6 3.2 5.6)) (250 . (405.0 355.0 26.0 12 273.0 276.50 29 26 26 26 22 29 46 70 16 292.0 298.0 296.0 t 320.0 3 6.3 12 70 68 nil 10 nil 8 3.2 nil)) (300 . (460.0 410.0 26.0 12 323.9 327.50 32 28 28 28 24 32 46 78 16 344.0 350.0 350.0 t 378.0 4 7.1 14 78 68 nil 10 nil 10 4.0 nil)) (350 . (520.0 470.0 26.0 16 355.6 359.00 35 30 30 30 26 35 57 82 16 390.0 400.0 410.0 t 438.0 4 8.0 18 82 68 nil 10 nil 10 4.0 nil)) (400 . (580.0 525.0 30.0 16 406.4 411.00 38 32 32 32 28 38 63 85 16 445.0 456.0 458.0 t 490.0 4 8.0 20 85 72 nil 10 nil 12 4.0 nil)) (450 . (640.0 585.0 30.0 20 457.0 462.50 42 34 40 40 30 42 68 83 16 490.0 502.0 516.0 t 550.0 4 8.0 22 87 nil nil 10 nil 12 nil nil)) (500 . (715.0 650.0 33.0 20 508.0 513.50 46 36 44 44 32 46 73 84 16 548.0 559.0 576.0 t 610.0 4 8.0 22 90 nil nil nil nil 12 nil nil)) (600 . (840.0 770.0 36.0 20 610.0 616.50 55 40 54 54 32 55 83 88 18 670.0 658.0 690.0 t 725.0 5 10.0 24 95 nil nil nil nil 12 nil nil)) (700 . (910.0 840.0 36.0 24 711.0 711.0 63 40 nil 58 nil 63 83 104 18 755.0 760.0 760.0 t 795.0 5 10.0 26 100 nil nil nil nil 14 nil nil)); b1 (800 . (1025 950.0 39.0 24 813.0 813.00 74 41 nil 62 nil 74 90 108 20 855.0 864.0 862.0 t 900.0 5 12.5 28 105 nil nil nil nil 16 nil nil)); b1 (900 . (1125 1050.0 39.0 28 914.0 914.00 82 48 nil 64 nil 82 94 118 20 955.0 968 962 t 1000 5 12.5 30 110 nil nil nil nil 18 nil nil)) (1000 . (1255 1170.0 42.0 28 1016 1016 90 59 nil 68 nil 90 100 137 22 1058 1072 1076 t 1115 5 12.5 35 110 nil nil nil nil 18 nil nil)) (1200 . (1485 1390.0 48.0 32 1219 1219 100 78 nil nil nil 100 nil 160 30 1262 nil 1282 t 1330 5 14.2 nil 110 nil nil nil nil nil nil nil)) (1400 . (1685 1590.0 48.0 36 1422 1422 110 84 nil nil nil 110 nil 177 30 1465 nil 1482 t 1530 5 16.0 nil 110 nil nil nil nil nil nil nil)) (1600 . (1930 1820.0 56.0 40 1626 1626 120 102 nil nil nil 120 nil 204 35 1668 nil 1696 t 1750 5 17.5 nil 110 nil nil nil nil nil nil nil)) (1800 . (2130 2020.0 56.0 44 1829 1829 130 110 nil nil nil 130 nil 218 35 1870 nil 1896 t 1950 5 20.0 nil 110 nil nil nil nil nil nil nil)) (2000 . (2345 2230.0 62.0 48 2032 2032 140 124 nil nil nil 140 nil 238 40 2072 nil 2100 t 2150 5 22.0 nil 110 nil nil nil nil nil nil nil)) ) ) ) ((= PN_brd "PN25") (setq PN25 '( ;; F32 c1 20 21 22 H4 H4 25 26 27 28 29 30 ;;;; D K L nb A B1 c1 c2 c3 c4 c5 c6 h1 h2 h3 N1 N2 N3 B6 d1 f1 s11 F35 35 36 h5 F36 F37 s35 s36 s37 (10 . (90.0 60.0 14.0 4 17.20 18.00 14 16 16 16 12 14 22 35 6 28.0 30.0 28.0 6.10 40.0 2 2.0 5 35 nil nil nil nil 3)) (15 . (95.0 65.0 14.0 4 21.30 22.00 14 16 16 16 12 14 22 38 6 32.0 35.0 32.0 12.70 45.0 2 2.0 5 38 nil nil nil nil 3)) (20 . (105.0 75.0 14.0 4 26.90 27.50 16 18 18 18 14 16 26 40 6 40.0 45.0 40.0 19.00 58.0 2 2.3 6 40 nil nil nil nil 3)) (25 . (115.0 85.0 14.0 4 33.70 34.50 16 18 18 18 14 16 28 40 6 46.0 52.0 50.0 25.40 68.0 2 2.6 7 40 nil nil nil nil 3)) (32 . (140.0 100.0 18.0 4 42.40 43.50 18 18 18 18 14 18 30 42 6 56.0 60.0 60.0 31.80 78.0 2 2.6 8 42 nil nil nil nil 3)) (40 . (150.0 110.0 18.0 4 48.30 49.50 18 18 18 18 14 18 32 45 7 64.0 70.0 70.0 38.00 88.0 3 2.6 8 45 nil nil nil nil 3)) (50 . (165.0 125.0 18.0 4 60.30 61.50 20 20 20 20 16 20 34 48 8 75.0 84.0 84.0 50.80 102.0 3 2.9 10 48 nil nil nil nil 4)) (65 . (185.0 145.0 18.0 8 76.10 77.50 22 22 22 22 16 22 38 52 10 90.0 104.0 104.0 63.50 122.0 3 2.9 11 52 nil nil nil nil 5)) (80 . (200.0 160.0 18.0 8 88.90 90.50 24 24 24 24 18 24 40 58 12 105.0 118.0 120.0 76.20 138.0 3 3.2 12 58 nil nil nil nil 6)) (100 . (235.0 190.0 22.0 8 114.3 116.00 26 24 24 24 20 26 44 65 12 134.0 145.0 142.0 101.60 162.0 3 3.6 14 65 nil nil nil nil 6)) (125 . (270.0 220.0 26.0 8 139.7 141.50 28 26 26 26 22 28 48 68 12 162.0 170.0 162.0 127.00 188.0 3 4.0 16 68 nil nil nil nil 6)) (150 . (300.0 250.0 26.0 8 168.3 170.50 30 28 28 28 24 30 52 75 12 192.0 200.0 192.0 152.40 218.0 3 4.5 18 75 nil nil nil nil 8)) (200 . (360.0 310.0 26.0 12 219.1 221.50 32 30 30 30 26 32 52 80 16 244.0 256.0 252.0 203.20 278.0 3 6.3 18 80 nil nil nil nil 8)) (250 . (425.0 370.0 30.0 12 273.0 276.50 35 32 32 32 26 35 60 88 18 298.0 310.0 304.0 254.00 335.0 3 7.1 18 88 nil nil nil nil 10)) (300 . (485.0 430.0 30.0 16 323.9 327.50 38 34 34 34 28 38 67 92 18 352.0 364.0 364.0 304.80 395.0 4 8.0 20 92 nil nil nil nil 10)) (350 . (555.0 490.0 33.0 16 355.6 359.50 42 38 38 38 32 42 72 100 20 398.0 418.0 418.0 355.60 450.0 4 8.0 22 100 nil nil nil nil 12)) (400 . (620.0 550.0 36.0 16 406.4 411.00 48 40 40 40 34 48 78 110 20 452.0 472.0 472.0 406.40 505.0 4 8.8 24 110 nil nil nil nil 14)) (450 . (670.0 600.0 36.0 20 457.0 462.00 54 46 46 50 36 54 84 110 20 500.0 520.0 520.0 457.20 555.0 4 8.8 26 110 nil nil nil nil 15)) (500 . (730.0 660.0 36.0 20 508.0 513.50 58 48 48 51 38 58 90 125 20 558.0 580.0 580.0 508.00 615.0 4 10.0 28 125 nil nil nil nil 16)) (600 . (845.0 770.0 39.0 20 610.0 616.50 68 48 58 66 40 68 100 125 20 660.0 684.0 684.0 609.60 720.0 5 11.0 30 115 nil nil nil nil 18)) (700 . (960.0 875.0 42.0 24 711.0 714.00 85 50 nil nil nil 85 nil 129 20 760.0 nil 780.0 nil 820.0 5 14.2 30 125 nil nil nil nil 20)) (800 . (1085 990.0 48.0 24 813.0 816.00 95 53 nil nil nil 95 nil 138 22 864.0 nil 882.0 nil 930.0 5 16.0 35 135 nil nil nil nil 20)) (900 . (1185 1090 48.0 28 914.0 nil 100 57 nil nil nil 95 nil 148 24 968.0 nil 982.0 nil 1030 5 17.5 nil nil nil nil nil nil nil)) (1000 . (1320 1210 56.0 28 1016.0 nil 100 63 nil nil nil 95 nil 160 24 1070 nil 1086 nil 1140 5 20.0 nil nil nil nil nil nil nil)) ) ) ) ((= PN_brd "PN40") (setq PN40 '( ;F c1 21 22 H4 H4 25 26 27 28 ;;;; D K L nb A B1 c1 c2 c3 c4 c5 c6 h1 h2 h3 N1 N2 N3 B6 d1 f1 s11 F35 35 36 h5 F36 F37 s35 (10 . (90.0 60.0 14.0 4 17.20 18.00 14 16 16 16 12 16 22 35 6 28.0 30.0 28.0 t 40.0 2 1.8 5 35)) (15 . (95.0 65.0 14.0 4 21.30 22.00 14 16 16 16 12 16 22 38 6 32.0 35.0 32.0 t 45.0 2 2.0 5 38)) (20 . (105.0 75.0 14.0 4 26.90 27.50 16 18 18 18 14 16 26 40 6 40.0 45.0 40.0 t 58.0 2 2.3 6 40)) (25 . (115.0 85.0 14.0 4 33.70 34.50 16 18 18 18 14 18 28 40 6 46.0 52.0 50.0 t 68.0 2 2.6 7 40)) (32 . (140.0 100.0 18.0 4 42.40 43.50 18 18 18 18 14 18 30 42 6 56.0 60.0 60.0 t 78.0 2 2.6 8 42)) (40 . (150.0 110.0 18.0 4 48.30 49.00 18 18 18 18 14 18 32 45 7 64.0 70.0 70.0 t 88.0 3 2.6 8 45)) (50 . (165.0 125.0 18.0 4 60.30 61.50 20 20 20 20 16 20 34 48 8 75.0 84.0 84.0 t 102.0 3 2.9 10 48)) (65 . (185.0 145.0 18.0 8 76.10 77.50 22 22 22 22 16 20 38 52 10 90.0 104.0 104.0 t 122.0 3 2.9 11 52)) (80 . (200.0 160.0 18.0 8 88.90 90.50 24 24 24 24 18 22 40 58 12 105.0 118.0 120.0 t 138.0 3 3.2 12 58)) (100 . (235.0 190.0 22.0 8 114.30 116.00 26 24 24 24 20 22 44 65 12 134.0 145.0 142.0 t 162.0 3 3.6 14 65)) (125 . (270.0 220.0 26.0 8 139.70 141.50 28 26 26 26 22 24 48 68 12 162.0 170.0 162.0 t 188.0 3 4.0 16 68)) (150 . (300.0 250.0 26.0 8 168.30 170.50 30 28 28 28 22 24 52 75 12 192.0 200.0 192.0 t 218.0 3 4.5 18 75)) (200 . (375.0 320.0 30.0 12 219.10 221.50 36 34 34 36 26 30 52 88 16 244.0 260.0 254.0 t 285.0 3 6.3 20 88)) (250 . (450.0 385.0 33.0 12 273.00 276.50 42 38 38 38 30 36 60 105 18 306.0 312.0 312.0 t 345.0 3 7.1 22 105)) (300 . (515.0 450.0 33.0 16 323.90 327.50 52 42 42 42 34 40 67 115 18 362.0 380.0 378.0 t 410.0 4 8.0 25 115)) (350 . (580.0 510.0 36.0 16 355.60 359.50 58 46 46 46 38 46 72 125 20 408.0 424.0 432.0 t 465.0 4 8.8 28 125)) (400 . (660.0 585.0 39.0 16 406.40 411.00 65 50 50 50 42 50 78 135 20 462.0 478.0 498.0 t 535.0 4 11.0 32 135)) (450 . (685.0 610.0 39.0 20 457.00 462.00 75 57 57 57 46 75 84 135 20 500.0 522.0 522.0 t 560.0 4 12.5 nil nil)) (500 . (755.0 670.0 42.0 20 508.00 513.50 85 57 57 57 50 85 90 140 20 562.0 576.0 576.0 t 615.0 4 14.2 nil nil)) (600 . (890.0 795.0 48.0 20 610.00 610.50 95 72 72 72 54 95 100 150 20 666.0 686.0 686.0 t 735.0 5 16.0 nil nil)) ) ) ) ((= PN_brd "PN50") (setq PN50 '( ;;;; D K L nb A B1 c1 c2 c3 c4 c5 c6 h1 h2 h3 N1 N2 N3 B6 d1 f1 s (15 . (95.0 66.70 15.80 4 21.30 22.40 nil 14.2 nil nil nil nil 22 52 6.4 38.0 nil nil 12.70 34.90 1.6 2.6 )) (20 . (117.0 82.60 19.00 4 26.90 27.70 nil 15.7 nil nil nil nil 25 57 6.4 48.0 nil nil 19.00 42.90 1.6 2.9 )) (25 . (124.0 88.90 19.00 4 33.70 34.50 nil 17.5 nil nil nil nil 27 62 6.4 54.0 nil nil 25.40 50.80 1.6 3.2 )) (32 . (133.0 98.40 19.00 4 42.40 43.20 nil 19.0 nil nil nil nil 27 65 6.4 63.0 nil nil 31.80 63.50 1.6 3.6 )) (40 . (156.0 114.30 22.20 4 48.30 49.50 nil 20.6 nil nil nil nil 30 68 6.4 70.0 nil nil 38.00 73.00 1.6 3.6 )) (50 . (165.0 127.00 19.00 8 60.30 62.00 nil 22.4 nil nil nil nil 33 70 6.4 84.0 nil nil 50.80 92.10 1.6 4.0 )) (65 . (190.0 149.20 22.20 8 76.10 77.80 nil 25.4 nil nil nil nil 38 76 6.4 100.0 nil nil 63.50 104.80 1.6 4.5 )) (80 . (210.0 168.30 22.20 8 88.90 90.70 nil 28.4 nil nil nil nil 43 79 6.4 117.0 nil nil 76.20 127.00 1.6 5.0 )) (100 . (254.0 200.00 22.20 8 114.30 116.10 nil 31.8 nil nil nil nil 48 86 6.4 146.0 nil nil 101.60 157.20 1.6 5.6 )) (125 . (279.0 235.00 22.20 8 139.70 142.20 nil 35.0 nil nil nil nil 51 98 6.4 178.0 nil nil 127.00 185.70 1.6 6.3 )) (150 . (318.0 269.90 22.20 12 168.30 170.70 nil 36.6 nil nil nil nil 52 98 6.4 206.0 nil nil 152.40 215.90 1.6 7.1 )) (200 . (381.0 330.20 25.40 12 219.10 221.50 nil 41.1 nil nil nil nil 62 111 6.4 260.0 nil nil 203.20 269.90 1.6 8.0 )) (250 . (444.0 387.40 28.50 16 273.00 276.40 nil 47.8 nil nil nil nil 66 117 6.4 320.0 nil nil 254.00 323.80 1.6 8.8 )) (300 . (521.0 450.80 31.80 16 323.90 327.20 nil 50.8 nil nil nil nil 73 130 6.4 375.0 nil nil 304.80 381.00 1.6 10.0 )) (350 . (584.0 514.40 31.80 20 355.60 359.20 nil 53.8 nil nil nil nil 76 143 6.4 425.0 nil nil 355.60 412.80 1.6 11.0 )) (400 . (648.0 571.50 35.00 20 406.40 410.50 nil 57.2 nil nil nil nil 83 146 6.4 483.0 nil nil 406.40 469.90 1.6 12.5 )) (450 . (711.0 628.60 35.00 24 457.00 461.80 nil 60.5 nil nil nil nil 89 159 6.4 533.0 nil nil 457.20 533.40 1.6 14.2 )) (500 . (775.0 685.80 35.00 24 508.00 513.10 nil 63.5 nil nil nil nil 95 162 6.4 587.0 nil nil 508.00 584.20 1.6 16.0 )) (600 . (914.0 812.80 41.10 24 610.00 616.00 nil 69.9 nil nil nil nil 106 168 6.4 701.0 nil nil 609.60 692.20 1.6 17.5 )) ) ) ) ((= PN_brd "PN100") (setq PN100 '( ;;;; D K L nb A B1 c1 c2 c3 c4 c5 c6 h1 h2 h3 N1 N2 N3 B6 d1 f1 s (15 . (95.0 66.70 15.80 4 21.30 22.40 nil 14.2 nil nil nil nil 22 58.40 6.4 38.0 nil nil 12.70 34.90 6.4 nil )) (20 . (117.0 82.60 19.00 4 26.90 27.70 nil 15.7 nil nil nil nil 25 63.40 6.4 48.0 nil nil 19.00 42.90 6.4 nil )) (25 . (124.0 88.90 19.00 4 33.70 34.50 nil 17.5 nil nil nil nil 27 68.40 6.4 54.0 nil nil 25.40 50.80 6.4 nil )) (32 . (133.0 98.40 19.00 4 42.40 43.20 nil 20.6 nil nil nil nil 29 73.40 6.4 64.0 nil nil 31.80 63.50 6.4 nil )) (40 . (156.0 114.30 22.20 4 48.30 49.50 nil 22.4 nil nil nil nil 32 76.40 6.4 70.0 nil nil 38.00 73.00 6.4 nil )) (50 . (165.0 127.00 19.00 8 60.30 62.00 nil 25.4 nil nil nil nil 37 79.40 6.4 84.0 nil nil 50.80 92.10 6.4 nil )) (65 . (190.0 149.20 22.20 8 76.10 77.80 nil 28.4 nil nil nil nil 41 85.40 6.4 100.0 nil nil 63.50 104.80 6.4 nil )) (80 . (210.0 168.30 22.20 8 88.90 90.70 nil 31.8 nil nil nil nil 46 89.40 6.4 118.0 nil nil 76.20 127.00 6.4 nil )) (100 . (273.0 215.90 25.40 8 114.30 116.10 nil 38.1 nil nil nil nil 54 108.40 6.4 152.0 nil nil 101.60 157.20 6.4 nil )) (125 . (330.0 266.70 28.50 8 139.70 142.20 nil 44.5 nil nil nil nil 60 120.40 6.4 189.0 nil nil 127.00 185.70 6.4 nil )) (150 . (356.0 292.10 28.50 12 168.30 170.70 nil 47.8 nil nil nil nil 67 123.40 6.4 222.0 nil nil 152.40 215.90 6.4 nil )) (200 . (419.0 349.20 31.80 12 219.10 221.50 nil 55.6 nil nil nil nil 76 139.40 6.4 273.0 nil nil 203.20 269.90 6.4 nil )) (250 . (508.0 431.80 35.00 16 273.00 276.40 nil 63.5 nil nil nil nil 86 158.40 6.4 343.0 nil nil 254.00 323.80 6.4 nil )) (300 . (559.0 489.00 35.00 20 323.90 327.20 nil 66.5 nil nil nil nil 92 162.40 6.4 400.0 nil nil 304.80 381.00 6.4 nil )) (350 . (603.0 527.00 38.10 20 355.60 359.20 nil 69.9 nil nil nil nil 94 171.40 6.4 432.0 nil nil 355.60 412.80 6.4 nil )) (400 . (686.0 603.20 41.10 20 406.40 410.50 nil 76.2 nil nil nil nil 106 184.40 6.4 495.0 nil nil 406.40 469.90 6.4 nil )) (450 . (743.0 654.00 44.50 20 457.00 461.80 nil 82.6 nil nil nil nil 117 190.40 6.4 546.0 nil nil 457.20 533.40 6.4 nil )) (500 . (813.0 723.90 44.50 24 508.00 513.10 nil 88.9 nil nil nil nil 127 196.40 6.4 610.0 nil nil 508.00 584.20 6.4 nil )) (600 . (940.0 838.20 50.80 24 610.00 616.00 nil 101.6 nil nil nil nil 140 209.40 6.4 718.0 nil nil 609.60 692.20 6.4 nil )) ) ) ) ((= PN_brd "PN150") (setq PN150 '( ;;;; D K L nb A B1 c1 c2 c3 c4 c5 c6 h1 h2 h3 N1 N2 N3 B6 d1 f1 s (15 . (121.0 82.60 22.20 4 21.30 22.40 nil 22.4 nil nil nil nil 32 66.40 6.4 38.0 nil nil 12.70 34.90 6.4 nil )) (20 . (130.0 88.90 22.20 4 26.90 27.70 nil 25.4 nil nil nil nil 35 76.40 6.4 44.0 nil nil 19.00 42.90 6.4 nil )) (25 . (149.0 101.60 25.40 4 33.70 34.50 nil 28.4 nil nil nil nil 41 79.40 6.4 52.0 nil nil 25.40 50.80 6.4 nil )) (32 . (159.0 111.10 25.40 4 42.40 43.20 nil 28.4 nil nil nil nil 41 79.40 6.4 63.0 nil nil 31.80 63.50 6.4 nil )) (40 . (178.0 123.80 28.50 4 48.30 49.50 nil 31.8 nil nil nil nil 44 89.40 6.4 70.0 nil nil 38.00 73.00 6.4 nil )) (50 . (216.0 165.10 25.40 8 60.30 62.00 nil 38.1 nil nil nil nil 57 108.40 6.4 105.0 nil nil 50.80 92.10 6.4 nil )) (65 . (244.0 190.50 28.50 8 76.10 77.80 nil 41.1 nil nil nil nil 63 111.40 6.4 124.0 nil nil 63.50 104.80 6.4 nil )) (80 . (241.0 190.50 25.40 8 88.90 90.70 nil 38.1 nil nil nil nil 54 108.40 6.4 127.0 nil nil 76.20 127.00 6.4 nil )) (100 . (292.0 235.00 31.80 8 114.30 116.10 nil 44.5 nil nil nil nil 70 120.40 6.4 159.0 nil nil 101.60 157.20 6.4 nil )) (125 . (349.0 279.40 35.00 8 139.70 142.20 nil 50.8 nil nil nil nil 79 133.40 6.4 190.0 nil nil 127.00 185.70 6.4 nil )) (150 . (381.0 317.50 31.80 12 168.30 170.70 nil 55.6 nil nil nil nil 86 146.40 6.4 235.0 nil nil 152.40 215.90 6.4 nil )) (200 . (470.0 393.70 38.10 12 219.10 221.50 nil 63.5 nil nil nil nil 102 168.40 6.4 298.0 nil nil 203.20 269.90 6.4 nil )) (250 . (546.0 469.90 38.10 16 273.00 276.40 nil 69.9 nil nil nil nil 108 190.40 6.4 368.0 nil nil 254.00 323.80 6.4 nil )) (300 . (610.0 533.40 38.10 20 323.90 327.20 nil 79.2 nil nil nil nil 117 206.40 6.4 419.0 nil nil 304.80 381.00 6.4 nil )) (350 . (641.0 558.80 41.10 20 355.60 359.20 nil 85.9 nil nil nil nil 130 219.40 6.4 451.0 nil nil 355.60 412.80 6.4 nil )) (400 . (705.0 616.00 44.50 20 406.40 410.50 nil 88.9 nil nil nil nil 133 222.40 6.4 508.0 nil nil 406.40 469.90 6.4 nil )) (450 . (787.0 685.80 50.80 20 457.00 461.80 nil 101.6 nil nil nil nil 152 235.40 6.4 565.0 nil nil 457.20 533.40 6.4 nil )) (500 . (857.0 749.30 53.80 20 508.00 513.10 nil 108.0 nil nil nil nil 159 254.40 6.4 622.0 nil nil 508.00 584.20 6.4 nil )) (600 . (1041.0 901.70 66.50 20 610.00 616.00 nil 139.7 nil nil nil nil 203 298.40 6.4 749.0 nil nil 609.60 692.20 6.4 nil )) ) ) ) ((= PN_brd "PN250") (setq PN250 '( ;;;; D K L nb A B1 c1 c2 c3 c4 c5 c6 h1 h2 h3 N1 N2 N3 B6 d1 f1 s (15 . (121.0 82.60 22.20 4 21.30 22.40 nil 22.4 nil nil nil nil 32 66.40 6.4 38.0 nil nil 12.70 34.90 6.4 nil )) (20 . (130.0 88.90 22.20 4 26.90 27.70 nil 25.4 nil nil nil nil 35 76.40 6.4 44.0 nil nil 19.00 42.90 6.4 nil )) (25 . (149.0 101.60 25.40 4 33.70 34.50 nil 28.4 nil nil nil nil 41 79.40 6.4 52.0 nil nil 25.40 50.80 6.4 nil )) (32 . (159.0 111.10 25.40 4 42.40 43.20 nil 28.4 nil nil nil nil 41 79.40 6.4 63.0 nil nil 31.80 63.50 6.4 nil )) (40 . (178.0 123.80 28.50 4 48.30 49.50 nil 31.8 nil nil nil nil 44 89.40 6.4 70.0 nil nil 38.00 73.00 6.4 nil )) (50 . (216.0 165.10 25.40 8 60.30 62.00 nil 38.1 nil nil nil nil 57 108.40 6.4 105.0 nil nil 50.80 92.10 6.4 nil )) (65 . (244.0 190.50 28.50 8 76.10 77.80 nil 41.1 nil nil nil nil 63 111.40 6.4 124.0 nil nil 63.50 104.80 6.4 nil )) (80 . (267.0 203.20 31.80 8 88.90 0 nil 47.8 nil nil nil nil 0 124.40 6.4 133.0 nil nil 76.20 127.00 6.4 nil )) (100 . (311.0 241.30 35.00 8 114.30 0 nil 53.8 nil nil nil nil 0 130.40 6.4 162.0 nil nil 101.60 157.20 6.4 nil )) (125 . (375.0 292.10 41.10 8 139.70 0 nil 73.2 nil nil nil nil 0 161.40 6.4 197.0 nil nil 127.00 185.70 6.4 nil )) (150 . (394.0 317.50 38.10 12 168.30 0 nil 82.6 nil nil nil nil 0 177.40 6.4 229.0 nil nil 152.40 215.90 6.4 nil )) (200 . (483.0 393.70 44.50 12 219.10 0 nil 91.9 nil nil nil nil 0 219.40 6.4 292.0 nil nil 203.20 269.90 6.4 nil )) (250 . (584.0 482.60 50.80 12 273.00 0 nil 108.0 nil nil nil nil 0 260.40 6.4 368.0 nil nil 254.00 323.80 6.4 nil )) (300 . (673.0 571.50 53.80 16 323.90 0 nil 124.0 nil nil nil nil 0 289.40 6.4 451.0 nil nil 304.80 381.00 6.4 nil )) (350 . (749.0 635.00 60.50 16 355.60 0 nil 133.4 nil nil nil nil 0 304.40 6.4 495.0 nil nil 355.60 412.80 6.4 nil )) (400 . (826.0 704.80 66.50 16 406.40 0 nil 146.0 nil nil nil nil 0 317.40 6.4 552.0 nil nil 406.40 469.90 6.4 nil )) (450 . (914.0 774.70 73.20 16 457.00 0 nil 162.0 nil nil nil nil 0 333.40 6.4 597.0 nil nil 457.20 533.40 6.4 nil )) (500 . (984.0 831.80 79.20 16 508.00 0 nil 177.6 nil nil nil nil 0 362.40 6.4 641.0 nil nil 508.00 584.20 6.4 nil )) (600 . (1168.0 990.60 91.90 16 610.00 0 nil 203.2 nil nil nil nil 0 412.40 6.4 762.0 nil nil 609.60 692.20 6.4 nil )) ) ) ) ((= PN_brd "PN420") (setq PN420 '( ;;;; D K L nb A B1 c1 c2 c3 c4 c5 c6 h1 h2 h3 N1 N2 N3 B6 d1 f1 s (15 . (133.0 88.90 22.20 4 21.30 nil nil 30.2 nil nil nil nil nil 79.40 6.4 43.0 nil nil 12.70 34.90 6.4 nil )) (20 . (140.0 95.30 22.20 4 26.90 nil nil 31.8 nil nil nil nil nil 85.40 6.4 51.0 nil nil 19.00 42.90 6.4 nil )) (25 . (159.0 108.00 25.40 4 33.70 nil nil 35.0 nil nil nil nil nil 95.40 6.4 57.0 nil nil 25.40 50.80 6.4 nil )) (32 . (184.0 130.00 28.50 4 42.40 nil nil 38.1 nil nil nil nil nil 101.40 6.4 73.0 nil nil 31.80 63.50 6.4 nil )) (40 . (203.0 146.00 31.80 4 48.30 nil nil 44.5 nil nil nil nil nil 117.40 6.4 79.0 nil nil 38.00 73.00 6.4 nil )) (50 . (235.0 171.50 28.50 8 60.30 nil nil 50.8 nil nil nil nil nil 133.40 6.4 95.0 nil nil 50.80 92.10 6.4 nil )) (65 . (267.0 196.90 31.80 8 76.10 nil nil 57.2 nil nil nil nil nil 149.60 6.4 114.0 nil nil 63.50 104.80 6.4 nil )) (80 . (305.0 228.60 35.00 8 88.90 nil nil 66.5 nil nil nil nil nil 174.40 6.4 133.0 nil nil 76.20 127.00 6.4 nil )) (100 . (356.0 273.00 41.10 8 114.30 nil nil 76.2 nil nil nil nil nil 196.40 6.4 165.0 nil nil 101.60 157.20 6.4 nil )) (125 . (419.0 323.90 47.80 8 139.70 nil nil 91.9 nil nil nil nil nil 235.40 6.4 203.0 nil nil 127.00 185.70 6.4 nil )) (150 . (483.0 368.30 53.80 8 168.30 nil nil 108.0 nil nil nil nil nil 279.40 6.4 235.0 nil nil 152.40 215.90 6.4 nil )) (200 . (552.0 438.20 53.80 12 219.10 nil nil 127.0 nil nil nil nil nil 323.40 6.4 305.0 nil nil 203.20 269.90 6.4 nil )) (250 . (673.0 539.80 66.50 12 273.00 nil nil 165.1 nil nil nil nil nil 425.40 6.4 375.0 nil nil 254.00 323.80 6.4 nil )) (300 . (762.0 619.30 73.20 12 323.90 nil nil 184.2 nil nil nil nil nil 470.40 6.4 441.0 nil nil 304.80 381.00 6.4 nil )) ) ) ) ) (setq l_data (eval (read PN_brd))) (setq l_str nil) (initget 1 (apply 'strcat (mapcar 'strcat (repeat (length l_data) (setq l_str (cons "DN" l_str))) (mapcar 'itoa (mapcar 'car l_data)) (repeat (length l_data) (setq l_str (cons " " l_str)))))) (setq l_str nil) (setq model_brd (getkword (strcat "\nDiamètre Nominal [" (apply 'strcat (mapcar 'strcat (repeat (length l_data) (setq l_str (cons "DN" l_str))) (mapcar 'itoa (mapcar 'car l_data)) (repeat (length l_data) (setq l_str (cons "/" l_str))))) "]?: ")) ) (setq l_val (cdr (assoc (atoi (substr model_brd 3)) l_data))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (initget 1 "PLATE TOURNANTE COLLERETTE SLIP-ON LWN TAMPON") (setq typ_brd (getkword "\nType de bride [PLATE/TAMPON/TOURNANTE/COLLERETTE/SLIP-ON]?: ")) ; (setq typ_brd (getkword "\nType de bride [PLATE/TOURNANTE/COLLERETTE/SLIP-ON/LWN]?: ")) (cond ((eq typ_brd "TAMPON") ;;;; type 05 (setq e1 (* (nth 9 l_val) unit_draw)) (if (not ep:joint) (setq ep:joint 3)) (setq joint (getdist (strcat "\n Entrer l'épaisseur de joint <"(rtos ep:joint)"> :"))) (if (not joint) (setq joint ep:joint)) ) ((eq typ_brd "PLATE") ;;;; type 01 (if (and (nth 5 l_val) (nth 6 l_val)) (setq e1 (- (* (nth 6 l_val) unit_draw) (* (nth 20 l_val) unit_draw))) ) ) ((eq typ_brd "COLLERETTE") ;;;; type 11 (cond ((or (nth 7 l_val) (nth 8 l_val)) (if (nth 7 l_val) (setq e1 (- (* (nth 7 l_val) unit_draw) (* (nth 20 l_val) unit_draw))) (setq e1 (- (* (nth 8 l_val) unit_draw) (* (nth 20 l_val) unit_draw))) ) (if (member PN_brd '("PN100" "PN150" "PN250" "PN420")) (setq e1 (+ (* (nth 7 l_val) unit_draw) (* (nth 20 l_val) unit_draw))) ) (if (nth 21 l_val) (setq j (* (nth 21 l_val) unit_draw)) (progn (setq j (* 0.5 (nth 4 l_val) unit_draw)) (while (>= j (* 0.5 (nth 4 l_val) unit_draw)) (initget 1) (setq j (getdist "\nEntrer l'épaisseur du talon :")) ) ) ) (command "_.circle" "_none" (list (car pt_ins) (cadr pt_ins) (+ e1 (* (nth 20 l_val) unit_draw))) (* 0.5 (nth 15 l_val) unit_draw)) (setq d1 (- (* (nth 13 l_val) unit_draw) (+ e1 (* (nth 20 l_val) unit_draw) (* (nth 14 l_val) unit_draw))) d2 (- (* 0.5 (nth 15 l_val) unit_draw) (* 0.5 (nth 4 l_val) unit_draw)) ) (command "_.extrude" (entlast) "" "_taper" (angtos (atan (/ d2 d1)) (getvar "AUNITS") 12) d1) (setq js_add (ssadd (entlast) js_add)) (command "_.circle" "_none" (list (car pt_ins) (cadr pt_ins) (+ e1 d1 (* (nth 20 l_val) unit_draw))) (* 0.5 (nth 4 l_val) unit_draw)) (command "_.extrude" (entlast) "" (* (nth 14 l_val) unit_draw)) (command "_.union" js_add (entlast) "") (setq js_add (ssadd)) (setq js_add (ssadd (entlast) js_add)) (command "_.circle" "_none" (list (car pt_ins) (cadr pt_ins) (+ e1 (* (nth 20 l_val) unit_draw))) (- (* 0.5 (nth 4 l_val) unit_draw) j)) (command "_.extrude" (entlast) "" (+ d1 (* (nth 14 l_val) unit_draw))) (command "_.subtract" js_add "" (entlast) "") (setq js_add (ssadd)) (setq js_add (ssadd (entlast) js_add)) ) ) ) ((eq typ_brd "TOURNANTE") (cond ((nth 10 l_val) ;; (and (nth 10 l_val)) (cond ((or (= PN_brd "PN25")(= PN_brd "PN40")) (initget "32 35 34") (setq typ_collet (getkword "\nType de collets [32/35/34]?: ")) ) ((or (= PN_brd "PN10")(= PN_brd "PN16")) (initget "32 35 36 37 34") (setq typ_collet (getkword "\nType de collets [32/35/36/37/34]?: ")) ) (t (initget "32 35 36 37") (setq typ_collet (getkword "\nType de collets [32/35/36/37]?: ")) ;; PN6 ) ) (setq e1 (* (nth 6 l_val) unit_draw)) (cond ((eq typ_collet "34") (command "_.circle" "_none" (list (car pt_ins) (cadr pt_ins) (+ e1 (* (nth 10 l_val) unit_draw))) (* 0.5 (nth 4 l_val) unit_draw)) (command "_.extrude" (entlast) "" (- (* (nth 13 l_val) unit_draw) (* (nth 10 l_val) unit_draw) e1)) ;;;;;;;;;;;;;;;;;;;;; modif alésage collet 09-01-09 (setq js_add (ssadd (entlast) js_add)) (command "_.circle" "_none" (list (car pt_ins) (cadr pt_ins) (+ e1 (* (nth 10 l_val) unit_draw)))(- (* 0.5 (nth 4 l_val) unit_draw) (* (nth 21 l_val) unit_draw) )) ;; talon (command "_.extrude" (entlast) "" (- (* (nth 13 l_val) unit_draw) (* (nth 10 l_val) unit_draw) e1)) (command "_.subtract" js_add "" (entlast) "") ;;;;;;;;;;;;;;;;;;;; ) ;;;; e1 -> epaisseur bride hors portée de joint ;;;; 0 1 2 3 4 5 6 7 8 9 F c1 12 13 14 15 16 17 18 19 20 21 22 H4 H4 25 26 27 28 29 30 ;;;; D K L nb A B1 c1 c2 c3 c4 c5 c6 h1 h2 h3 N1 N2 N3 B6 d1 f1 s11 F35 35 36 h5 F36 F37 s35 s36 s37 ((or (eq typ_collet "35") (eq typ_collet "36") (eq typ_collet "37")) ;; concerne la partie tubulaire du collet (command "_.circle" "_none" (list (car pt_ins) (cadr pt_ins) (+ e1 (* (cond ((eq typ_collet "35")(nth 22 l_val))((eq typ_collet "36")(nth 26 l_val))((eq typ_collet "37")(nth 27 l_val))) unit_draw))) (* 0.5 (nth 4 l_val) unit_draw) ) (command "_.extrude" (entlast) "" (- (* (cond ((eq typ_collet "35") (nth 23 l_val)) ((eq typ_collet "36") (nth 24 l_val)) ((eq typ_collet "37") (nth 25 l_val))) unit_draw) (* (cond ((eq typ_collet "35") (nth 22 l_val)) ((eq typ_collet "36") (nth 26 l_val)) ((eq typ_collet "37") (nth 27 l_val))) unit_draw) e1) ) ;;;;;;;;;;;;;;;;;;;;; alésage collet (setq js_add (ssadd (entlast) js_add)) (command "_.circle" "_none" (list (car pt_ins) (cadr pt_ins) (+ e1 (* (cond ((eq typ_collet "35")(nth 22 l_val)) ((eq typ_collet "36")(nth 26 l_val)) ((eq typ_collet "37")(nth 27 l_val))) unit_draw))) (- (* 0.5 (nth 4 l_val) unit_draw) (* (cond ((eq typ_collet "35")(nth 28 l_val)) ((eq typ_collet "36")(nth 29 l_val)) ((eq typ_collet "37")(nth 30 l_val))) unit_draw)) ) (command "_.extrude" (entlast) "" (- (* (cond ((eq typ_collet "35")(nth 23 l_val))((eq typ_collet "36")(nth 24 l_val))((eq typ_collet "37")(nth 25 l_val))) unit_draw) (* (cond ((eq typ_collet "35")(nth 22 l_val))((eq typ_collet "36")(nth 26 l_val))((eq typ_collet "37")(nth 27 l_val))) unit_draw) e1) ) (command "_.subtract" js_add "" (entlast) "") ;;;;;;;;;;;;;;;;;;;; ) ) ) ; ((nth 10 l_val) ; (setq e1 (* (nth 11 l_val) unit_draw)) ; ) ) ) ((eq typ_brd "SLIP-ON") ;;; type 12 (if (nth 12 l_val) (progn (if (not (nth 7 l_val)) (setq e1 (- (* (nth 8 l_val) unit_draw) (* (nth 20 l_val) unit_draw))) (if (member PN_brd '("PN100" "PN150" "PN250" "PN420")) (setq e1 (* (nth 7 l_val) unit_draw)) (setq e1 (- (* (nth 7 l_val) unit_draw) (* (nth 20 l_val) unit_draw))) ) ) (command "_.circle" "_none" (list (car pt_ins) (cadr pt_ins) (+ e1 (* (nth 20 l_val) unit_draw))) (if (not (nth 16 l_val)) (* 0.5 (nth 15 l_val) unit_draw) (* 0.5 (nth 16 l_val) unit_draw))) (command "_.extrude" (entlast) "" (- (* (nth 12 l_val) unit_draw) e1)) (setq js_add (ssadd (entlast) js_add)) (command "_.circle" "_none" (list (car pt_ins) (cadr pt_ins) (+ e1 (* (nth 20 l_val) unit_draw))) (* 0.5 (nth 5 l_val) unit_draw)) (command "_.extrude" (entlast) "" (- (* (nth 12 l_val) unit_draw) e1)) (command "_.subtract" js_add "" (entlast) "") (setq js_add (ssadd)) (setq js_add (ssadd (entlast) js_add)) ) ) ) ((eq typ_brd "LWN") ;;; type 21 (if (member PN_brd '("PN100" "PN150" "PN250" "PN420")) (setq e1 (- (* (nth 7 l_val) unit_draw) (* (nth 20 l_val) unit_draw))) ) (if (and (not (nth 7 l_val)) (nth 8 l_val)) (setq e1 (- (* (nth 8 l_val) unit_draw) (* (nth 20 l_val) unit_draw))) (setq e1 (- (* (nth 7 l_val) unit_draw) (* (nth 20 l_val) unit_draw))) ) (if (nth 18 l_val) ;; valeur --> (- (nth 4 l_val) (* 2 (nth 21 l_val))) (progn (command "_.circle" "_none" (list (car pt_ins) (cadr pt_ins) (+ e1 (* (nth 20 l_val) unit_draw))) (if (not (nth 17 l_val)) (* 0.5 (nth 15 l_val) unit_draw) (* 0.5 (nth 17 l_val) unit_draw))) (command "_.extrude" (entlast) "" (- (* (nth 13 l_val) unit_draw) e1)) (setq js_add (ssadd (entlast) js_add)) (command "_.circle" "_none" (list (car pt_ins) (cadr pt_ins) (+ e1 (* (nth 20 l_val) unit_draw))) (* 0.5 (- (nth 4 l_val) (* 2 (nth 21 l_val))) unit_draw)) (command "_.extrude" (entlast) "" (- (* (nth 13 l_val) unit_draw) e1)) (command "_.subtract" js_add "" (entlast) "") (setq js_add (ssadd)) (setq js_add (ssadd (entlast) js_add)) ) ) ) ) ;;;; e1 -> epaisseur bride hors portée de joint ;;;; 0 1 2 3 4 5 6 7 8 9 F c1 12 13 14 15 16 17 18 19 20 21 22 H4 H4 25 26 27 28 29 30 ;;;; D K L nb A B1 c1 c2 c3 c4 c5 c6 h1 h2 h3 N1 N2 N3 B6 d1 f1 s11 F35 35 36 h5 F36 F37 s35 s36 s37 (if e1 (progn (if (not (eq typ_brd "TAMPON")) (progn ;;; d1 (19) portee de joint ; F (10) ou f1 (20) hauteur (command "_.circle" "_none" pt_ins (* (nth 19 l_val) 0.5 unit_draw)) (command "_.extrude" (entlast) "" (+ e1 (if (eq typ_brd "TOURNANTE") (* (cond ((or (eq typ_collet "32")(eq typ_collet "34"))(nth 10 l_val))((eq typ_collet "35")(nth 22 l_val))((eq typ_collet "36")(nth 26 l_val))((eq typ_collet "37")(nth 27 l_val))) unit_draw) (* (nth 20 l_val) unit_draw) ) ) ) (setq js_add (ssadd (entlast) js_add)) (command "_.circle" "_none" (list (car pt_ins) (cadr pt_ins) (if (eq typ_brd "TOURNANTE") (* (cond ((or (eq typ_collet "32")(eq typ_collet "34"))(nth 10 l_val))((eq typ_collet "35")(nth 22 l_val))((eq typ_collet "36")(nth 26 l_val))((eq typ_collet "37")(nth 27 l_val))) unit_draw) (* (nth 20 l_val) unit_draw))) (* (car l_val) 0.5 unit_draw) ) (command "_.extrude" (entlast) "" e1) ;;;; e1 -> epaisseur bride hors portée de joint (command "_.union" js_add (entlast) "") (setq js_add (ssadd) js_add (ssadd (entlast) js_add)) ;;;;;;; alésage bride ou collet (command "_.circle" "_none" pt_ins (cond ((eq typ_brd "LWN") (* 0.5 (- (nth 4 l_val) (* 2 (nth 21 l_val))) unit_draw)) ((eq typ_brd "COLLERETTE") (- (* 0.5 (nth 4 l_val) unit_draw) j)) ((eq typ_collet "34") (- (* 0.5 (nth 4 l_val) unit_draw) (* (nth 21 l_val) unit_draw))) ((eq typ_collet "35") (- (* 0.5 (nth 4 l_val) unit_draw) (* (nth 28 l_val) unit_draw))) ((eq typ_collet "36") (- (* 0.5 (nth 4 l_val) unit_draw) (* (nth 29 l_val) unit_draw))) ((eq typ_collet "37") (- (* 0.5 (nth 4 l_val) unit_draw) (* (nth 30 l_val) unit_draw))) (t (* 0.5 (nth 4 l_val) unit_draw)) ) ;;;; e1 -> epaisseur bride hors portée de joint ;;;; 0 1 2 3 4 5 6 7 8 9 F c1 12 13 14 15 16 17 18 19 20 21 22 H4 H4 25 26 27 28 29 30 ;;;; D K L nb A B1 c1 c2 c3 c4 c5 c6 h1 h2 h3 N1 N2 N3 B6 d1 f1 s11 F35 35 36 h5 F36 F37 s35 s36 s37 ) (command "_.extrude" (entlast) "" (+ e1 (if (eq typ_brd "TOURNANTE") (* (cond ((or (eq typ_collet "32")(eq typ_collet "34"))(nth 10 l_val))((eq typ_collet "35")(nth 22 l_val))((eq typ_collet "36")(nth 26 l_val))((eq typ_collet "37")(nth 27 l_val))) unit_draw) (* (nth 20 l_val) unit_draw)) ) ) (setq js_remove (ssadd (entlast) js_remove)) ;;; alesage complementaire pour bride sur collet "32" et "37" (if (or (eq typ_collet "32") (eq typ_collet "37")) (progn ;; environ (command "_.circle" "_none" (list (car pt_ins) (cadr pt_ins) (* (if (eq typ_collet "37")(nth 25 l_val) (nth 10 l_val)) unit_draw)) (* 0.5 (+ 5 (nth 4 l_val)) unit_draw)) (command "_.extrude" (entlast) "" e1) (setq js_remove (ssadd (entlast) js_remove)) ) ); if ) ; progn ;; si "TAMPON" (progn (command "_.circle" "_none" (list (car pt_ins) (cadr pt_ins) (* joint unit_draw)) (* (car l_val) 0.5 unit_draw)) (command "_.extrude" (entlast) "" e1) ;; e1 ayant la valeur c4 (setq js_add (ssadd) js_add (ssadd (entlast) js_add)) ) ) ; if ;; trous boulons (command "_.circle" "_none" (polar (list (car pt_ins) (cadr pt_ins) (cond ((eq typ_brd "TOURNANTE") (* (cond ((or (eq typ_collet "32")(eq typ_collet "34"))(nth 10 l_val))((eq typ_collet "35")(nth 22 l_val))((eq typ_collet "36")(nth 26 l_val))((eq typ_collet "37")(nth 27 l_val))) unit_draw)) ((eq typ_brd "TAMPON") (* joint unit_draw)) (t (* (nth 20 l_val) unit_draw)) ) ) (/ pi (cadddr l_val)) (* (cadr l_val) 0.5 unit_draw) ) (* (caddr l_val) 0.5 unit_draw) ) (command "_.extrude" (entlast) "" e1) (setq js_remove (ssadd (entlast) js_remove)) (setq e_name (entlast)) (command "_.array" (entlast) "" "_polar" "_none" pt_ins (cadddr l_val) "" "_yes") (while (setq e_name (entnext e_name)) (setq js_remove (ssadd e_name js_remove))) (command "_.subtract" js_add "" js_remove "") ;;; fin trous boulons ) (princ "\nPas de valeur dans base données pour ce type de bride") ) (if sv_dm (setvar "DYNMODE" sv_dm)) ;(cond (pt_ins (command "_ucs" "_p") (setq pf nil))) (repeat 2 (command "_ucs" "_p")) (setvar "delobj" delobjet) (command "_undo" "_e") (setq *error* m:err m:err nil) (setvar "CMDECHO" 1) (prin1) )
  16. Salut Voilà un premier jus pour les coudes en bloc, ça semble pas trop mal, il faut continuer à tester. La commande "CDB" (CouDe Bloc) et le code sont intégrés à tuy.lsp Le calo est toujours fonctionnel pour les coudes mais reste en solide 3d. Edit : version 6.1 ;; Tuyau 3d pour autocad à partir de la version 2007 ;; et avec ou sans calorifuge ;; Usegomme 5-2-2007 ;; commandes: TUY tuyau 3D, TSA tuyau sans axe, TU tube depuis axe, CDT coude seul et CD axe coude, CALOS seul depuis axe ou 2 points. ;; version 4 le 12-6-2011 ajout commande CDB pour relier 2 lignes par un coude en bloc avec attributs (pas de coude emboité) ;; version 5 le 01-7-2011 ajout commande TUB pour génèrer le tube en bloc avec attributs à partir de la ligne sélectionné ;; version 6 le 28-8-2011 ajout commande TUYCB et TSACB = TUY ou TSA avec coudes en bloc et attributs ;; version 6.1 correction bug sur division par 45 ;;; génère le tube en bloc à partir de l'axe sélectionné (defun c:TUB (/ sel typent ent ent1 pt eptub lga px p1 atdia epc tub1 af ht it tsize aat1 att2 att3 att4 att5 att6 att7 att8 nle lda) (diam-t3d) (if (> epcalo 0)(creercalquecalo)) (if (not tuy:ep) (setq tuy:ep 0)) (initget "Epaisseur Matiere") (while (setq sel (entsel (strcat "\nSélectionner l'AXE du TUBE ou [Epaisseur/Matiere] = "(rtos tuy:ep 2 4)" :"))) (cond ((= sel "Epaisseur") (setq eptub (getdist (strcat "\nEpaisseur tube ou 2 pts <" (rtos tuy:ep 2 4) ">: "))) (if eptub (if (< (abs eptub) ddia)(setq tuy:ep eptub))) ) ((= sel "Matiere")(setq tuy:mat (getstring T "\n Matière ?: "))) (t (setq typent (cdr (assoc 0 (entget (setq ent (car sel)))))) (cond ((= typent "LINE") (setq lga (distance (cdr (assoc 10 (entget ent)))(cdr (assoc 11 (entget ent))))) ; longueur axe (setq pt (trans (cdr (assoc 10 (entget ent))) 0 1)) (command "_ucs" "_non" pt "") (setq pt '(0. 0. 0.)) (setq px (trans (cdr (assoc 11 (entget ent))) 0 1)) (command "_ucs" "_non" pt "_non" px "") (setq p1 '(1. 0. 0.)) ;; ajout calorifuge si présent (if (> epcalo 0) (progn (generetube ent pt nil)(entdel tub3d))) ;; suppression de l'axe si: (if (and (= 2 (getvar "DELOBJ"))(= 0 epcalo)) (entdel ent)) ;;; nom du bloc (if (or (= tuy:ep nil) (<= tuy:ep 0.0)) (setq nomb (strcat "TUBE" "_""DN" (rtos dn 2 0) "_" norme )) (setq nomb (strcat "TUBE" "_""DN" (rtos dn 2 0) "_" norme "_Ep_" (rtos (fix tuy:ep) 2 0) (if (> tuy:ep (fix tuy:ep)) (strcat "_" (rtos (* 10 (- tuy:ep (fix tuy:ep))) 2 0)) "_0" )) ) ) ;;; recherche bloc dans dessin (if (tblsearch "block" nomb) (progn ;;;; insertion bloc (setq atdia (getvar "attdia")) (setvar "attdia" 1) (command "._-insert" nomb "X" lga "Y" 1 "Z" 1 "_non" '(0. 0. 0.) "0" ) (setvar "attdia" atdia) ) (progn ;;; création du solide (command "_line" "_non" pt "_non" p1 "")(setq ent1 (entlast)) (if (> epcalo 0) (setq epc epcalo epcalo 0) (setq epc 0)) (generetube ent1 pt nil) (setq tub1 (entlast)) (if (> 2 (getvar "DELOBJ")) (entdel ent1)) (if (> epc 0) (setq epcalo epc epc 0)) ;; création attributs (setq st (getvar "textstyle")) (setvar "textstyle" "standard") (setq tsize (getvar "textsize")) (setq af (getvar "aflags")) (setq ht (* 0.07 ddia )) ; hauteur texte (setq it (* 1.3 ht)) ; intervale ligne texte (setvar "aflags" 9) ;;; prédéfini et invisible (command "._-attdef" "" "POUCE" "POUCE" (if pouce pouce "") "_non" '(0. 0. 0.) ht "0") (setq att1 (entlast)) (command "._-attdef" "" "DN" "DN" (rtos dn 2 0) "_non" (polar '(0. 0. 0.)(* 1.5 pi)(+ it ht)) ht "0") (setq att2 (entlast)) (command "._-attdef" "" "NORME" "NORME" norme "_non" (polar '(0. 0. 0.)(* 1.5 pi)(* 2 (+ it ht))) ht "0") (setq att3 (entlast)) (command "._-attdef" "" "MATIERE" "MATIERE" "" "_non" (polar '(0. 0. 0.)(* 1.5 pi)(* 3 (+ it ht))) ht "0") (setq att4 (entlast)) (command "._-attdef" "" "EP" "EP" (if (or (= tuy:ep nil) (<= tuy:ep 0.0)) "" (rtos (abs tuy:ep) 2 1)) "_non" (polar '(0. 0. 0.)(* 1.5 pi)(* 4 (+ it ht))) ht "0") (setq att5 (entlast)) (command "._-attdef" "" "LONG" "LONG" "" "_non" (polar '(0. 0. 0.)(* 1.5 pi)(* 5 (+ it ht))) ht "0") (setq att6 (entlast)) (command "._-attdef" "" "FLUIDE" "FLUIDE" "" "_non" (polar '(0. 0. 0.)(* 1.5 pi)(* 6 (+ it ht))) ht "0") (setq att7 (entlast)) (command "._-attdef" "" "REPERE" "REPERE" "" "_non" (polar '(0. 0. 0.)(* 1.5 pi)(* 7 (+ it ht))) ht "0") (setq att8 (entlast)) ;;;; création bloc (command "._-block" nomb "_non" '(0. 0. 0.) att1 att2 att3 att4 att5 att6 att7 att8 tub3d "") ;;;; insertion bloc (setq atdia (getvar "attdia")) (setvar "attdia" 1) (command "._-insert" nomb "X" lga "Y" 1 "Z" 1 "_non" '(0. 0. 0.) "0" ) (setvar "attdia" atdia) ) ) ;;; (if (tblsearch "block" ;;; mise à jour attributs variables ;;;;;;;; matière ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (cond (tuy:mat (setq nle (entlast)) ; nom logique entité (while (and (/= (cdr (assoc 2 (setq lda (entget (setq nle (entnext nle)))))) "MATIERE") (/= "SEQEND" (cdr (assoc 0 lda))) ) ) (setq lda (subst (cons 1 tuy:mat) (assoc 1 lda) lda)) ;liste données attribut (entmod lda) (entupd nle) ;attribut matiere mise à jour )) ;;;;;;; si épaisseur négative , lorsqu' on ne veut pas qu'elle soit représentée. (cond ((and tuy:ep (< tuy:ep 0)) (setq nle (entlast)) ; nom logique entité (while (and (/= (cdr (assoc 2 (setq lda (entget (setq nle (entnext nle)))))) "EP") (/= "SEQEND" (cdr (assoc 0 lda))) ) ) (setq lda (subst (cons 1 (rtos (abs tuy:ep)2 1)) (assoc 1 lda) lda)) ;liste données attribut (entmod lda) (entupd nle) ;attribut épaisseur mise à jour )) ;;;;;;;; longueur du tube ;;;;;;;;;;;; (cond (lga (setq nle (entlast)) ; nom logique entité (while (and (/= (cdr (assoc 2 (setq lda (entget (setq nle (entnext nle)))))) "LONG") (/= "SEQEND" (cdr (assoc 0 lda))) ) ) (setq lda (subst (cons 1 (rtos lga 2 2)) (assoc 1 lda) lda)) ;liste données attribut (entmod lda) (entupd nle) ;attribut LONG mise à jour )) ;;;;;;;;;;;;;;;;;;;;;;;;;;;; (repeat 2 (command "_ucs" "_p")) );;; = typent "LINE" ) ;; cond ) ) ;; cond ) ; w (gc) (princ) ) ;; pour raccorder 2 axes et tracer un coude de tuy sauf emboitements, en bloc avec attributs (defun c:cdb (/ lo coude mtrim nomb sel s ok erreurcdb) (defun erreurcdb (msg) (if (not (zerop (getvar "cmdactive")))(command)) (setq *error* er:cdb er:cdb nil) (princ) ) (setq er:cdb *error* *error* erreurcdb) (diam-t3d) (if (> epcalo 0)(creercalquecalo)) (setq mtrim (getvar "trimmode")) (setvar "FILLETRAD" rayo) (setvar "trimmode" 1) (setq coude T ok 0) (while (and (= ok 0)(not (equal coude (setq lo (entlast))))) (command "_fillet") (while (< ok 2) (setq s 0) (initget "Epaisseur Matiere") (while (and (not (setq sel (entsel "\nSélectionnez l'Axe du tube ou [Epaisseur/Matiere] :"))) (< s 0 ; <---- nombre de sélection manquée autorisée de 0 à n **************** )) (setq s (1+ s)) ) (if sel (cond ((= sel "Epaisseur") (setq s 0) (if (not tuy:ep) (setq tuy:ep 0)) (setq eptub (getdist (strcat "\nEpaisseur tube ou 2 pts <" (rtos tuy:ep 2 4) ">: "))) (if eptub (setq tuy:ep eptub)) (while (>= (abs tuy:ep) ddia) (initget 1) (setq tuy:ep (getdist (strcat "\n*** Epaisseur "(rtos tuy:ep 2 4)" INCORRECTE *** Nouvelle Epaisseur : "))) ) ) ((= sel "Matiere")(setq s 0)(setq tuy:mat (getstring T "\n Matière ?: "))) ((or (= (cdr (assoc 0 (entget (car sel)))) "LINE") (= (cdr (assoc 0 (entget (car sel)))) "XLINE") (= (cdr (assoc 0 (entget (car sel)))) "RAY") ) (setq ok (1+ ok))(command sel) ) (t (setq s 0)(prompt " LIGNE UNIQUEMENT")) ) (setq ok 3) ) ); w 2 (cond ((and (< ok 3)(not (equal lo (setq coude (entlast))))) (setq ok 0) (coudbloc coude)) (t (command)) ) ) ; w 1 (setvar "trimmode" mtrim) (setq *error* er:cdb er:cdb nil) (princ) (princ nomb) (prin1) ) (defun coudbloc (coude / pt acd atdia ht it tsize af st att1 att2 att3 att4 att5 att6 epc a50 a51 pt1scg pt2scg pt3scg ) ;;pt1 pt2 pt3 avec tuycb , tsacb (cond ((and epemboit pt1 pt2 pt3) (setq pt1scg (trans pt1 1 0) pt2scg (trans pt2 1 0) pt3scg (trans pt3 1 0) acd (- 180 at))) ((and pt1 pt2 pt3) (setq acd (- 180 at))) (t ;; pour cdb (if (> (setq a51 (* (cdr (assoc 51 (entget coude))) (/ 180 pi))) (setq a50 (* (cdr (assoc 50 (entget coude))) (/ 180 pi)))) (setq acd (- a51 a50)) (setq acd (+ (- 360 a50) a51)) ) ) ) (command "_ucs" "_E" coude) (setq pt (trans (cdr (assoc 10 (entget coude))) 0 1)) (if (and epemboit pt1 pt2 pt3) (setq pt1 (trans pt1scg 0 1) pt2 (trans pt2scg 0 1) pt3 (trans pt3scg 0 1))) (if (or (= tuy:ep nil) (<= tuy:ep 0.0)) (setq nomb (strcat "COUDE" "_" (rtos acd 2 2) "°" "_""DN" (rtos dn 2 0) "_" norme )) (setq nomb (strcat "COUDE" "_" (rtos acd 2 2) "°" "_""DN" (rtos dn 2 0) "_" norme "_Ep_" (rtos (fix tuy:ep) 2 0) (if (> tuy:ep (fix tuy:ep)) (strcat "_" (rtos (* 10 (- tuy:ep (fix tuy:ep))) 2 0)) "_0" )) ) ) ;; ajout calorifuge si présent (if (> epcalo 0) (progn (generetube coude pt 1) (entdel cd3d))) (if (tblsearch "block" nomb) ;; recherche bloc dans dessin (progn ;;;; insertion bloc (setq atdia (getvar "attdia")) (setvar "attdia" 1) (command "._-insert" nomb "_non" '(0. 0. 0.) "" "" "0" ) (setvar "attdia" atdia) ) (progn (if (> epcalo 0) (setq epc epcalo epcalo 0) (setq epc 0)) (generetube coude pt 1) (if (> epc 0) (setq epcalo epc epc 0)) ;; création attributs (setq st (getvar "textstyle")) (setvar "textstyle" "standard") (setq tsize (getvar "textsize")) (setq af (getvar "aflags")) (setq ht (* 0.07 ddia )) ; hauteur texte (setq it (* 1.3 ht)) ; intervale ligne texte tuy:ep (setvar "aflags" 9) ;;; prédéfini et invisible (command "._-attdef" "" "TYPE" "TYPE" (strcat "COUDE" " " (rtos acd 2 2) "°") "_non" '(0. 0. 0.) ht "0") (setq att1 (entlast)) (command "._-attdef" "" "DN" "DN" (rtos dn 2 0) "_non" (polar '(0. 0. 0.)(* 1.5 pi)(+ it ht)) ht "0") (setq att2 (entlast)) (command "._-attdef" "" "NORME" "NORME" norme "_non" (polar '(0. 0. 0.)(* 1.5 pi)(* 2 (+ it ht))) ht "0") (setq att3 (entlast)) (command "._-attdef" "" "MATIERE" "MATIERE" "" "_non" (polar '(0. 0. 0.)(* 1.5 pi)(* 3 (+ it ht))) ht "0") (setq att4 (entlast)) (command "._-attdef" "" "EP" "EP" (if (or (= tuy:ep nil) (<= tuy:ep 0.0)) "" (rtos (abs tuy:ep) 2 1)) "_non" (polar '(0. 0. 0.)(* 1.5 pi)(* 4 (+ it ht))) ht "0") (setq att5 (entlast)) (command "._-attdef" "" "FLUIDE" "FLUIDE" "" "_non" (polar '(0. 0. 0.)(* 1.5 pi)(* 5 (+ it ht))) ht "0") (setq att6 (entlast)) (command "._-attdef" "" "REPERE" "REPERE" "" "_non" (polar '(0. 0. 0.)(* 1.5 pi)(* 6 (+ it ht))) ht "0") (setq att7 (entlast)) ;;;; creation bloc (command "._-block" nomb "_non" '(0. 0. 0.) att1 att2 att3 att4 att5 att6 att7 cd3d "") ;;;; insertion bloc (setq atdia (getvar "attdia")) (setvar "attdia" 1) (command "._-insert" nomb "_non" '(0. 0. 0.) "" "" "0" ) (setvar "attdia" atdia) (setvar "aflags" af) (setvar "textsize" tsize ) (setvar "textstyle" st) ) ;;; progn ) ;;if ;;;;;;;; matière ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (cond (tuy:mat (setq nle (entlast)) ; nom logique entité (while (and (/= (cdr (assoc 2 (setq lda (entget (setq nle (entnext nle)))))) "MATIERE") (/= "SEQEND" (cdr (assoc 0 lda))) ) ) (setq lda (subst (cons 1 tuy:mat) (assoc 1 lda) lda)) ;liste données attribut (entmod lda) (entupd nle) ;attribut matiere mise à jour )) ;;;;;;; si épaisseur négative , lorsqu' on ne veut pas qu'elle soit représentée. (cond ((and tuy:ep (< tuy:ep 0)) (setq nle (entlast)) ; nom logique entité (while (and (/= (cdr (assoc 2 (setq lda (entget (setq nle (entnext nle)))))) "EP") (/= "SEQEND" (cdr (assoc 0 lda))) ) ) (setq lda (subst (cons 1 (rtos (abs tuy:ep)2 1)) (assoc 1 lda) lda)) ;liste données attribut (entmod lda) (entupd nle) ;attribut épaisseur mise à jour )) (command "_ucs" "_p") ) (defun choixnorme (/ sv_dm dm ) (setq sv_dm (getvar "DYNMODE")) (cond ((< sv_dm 0) (setq dm (* sv_dm -1)) (setvar "DYNMODE" dm)) (t (setq sv_dm nil dm nil)) ) (initget 1 "ISO3D ISO5D INOX-VIS 3000Lbs-VIS PE-PP-EMB PVC-PRESSION PVC-ECOUL CINTRE-SGN") ;;;; bit refus reponse nulle (setq norme (getkword "\nChoisir une Norme [iSO3D/ISO5D/INOX-VIS/3000Lbs-VIS/PE-PP-EMB/PVC-PRESSION/PVC-ECOUL/CINTRE-SGN] : ")) (if sv_dm (setvar "DYNMODE" sv_dm)) ) (Defun getDNtuy( a b d e f g / c) ;(setq c (strcat a d g "<" b ">" e f " ")) ; (setq c (strcat a d g "<" b ">" " ")) (setq c (strcat a g "<" b ">" " ")) (setq c (getreal c)) ) (defun diam-t3d (/ diam d B) ;; dn (setq dn "Norme" epcd 0 emboit 0 EPemboit nil L90 nil L45 nil L30 nil L20 nil ecart 0) (if (not norme) (setq norme "ISO3D")) ;; par defaut (if (not epcalo)(setq epcalo 0)) ;; par defaut (while (or(= dn "Norme")(= dn "Calo")) (if (> epcalo 0) (setq msgcalo " CALO ep" msgecalo (rtos epcalo 2 0)) (setq msgcalo " Sans" msgecalo " calo") ) (cond ((= norme "ISO3D") (setq msgdn " DN:") (if (and (/= iso3d:dn "Autre")(/= iso3d:dn nil)) (setq dn (rtos iso3d:dn 2 0)) (setq dn "Autre") ) (setq choixdn (strcat "\n " norme msgcalo msgecalo msgdn "[Norme/Calo/8/10/15/21/20/25/32/40/50/65/80/100/125/150/200/250/300/350/400/450/500/600/Autre]") ) ) ((= norme "CINTRE-SGN") (setq msgdn " DN:") (if (and (/= CINTRE-SGN:dn "Autre")(/= CINTRE-SGN:dn nil)) (setq dn (rtos CINTRE-SGN:dn 2 0)) (setq dn "Autre") ) (setq choixdn (strcat "\n " norme msgcalo msgecalo msgdn "[Norme/Calo/8/10/15/20/25/32/40/Autre]") ) ) ((= norme "ISO5D") (setq msgdn " DN:") (if (and (/= iso5d:dn "Autre")(/= iso5d:dn nil)) (setq dn (rtos iso5d:dn 2 0))(setq dn "Autre") ) (setq choixdn (strcat "\n " norme msgcalo msgecalo msgdn "[Norme/Calo/20/25/32/40/50/65/80/100/125/150/200/250/300/350/Autre]") ) ) ((= norme "INOX-VIS") (setq msgdn " DN:") (if (and (/= inox-vis:dn "Autre")(/= inox-vis:dn nil)) (setq dn (rtos inox-vis:dn 2 0)) (setq dn (rtos 25 2 0) inox-vis:dn 25) ) (setq choixdn (strcat "\n " norme msgcalo msgecalo msgdn "[Norme/Calo/6/8/10/15/20/25/32/40/50/65/80]") ) ) ((= norme "3000Lbs-VIS") (setq msgdn " DN:") (if (and (/= 3000Lbs-VIS:dn "Autre")(/= 3000Lbs-VIS:dn nil)) (setq dn (rtos 3000Lbs-VIS:dn 2 0)) (setq dn (rtos 50 2 0) 3000Lbs-VIS:dn 50) ) (setq choixdn (strcat "\n " norme msgcalo msgecalo msgdn "[Norme/Calo/6/8/10/15/20/25/32/40/50/65/80]") ) ) ((= norme "PE-PP-EMB") (setq msgdn " DN:") (if (and (/= PE-PP-EMB:dn "Autre")(/= PE-PP-EMB:dn nil)) (setq dn (rtos PE-PP-EMB:dn 2 0)) (setq dn (rtos 50 2 0) PE-PP-EMB:dn 50) ) (setq choixdn (strcat "\n " norme msgcalo msgecalo msgdn "[Norme/Calo/10/15/20/25/32/40/50/65/80/100]") ) ) ((= norme "PVC-PRESSION") (setq msgdn " Diam:") (if (and (/= PVC-P:dn "Autre")(/= PVC-P:dn nil)) (setq dn (rtos PVC-P:dn 2 0)) (setq dn (rtos 50 2 0) PVC-P:dn 50) ) (setq choixdn (strcat "\n " norme msgcalo msgecalo msgdn "[Norme/Calo/6/8/10/12/16/20/25/32/40/50/63/75/90/110/125/140/160/200/225/250]") ) ) ((= norme "PVC-ECOUL") (setq msgdn " Diam:") (if (and (/= PVC-ECOUL:dn "Autre")(/= PVC-ECOUL:dn nil)) (setq dn (rtos PVC-ECOUL:dn 2 0)) (setq dn (rtos 40 2 0) PVC-ECOUL:dn 40) ) (setq choixdn (strcat "\n " norme msgcalo msgecalo msgdn "[Norme/Calo/32/40/50/63/75/80/90/100/110/125/140/160/200/250/315]") ) ) ) ;; fin cond (initget "Autre Norme Calo") (setq dn (getDNtuy choixdn dn norme msgcalo msgecalo msgdn )) (if (= dn "Norme") (choixnorme)) (if (= dn "Calo") (if (setq epc (getdist (strcat "\nEpaisseur calo ou 2 pts <" (rtos epcalo 2 0) ">: "))) (setq epcalo epc epc nil) ) ) ) ;; while dn= norme (cond ((= norme "ISO3D") (cond ((and (/= dn "A") (/= dn nil))(setq iso3d:dn dn)) ((= dn nil) (if iso3d:dn (setq dn iso3d:dn))) ) (cond ((= dn 8) (setq diam 13.5 rayo 20 pouce "1/8")) ((= dn 10) (setq diam 17.2 rayo 25 pouce "1/4" )) ((= dn 15) (setq diam 21.3 rayo 28 pouce "1/2" )) ;27 ((= dn 21) (setq diam 21.3 rayo 38 pouce "1/2" )) ; dn15 inox ((= dn 20) (setq diam 26.9 rayo 28.5 pouce "3/4")) ((= dn 25) (setq diam 33.7 rayo 38 pouce "1")) ((= dn 32) (setq diam 42.4 rayo 47.5 pouce "1 1/4")) ((= dn 40) (setq diam 48.3 rayo 57 pouce "1 1/2")) ((= dn 50) (setq diam 60.3 rayo 76 pouce "2")) ((= dn 65) (setq diam 76.1 rayo 95 pouce "2 1/2")) ((= dn 80) (setq diam 88.9 rayo 114.5 pouce "3")) ((= dn 100)(setq diam 114.3 rayo 152.5 pouce "4")) ((= dn 125) (setq diam 139.7 rayo 190.5 pouce "5")) ((= dn 150) (setq diam 168.3 rayo 228.5 pouce "6")) ((= dn 200) (setq diam 219.1 rayo 305 pouce "8")) ((= dn 250) (setq diam 273 rayo 381 pouce "10")) ((= dn 300) (setq diam 323.9 rayo 457 pouce "12")) ((= dn 350) (setq diam 355.6 rayo 533.5 pouce "14")) ((= dn 400) (setq diam 406.4 rayo 609.5 pouce "16")) ((= dn 450) (setq diam 458 rayo 686 pouce "18")) ((= dn 500) (setq diam 508 rayo 762 pouce "20")) ((= dn 600) (setq diam 610 rayo 914 pouce "24")) (t (autrediametre) ) ) ) ((= norme "CINTRE-SGN") ;;;; cintrage tube d'après un document SGN (cond ((and (/= dn "A") (/= dn nil))(setq CINTRE-SGN:dn dn)) ((= dn nil) (if CINTRE-SGN:dn (setq dn CINTRE-SGN:dn))) ) (cond ((= dn 8) (setq diam 13.5 rayo 70 )) ((= dn 10) (setq diam 17.2 rayo 90 )) ((= dn 15) (setq diam 21.3 rayo 110 )) ((= dn 20) (setq diam 26.9 rayo 135)) ((= dn 25) (setq diam 33.7 rayo 170)) ((= dn 32) (setq diam 42.4 rayo 215)) ((= dn 40) (setq diam 48.3 rayo 245)) (t (autrediametre) ) ) (setq ecart 110) ;;; longueur droite entre 2 courbes ) ((= norme "ISO5D") (cond ((and (/= dn "A") (/= dn nil))(setq iso5d:dn dn)) ((= dn nil) (if iso5d:dn (setq dn iso5d:dn))) ) (cond ((= dn 20) (setq diam 26.9 rayo 57.5 pouce "3/4")) ((= dn 25) (setq diam 33.7 rayo 72.5 pouce "1")) ((= dn 32) (setq diam 42.4 rayo 92.5 pouce "1 1/4")) ((= dn 40) (setq diam 48.3 rayo 109.5 pouce "1 1/2")) ((= dn 50) (setq diam 60.3 rayo 137.5 pouce "2")) ((= dn 65) (setq diam 76.1 rayo 175 pouce "2 1/2")) ((= dn 80) (setq diam 88.9 rayo 207.5 pouce "3")) ((= dn 100) (setq diam 114.3 rayo 270 pouce "4")) ((= dn 125) (setq diam 139.7 rayo 330 pouce "5")) ((= dn 150) (setq diam 168.3 rayo 390 pouce "6")) ((= dn 200) (setq diam 219.1 rayo 515 pouce "8")) ((= dn 250) (setq diam 273 rayo 650 pouce "10")) ((= dn 300) (setq diam 323.9 rayo 770 pouce "12")) ((= dn 350) (setq diam 355.6 rayo 850 pouce "14")) (t (autrediametre) ) ) ) ((= norme "INOX-VIS") (cond ((and (/= dn "A") (/= dn nil))(setq inox-vis:dn dn)) ((= dn nil) (if inox-vis:dn (setq dn inox-vis:dn))) ) (cond ;; d diametre ext coude ((= dn 6) (setq diam 10.2 L90 19 d 14.5)) ((= dn 8) (setq diam 13.5 L90 21 d 17.5)) ((= dn 10) (setq diam 17.2 L90 25 d 21.5)) ((= dn 15) (setq diam 21.3 L90 28 d 27)) ((= dn 20) (setq diam 26.9 L90 33 d 33.5)) ((= dn 25) (setq diam 33.7 L90 38 d 40.5)) ((= dn 32) (setq diam 42.4 L90 45 d 50)) ((= dn 40) (setq diam 48.3 L90 50 d 57)) ((= dn 50) (setq diam 60.3 L90 58 d 70)) ((= dn 65) (setq diam 76.1 L90 75 d 86)) ((= dn 80) (setq diam 88.9 L90 85 d 100)) (t (autrediametre) ) ) (setq epcd (* (- d diam) 0.5)) ; epaisseur coude (setq rayo (+ (* diam 0.5) epcd 1) emboit (- l90 rayo) epemboit epcd) ) ((= norme "3000Lbs-VIS") (cond ((and (/= dn "A") (/= dn nil))(setq 3000Lbs-VIS:dn dn)) ((= dn nil) (if 3000Lbs-VIS:dn (setq dn 3000Lbs-VIS:dn))) ) (cond ;;;; b = diametre "manchon" ((= dn 8) (setq diam 13.5 L90 24.5 l45 22 b 26.5)) ((= dn 10) (setq diam 17.2 L90 28.5 l45 22 b 34)) ((= dn 15) (setq diam 21.3 L90 33.5 l45 25 b 38.5)) ((= dn 20) (setq diam 26.9 L90 38 l45 28.5 b 46.5)) ((= dn 25) (setq diam 33.7 L90 44.5 l45 33.5 b 56.5)) ((= dn 32) (setq diam 42.4 L90 51 l45 38 b 62.5)) ((= dn 40) (setq diam 48.3 L90 60.5 l45 41.5 b 76)) ((= dn 50) (setq diam 60.3 L90 63.5 l45 50.5 b 92)) ((= dn 65) (setq diam 76.1 L90 82.5 l45 63.5 b 110)) ((= dn 80) (setq diam 88.9 L90 95.5 l45 63.5 b 122)) ((= dn 100)(setq diam 114.3 L90 114.5 l45 80 b 152)) (t (autrediametre) ) ) (setq epcd (* (- b diam) 0.25)) ;; ep coude = moitie epaisseur manchon ?.. (setq rayo (+ (* diam 0.5) epcd 1) emboit (- l90 rayo) epemboit (* 2 epcd)) ) ((= norme "PE-PP-EMB") (cond ((and (/= dn "A") (/= dn nil))(setq PE-PP-EMB:dn dn)) ((= dn nil) (if PE-PP-EMB:dn (setq dn PE-PP-EMB:dn))) ) (cond ;;;; d= diametre ext coudes ((= dn 10) (setq diam 16 L90 25 L45 20 d 26)) ((= dn 15) (setq diam 20 L90 28 L45 21 d 30.5)) ((= dn 20) (setq diam 25 L90 32 L45 24 d 36)) ((= dn 25) (setq diam 32 L90 38 L45 28 d 43.5)) ((= dn 32) (setq diam 40 L90 44 L45 33 d 53.5)) ((= dn 40) (setq diam 50 L90 51 L45 36 d 66)) ((= dn 50) (setq diam 63 L90 62 L45 43 d 82)) ((= dn 65) (setq diam 75 L90 75.5 L45 51 d 92.5)) ((= dn 80) (setq diam 90 L90 88 L45 58 d 110)) ((= dn 100) (setq diam 110 L90 106 L45 68 d 134)) (t (autrediametre) ) ) (setq epcd (* (- d diam) 0.5)) ; ep coude (setq rayo (+ (* diam 0.5) epcd 1) emboit (- l90 rayo) epemboit epcd ecart 5) ) ((= norme "PVC-PRESSION") (cond ((and (/= dn "A") (/= dn nil))(setq PVC-P:dn dn)) ((= dn nil) (if PVC-P:dn (setq dn PVC-P:dn))) ) (cond ;;;; D diam ext coude ((= dn 6) (setq diam dn L90 16 D 11)) ((= dn 8) (setq diam dn L90 17 D 13)) ((= dn 10) (setq diam dn L90 18 D 14)) ((= dn 12) (setq diam dn L90 19 D 17)) ((= dn 16) (setq diam dn L90 23 L45 18.5 D 21)) ((= dn 20) (setq diam dn L90 27 L45 21 D 25)) ((= dn 25) (setq diam dn L90 33 L45 25 D 30.5)) ((= dn 32) (setq diam dn L90 39 L45 30 D 38.2)) ((= dn 40) (setq diam dn L90 49 L45 36 D 47.2)) ((= dn 50) (setq diam dn L90 57 L45 42.5 D 58.5)) ((= dn 63) (setq diam dn L90 71 L45 52 D 73.4)) ((= dn 75) (setq diam dn L90 83 L45 60.5 D 87.2)) ((= dn 90) (setq diam dn L90 97 L45 70.5 D 105)) ((= dn 110) (setq diam dn L90 116 L45 86 D 127)) ((= dn 125) (setq diam dn L90 172 L45 97 D 146.2)) ((= dn 140) (setq diam dn L90 146 L45 108 D 162)) ((= dn 160) (setq diam dn L90 166 L45 122 D 185)) ((= dn 200) (setq diam dn L90 207 L45 149 D 225.2)) ((= dn 225) (setq diam dn L90 233 L45 168 D 250)) ((= dn 250) (setq diam dn L90 263 L45 191.5 D 282)) (t (autrediametre) ) ) (setq epcd (* (- d diam) 0.5)) ;; ep coude (setq rayo (+ (* diam 0.5) epcd 1) emboit (- L90 rayo) epemboit epcd ecart 5) ) ((= norme "PVC-ECOUL") (cond ((and (/= dn "A") (/= dn nil))(setq PVC-ECOUL:dn dn)) ((= dn nil) (if PVC-ECOUL:dn (setq dn PVC-ECOUL:dn))) ) (cond ;;;; L87 longueur pour coude 87.5° ((= dn 32) (setq diam dn L87 48 L45 34 emboit 23)) ;; +3 ((= dn 40) (setq diam dn L87 58 L45 40 L30 38 L20 33.5 emboit 27)) ((= dn 50) (setq diam dn L87 71 L45 49 emboit 32)) ((= dn 63) (setq diam dn L87 86.5 L45 59.5 emboit 38.5)) ((= dn 75) (setq diam dn L87 101.5 L45 69.5 emboit 44.5)) ((= dn 80) (setq diam dn L87 108 L45 73.5 emboit 47)) ((= dn 90) (setq diam dn L87 121 L45 82 emboit 52)) ((= dn 100) (setq diam dn L87 134 L45 90 emboit 61)) ((= dn 110) (setq diam dn L87 145 L45 97 emboit 61)) ((= dn 125) (setq diam dn L87 157 L45 102 emboit 61)) ((= dn 140) (setq diam dn L87 168 L45 107 emboit 61)) ((= dn 160) (setq diam dn L87 183 L45 114 emboit 61)) ((= dn 200) (setq diam dn L87 214 L45 127 emboit 61)) ((= dn 250) (setq diam dn L87 225 L45 145 emboit 61)) ((= dn 315) (setq diam dn L87 309 L45 210 emboit 124)) (t (autrediametre) ) ) (setq L90 (/ (- (* L87 45)(* L45 2.5)) 42.5)) ;; 90-87.5=2.5 et 45-2.5=42.5 (setq rayo (- L90 emboit) epemboit 2 epcd 0 ecart 5) ;;; ecart = ecartement mini entre 2 embouts de coude ) ) ; fin cond dn suivant norme (setq ddia (/ diam 2)) (if (not (> rayo (+ ddia epcd))) (setq rayo (* (+ ddia epcd) 1.01))) (if tuy:ep (while (>= (abs tuy:ep) ddia) (initget 1) (setq tuy:ep (getdist (strcat "\n*** Epaisseur "(rtos tuy:ep 2 4)" INCORRECTE *** Nouvelle Epaisseur : "))) ) ) ) (defun autrediametre () (setq epcd 0) (if (not tuy:dia)(if ddia (setq tuy:dia (* ddia 2))(setq tuy:dia 8))) (setq diam (getdist (strcat "\nDiametre Exterieur Tuyauterie ou 2 pts <" (rtos tuy:dia 2 4) ">: "))) (if diam (setq tuy:dia diam) (setq diam tuy:dia)) (if (not tuy:ray)(setq tuy:ray diam)) (setq rayo (getdist (strcat "\nRayon coude ou 2 pts <" (rtos tuy:ray 2 4) ">: "))) (if rayo (setq tuy:ray rayo) (setq rayo tuy:ray)) ) (defun tubage (ent typ / lent) ;change proprietes de l'axe (setq lent (entget ent)) ;; si le code 62 pour la couleur est présent ... (if (assoc 62 lent) ;; ... le remplacer par un nouveau (setq lent (subst (cons 62 6) ;;Nouvelle couleur magenta (assoc 62 lent) lent) ) ;; sinon, en ajouter un (setq lent (append lent (list (cons 62 6)))) ;; magenta ) ;; idem pour type de ligne (if (assoc 6 lent) (setq lent (subst (cons 6 "AXES2") (assoc 62 lent) lent) ) (setq lent (append lent (list (cons 6 "AXES2")))) ) (entmod lent) (setq pt (trans (cdr (assoc 10 (entget ent))) 0 1)) ;; modification pour tuyb (cond ((and (= cdblc 1) (= typ 1)) (coudbloc ent)) (t (generetube ent pt typ)) ) ) (defun tubage1 (ent typ / lent) ;;; N'EST PAS UTILISE ;change le calque de l'axe ; (setq calqax (strcat (getvar "clayer") "-AXE")) ; defini dans c:tuy (setq lent (entget ent)) ; change le calque (setq lent (subst (cons 8 calqax) (assoc 8 lent) lent) ) (entmod lent) (setq pt (trans (cdr (assoc 10 (entget ent))) 0 1)) (generetube ent pt typ) ) (defun generetube (ent pt typ / circonftuy) (if (or (= tuy:ep nil) (<= tuy:ep 0.0)) (progn (command "_circle" "_none" pt) (if (= typ 1) (command (+ ddia epcd)) (command ddia)) (if (= 0 (getvar "delobj"))(setq circonftuy (entlast))(setq circonftuy nil)) (command "_sweep" "_L" "" ent) ;; balayage (if (= typ 1) (setq cd3d (entlast) tub3d nil)(setq cd3d nil tub3d (entlast))) (if circonftuy (entdel circonftuy)) (if (> epcalo 0) (progn (if (= 2 (getvar "delobj"))(entdel ent)) (if (= (cdr (assoc 0 (setq lent (entget ent)))) "ARC") (if (> (cdr (assoc 40 lent)) (+ ddia epcalo)) (if (< tuy:ep 0.0)(calocreux ent pt)(caloplein ent pt)) ) (if (< tuy:ep 0.0)(calocreux ent pt)(caloplein ent pt)) ) ) ) ) (progn (command "_circle" "_none" pt) (if (= typ 1) (command (+ ddia epcd)) (command ddia)) (if (= 0 (getvar "delobj"))(setq circonftuy (entlast))(setq circonftuy nil)) (command "_sweep" "_L" "" ent) (if (= 2 (getvar "delobj"))(entdel ent)) (if circonftuy (entdel circonftuy)) (setq tubext (entlast)) (command "_circle" "_none" pt (- ddia tuy:ep)) (if (= 0 (getvar "delobj"))(setq circonftuy (entlast))(setq circonftuy nil)) (command "_sweep" "_L" "" ent) (if circonftuy (entdel circonftuy)) (command "_subtract" tubext "" "_L" "") (if (= typ 1) (setq cd3d (entlast) tub3d nil)(setq cd3d nil tub3d (entlast))) (if (> epcalo 0) (progn (if (= 2 (getvar "delobj"))(entdel ent)) (if (= (cdr (assoc 0 (setq lent (entget ent)))) "ARC") (if (> (cdr (assoc 40 lent)) (+ ddia epcalo))(calocreux ent pt)) (calocreux ent pt) ) ) ) ) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; embcdf ; embout coude femelle (if (and cd3d epemboit pt1 pt2 pt3) (embcdf)) ) (defun embcdf (/ lgt ptn ent circonftuy tubext cd3) (setq lgt (+ dmin emboit)) (redefsommet pt2 pt1 lgt) (setq ptn sbn) (redefsommet ptn pt2 emboit) (command "_line" "_none" ptn "_none" sbn "") (setq ent (entlast)) (command "_circle" "_none" sbn) (command (+ ddia epemboit)) (if (= 0 (getvar "delobj"))(setq circonftuy (entlast))(setq circonftuy nil)) (command "_sweep" "_L" "" ent) (if (= 2 (getvar "delobj"))(entdel ent)) (if circonftuy (entdel circonftuy)) (setq tubext (entlast)) (command "_circle" "_none" sbn ddia) (if (= 0 (getvar "delobj"))(setq circonftuy (entlast))(setq circonftuy nil)) (command "_sweep" "_L" "" ent) (if (/= 2 (getvar "delobj"))(entdel ent)) (if circonftuy (entdel circonftuy)) (command "_subtract" tubext "" "_L" "") (command "_.union" cd3d (entlast) "") (setq cd3 (entlast)) (redefsommet pt2 pt3 lgt) (setq ptn sbn) (redefsommet ptn pt2 emboit) (command "_line" "_none" ptn "_none" sbn "") (setq ent (entlast)) (command "_circle" "_none" sbn) (command (+ ddia epemboit)) (if (= 0 (getvar "delobj"))(setq circonftuy (entlast))(setq circonftuy nil)) (command "_sweep" "_L" "" ent) (if (= 2 (getvar "delobj"))(entdel ent)) (if circonftuy (entdel circonftuy)) (setq tubext (entlast)) (command "_circle" "_none" sbn ddia) (if (= 0 (getvar "delobj"))(setq circonftuy (entlast))(setq circonftuy nil)) (command "_sweep" "_L" "" ent) (if (/= 2 (getvar "delobj"))(entdel ent)) (if circonftuy (entdel circonftuy)) (command "_subtract" tubext "" "_L" "") (command "_.union" cd3 (entlast) "") ) (defun caloplein (ent pt / circonftuy lent) (command "_circle" "_none" pt(+ ddia epcalo)) (if (= 0 (getvar "delobj"))(setq circonftuy (entlast))(setq circonftuy nil)) (command "_sweep" "_L" "" ent) ;; balayage (if circonftuy (entdel circonftuy)) (setq lent (entget (entlast))) ; calo (setq lent (subst (cons 8 calqcalo) (assoc 8 lent) lent) ) (entmod lent) ) (defun calocreux (ent pt / circonftuy lent) (command "_circle" "_none" pt(+ ddia epcalo)) (if (= 0 (getvar "delobj"))(setq circonftuy (entlast))(setq circonftuy nil)) (command "_sweep" "_L" "" ent) ;; balayage (if (= 2 (getvar "delobj"))(entdel ent)) (if circonftuy (entdel circonftuy)) (setq tubext (entlast)) (command "_circle" "_none" pt ddia) (if (= 0 (getvar "delobj"))(setq circonftuy (entlast))(setq circonftuy nil)) (command "_sweep" "_L" "" ent) (if circonftuy (entdel circonftuy)) (command "_subtract" tubext "" "_L" "") (setq lent (entget (entlast))) ; calo (setq lent (subst (cons 8 calqcalo) (assoc 8 lent) lent) ) (entmod lent) ) (defun descoude ( L1 L2 pt long) (command "_fillet" L1 L2) (setq coude (entlast)) (if (or del1 (if dminp (= (- long dminp) dmin) (= long dmin))) (entdel L1) (tubage L1 lg) ) (setq del1 nil) (tubage coude cd) ) (defun deterdmin ( / a a90 p) ;; determine la distance mini pour placer un coude (cond ;; restauration rayon original ((and l90 l45 epemboit) (setq rayo (- l90 emboit)) (setvar "FILLETRAD" rayo)) ) (if dmin (setq dminp dmin)) ;;; dminp = dmin du coude precedent (if (= b (+ d01 d10)) (setq a180 t) (setq a180 nil)) ;; si angle 180 pas de coude mais prolongement (if (or (= d01 (+ b d10)) (= d10 (+ b d01))) (setq a0 t) (setq a0 nil) ;; si angle 0 pas possible alors arret ) (if (= (* b B) (+ (* d01 d01) (* d10 d10))) ;; si angle 90 dmin = rayon (setq a90 t dmin rayo) (setq a90 nil) ) (if (and (not a0) (not a90)(not a180)) ;;; si autre alors calcul (progn (setq p (/ (+ d01 d10 B) 2)) ;;; p=1/2 perimetre du triangle (setq a (abs (atan (sqrt (/ (* (- p d01)(- p d10)) (* p (- p B))))))) ;; 1/2 angle (setq at (* 2 (* a (/ 180 pi)))) ;; angle tuyauterie (cond ((and l45 l20 epemboit (> at 150)) (setq dmin (- (- l45 emboit) (* (/ (- (- l45 emboit)(- l20 emboit)) 25)(- at 135)))) (setq rayo (/ (* (sin a) dmin) (cos a))) (if (not (> rayo (+ ddia epemboit))) (setq rayo (* (+ ddia epemboit) 1.01) dmin (* (cos a) (/ rayo (sin a))) ) ) (setvar "FILLETRAD" rayo) ) ((and l45 l30 epemboit (> at 136)) (setq dmin (- (- l45 emboit) (* (/ (- (- l45 emboit)(- l30 emboit)) 15)(- at 135)))) (setq rayo (/ (* (sin a) dmin) (cos a))) (if (not (> rayo (+ ddia epemboit))) (setq rayo (* (+ ddia epemboit) 1.01) dmin (* (cos a) (/ rayo (sin a))) ) ) (setvar "FILLETRAD" rayo) ) ((and l90 l45 epemboit (> at 90)) (setq dmin (- (- l90 emboit) (* (* (- (- l90 emboit)(- l45 emboit)) 0.022222)(- at 90)))) (setq rayo (/ (* (sin a) dmin) (cos a))) (if (not (> rayo (+ ddia epemboit))) (setq rayo (* (+ ddia epemboit) 1.01) dmin (* (cos a) (/ rayo (sin a))) ) ) (setvar "FILLETRAD" rayo) ) (t (setq dmin (* (cos a) (/ rayo (sin a))))) ) ) ) (if a90 (setq at 90.0)) (if a180 (setq at 180.0)) ) (defun onfekoi (L1 L2 pt1 pt2 pt3 d1 d2) (cond (a180 (tubage L1 lg)) (a0 (tubage L1 lg) (entdel L2) (setq p0 nil p1 nil)) ((and (not a0) (not a180)) (if (> rayo 0) (cond ((and (if dminp (>= (- d1 dminp) (+ dmin (* 2 emboit) ecart)) (>= d1 dmin)) (>= d2 dmin) ) (descoude L1 L2 pt2 d1) ) ((or (if dminp (< (- d1 dminp) (+ dmin (* 2 emboit) ecart)) (< d1 dmin)) (< d2 dmin) ) (correction L1 L2 pt1 pt2 pt3 d1 d2) ) ) (tubage L1 lg) ;;; si rayon 0 pas de raccordement ) ) ) ) (defun correction (L1 L2 pt1 pt2 pt3 d1 d2) (setq lg (if dminp (+ dmin dminp (* 2 emboit) ecart) dmin)) (if (< d1 lg) (progn (setq pt1 (trans (cdr (assoc 10 (entget L1))) 0 1)) (if dminp (setq lgmin (+ dmin (* 2 emboit) ecart))(setq lgmin dmin)) (redefsommet pt1 pt2 lgmin) (entdel L1) (command "_line" "_non" pt1 "_non" sbn "") (setq L1 (entlast)) (command "_move" L2 "" "_non" pt2 "_non" sbn) (setq pt2 sbn) (if (and (= emboit 0)(= ecart 0))(setq del1 t)) ) ;;; progn ) ;;; if (cond ((> d2 dmin) (setq pt3 (trans (cdr (assoc 11 (entget L2))) 0 1)) (if (= dp t) (setq p1 pt3 p0 pt2) (setq p0 pt3 p1 pt2) ) (descoude L1 L2 pt2 lg) ;; pas modif ok ) ((= d2 dmin) (descoude L1 L2 pt2 lg) (entdel L2) (setq p0 nil p1 nil) ;;; arret sur coude ) ((< d2 dmin) ;; modification L2 (if (< d1 lg) (progn (setq pt2 sbn) (setq pt3 (trans (cdr (assoc 11 (entget L2))) 0 1)) (setq d1 lg) ) ) (redefsommet pt2 pt3 dmin) (command "_move" L2 "" "_non" pt3 "_non" sbn) (descoude L1 L2 pt2 d1) (entdel L2) (setq p0 nil p1 nil) ;;; arret sur coude ) ) ) (defun redefsommet (sa sb dist / h a ab za zb z y x b bn hn ap psbn) (setq h (- (caddr sb)(caddr sa))) ;;; hauteur triangle (if (= h 0.0) ;; si parallele plan xy (progn (setq a (angle sa sb)) (setq sbn (polar sa a dist)) ) ;; si vertical suivant axe Z (if (and (= (rtos (car sa) 2 1) (rtos (car sb) 2 1)) ;; probleme de precision avec deplacement ligne (= (rtos (cadr sa) 2 1) (rtos (cadr sb) 2 1)) ) (progn (setq za (caddr sa) zb (caddr sb)) (if (> za zb) (setq z (- za dist)) (setq z (+ za dist)) ) (setq x (car sa) y (cadr sa)) (setq sbn (list x y z)) ;;; nouv sommet b ) ;; orientation quelconque (progn (setq ab (distance sa sb)) (setq b (sqrt (- (* ab ab) (* h h)))) ;;; base triangle (setq hn (/ (* h dist) ab)) ;;; nouvelle hauteur (setq bn (/ (* b dist) ab)) ;;; nouvelle base (setq ap (angle sa sb)) ;;; angle projeté de ab (setq psbn (polar sa ap bn)) ;;; projection nouv sommet b (setq z (+ (caddr sa) hn)) ;;; z nouv pb (setq x (car psbn)) (setq y (cadr psbn)) (setq sbn (list x y z)) ;;; nouv sommet b ) ) ) ) (defun creercalqueAXE (/ calqax) ;;; pas utilisé ;creer calque de l'axe (setq calqax (strcat (getvar "clayer") "-AXE")) (if (not (tblsearch "layer" calqax)) ; (command "_-layer" "_n" calqax "" "" ) (command "_-layer" "_n" calqax "_co" "6" calqax "_lt" "axes2" calqax "") ) ) (defun creercalqueCALO ();creer calque pour calorifuge (setq calqcalo (strcat (getvar "clayer") "-CALO")) (if (not (tblsearch "layer" calqcalo)) ; s'il n'existe pas le calque est créé avec la couleur 9 (command "_-layer" "_n" calqcalo "_co" "9" calqcalo "") ) ) (defun TUY (/ p0 p1 L01 L10 coude mtrim ent eptub at) (setvar "cmdecho" 0) (diam-t3d) (setq p1 nil dmin nil dminp nil L10 nil del1 nil cd 1 lg 0) ;(creercalqueaxe ) pas utilisé (if (not (tblsearch "ltype" "axes2")) (command "_-linetype" "_l" "AXES2" "" "")) (if (> epcalo 0)(creercalquecalo)) (setvar "FILLETRAD" rayo) (setq mtrim (getvar "trimmode"))(setvar "trimmode" 1) (if (not tuy:ep) (setq tuy:ep 0)) (setq p0 "Epaisseur") (while (= p0 "Epaisseur") (initget "Epaisseur") (setq p0 (getpoint (strcat "\nPOINT DE DEPART ou <Epaisseur> = "(rtos tuy:ep 2 4)" :"))) (if (not p0) (setq p0 "Epaisseur")) (if (= p0 "Epaisseur") (progn (setq eptub (getdist (strcat "\nEpaisseur tube ou 2 pts <" (rtos tuy:ep 2 4) ">: "))) (if eptub (if (< (abs eptub) ddia)(setq tuy:ep eptub))) ) ) ) (while p0 (if p1 (setq pd p1)) ;;; pd point de depart (cond (at (princ "Angle tuyauterie ")(princ at)(princ "°") (princ " et Coude ")(princ (- 180 at))(princ "°") ) ) (princ " Rayon ")(princ rayo) (setq p1 (getpoint p0 "\nPoint suivant <Arret> : ")) (if p1 (progn (command "_line" "_non" p0 "_non" p1 "") (setq L01 (entlast) d01 (distance p0 p1) dp t) ;;; dp = dernier point p1 (if l10 ;;; si plusieurs boucles ;;;;;;; (progn (setq b (distance p1 pd)) ;;; b base triangle (deterdmin) (onfekoi L10 L01 pd p0 p1 d10 d01) ) ) (if p0 (setq pd p0)) (cond (at (princ "Angle tuyauterie ")(princ at)(princ "°") (princ " et Coude ")(princ (- 180 at))(princ "°") )) (princ " Rayon ")(princ rayo) (if p1 (setq p0 (getpoint p1 "\nPoint suivant <Arret> : "))) (if p0 (progn (command "_line" "_non" p1 "_non" p0 "") (setq l10 (entlast) d10 (distance p1 p0) dp nil) (setq b (distance p0 pd)) (deterdmin) (onfekoi L01 L10 pd p1 p0 d01 d10) ) ) ) ;;; si p1 nil (progn (if (and l10 p0 ) (tubage l10 lg)) ;; si plusieurs boucles ;;;;;;; (setq p0 nil ) ) ) ;;;; fin if p1 ) ;;; fin while (cond ((and l01 p1)(tubage l01 lg))) ;;;; termine dernier tronçon (setvar "trimmode" mtrim)(setvar "cmdecho" 1) (cond (at (princ "\nAngle tuyauterie ")(princ at)(princ "°") (princ " et Coude ")(princ (- 180 at))(princ "°") )) (cond (rayo (princ " Rayon ")(princ rayo))) (gc) (prin1) ) ;; pour raccorder 2 axes et tracer seulement l'axe du coude de tuy (defun c:cd (/ lo lo2) (diam-t3d) (setq mtrim (getvar "trimmode")) (setvar "FILLETRAD" rayo) (setvar "trimmode" 1) (setq lo (entlast)) (command "_fillet") (while (not (zerop (getvar "cmdactive")))(command pause)) (while (not (equal lo (setq lo2 (entlast)))) (command "_fillet") (while (not (zerop (getvar "cmdactive")))(command pause)) (setq lo lo2) ) (setvar "trimmode" mtrim) (princ) ) ;; pour raccorder 2 axes et tracer un coude de tuy sauf emboitements. (defun c:cdt (/ lo ) (diam-t3d) (if (> epcalo 0)(creercalquecalo)) (setq mtrim (getvar "trimmode")) (setvar "FILLETRAD" rayo) (setvar "trimmode" 1) (setq lo (entlast)) (command "_fillet") (while (not (zerop (getvar "cmdactive")))(command pause)) (cond ((not (equal lo (setq coude (entlast)))) (setq pt (trans (cdr (assoc 10 (entget coude))) 0 1)) (generetube coude pt 1) ) ) (while (not (equal coude (setq lo (entlast)))) (command "_fillet") (while (not (zerop (getvar "cmdactive")))(command pause)) (cond ((not (equal lo (setq coude (entlast)))) (setq pt (trans (cdr (assoc 10 (entget coude))) 0 1)) (generetube coude pt 1) ) ) ) (setvar "trimmode" mtrim) (princ) ) ;; Pour ne tracer que le calorige par sélection de l'axe ou par deux points (defun c:calos (/ sel typent ent pt p1 p2 eptub axetemp rep) (diam-t3d) (while (or (>= 0 epcalo)(not epcalo)) (setq epcalo (getdist "\nEpaisseur calorifuge ou 2 pts : ")) ) (creercalquecalo) (if(= tuy:ep nil) ; si utilisation avant tuy (progn (initget "Creux Plein") (setq rep (getstring "\n Calo dessiné [<Plein>/Creux]:")) (if (or (= rep "")(= rep "Plein")) (setq tuy:ep 0.0) (setq tuy:ep -1)) ) ) (setq sel t) (while sel (setq sel (entsel "\nSélectionner l'AXE du TUBE ou par < 2 Points> :")) (if (not sel) (progn (setq sel t) (setq p1 (getpoint "\nPoint de départ <Arret> : ")) (if p1 (setq p2 (getpoint p1 "\nPoint final <Arret> : "))) (if (and p1 p2) (progn (command "_line" "_non" p1 "_non" p2 "") (setq axetemp (entlast))(setq pt (trans (cdr (assoc 10 (entget axetemp))) 0 1)) (if (or (= tuy:ep nil) (= tuy:ep 0.0)) (caloplein axetemp pt ) (calocreux axetemp pt ) ) (if (/= 2 (getvar "delobj"))(entdel axetemp)) ) (setq sel nil) ) ) (progn (setq typent (cdr (assoc 0 (entget (setq ent(car sel)))))) (cond ((or (= typent "LINE")(= typent "ARC")(= typent "POLYLINE")(= typent "LWPOLYLINE") (= typent "ELLIPSE")(= typent "CIRCLE")(= typent "SPLINE")(= typent "HELIX") ) (setq pt (cadr sel)) (if (or (= tuy:ep nil) (= tuy:ep 0.0)) (progn (if (> epcalo 0) (progn (if (= (cdr (assoc 0 (setq lent (entget ent)))) "ARC") (if (> (cdr (assoc 40 lent)) (+ ddia epcalo))(caloplein ent pt)) (caloplein ent pt) ) ) ) ) (progn (if (> epcalo 0) (progn (if (= (cdr (assoc 0 (setq lent (entget ent)))) "ARC") (if (> (cdr (assoc 40 lent)) (+ ddia epcalo))(calocreux ent pt)) (calocreux ent pt) ) ) ) ) ) ) ) ) ) ;; if ) (gc) (princ) ) ;;; génère le tube à partir de l'axe sélectionné (defun c:TU (/ sel typent ent pt eptub ) (diam-t3d) (if (> epcalo 0)(creercalquecalo)) (if (not tuy:ep) (setq tuy:ep 0)) (initget "Epaisseur") (while (setq sel (entsel (strcat "\nSélectionner l'AXE du TUBE ou Epaisseur,[Epaisseur] = "(rtos tuy:ep 2 4)" :"))) (if (= sel "Epaisseur") (progn (setq eptub (getdist (strcat "\nEpaisseur tube ou 2 pts <" (rtos tuy:ep 2 4) ">: "))) (if eptub (if (< (abs eptub) ddia)(setq tuy:ep eptub))) ) (progn (setq typent (cdr (assoc 0 (entget (setq ent(car sel)))))) (cond ((or (= typent "LINE")(= typent "ARC")(= typent "POLYLINE")(= typent "LWPOLYLINE") (= typent "ELLIPSE")(= typent "CIRCLE")(= typent "SPLINE")(= typent "HELIX") ) (setq pt (cadr sel)) (generetube ent pt nil) ) ) ) ) ;; if ) (gc) (princ) ) ;;;;;;;;;;;;;;;;;;;;;;; (defun erreurtuy (msg) (setvar "delobj" delobjet) (if (not (zerop (getvar "cmdactive")))(command)) (setq *error* m:err m:err nil) (princ) ) (defun c:tsa () ;; tuyau sans axe (setq m:err *error* *error* erreurtuy) (setq delobjet (getvar "delobj")) (setvar "delobj" 2) (tuy) (setvar "delobj" delobjet) (setq *error* m:err m:err nil) (princ) ) (defun c:tuy () (setq m:err *error* *error* erreurtuy) (setq delobjet (getvar "delobj")) (setvar "delobj" 1) (tuy) (setvar "delobj" delobjet) (setq *error* m:err m:err nil) (princ) ) (defun c:tuycb (/ cdblc) (setq m:err *error* *error* erreurtuy) (setq delobjet (getvar "delobj")) (setvar "delobj" 1) (setq cdblc 1) (tuy) (setvar "delobj" delobjet) (setq *error* m:err m:err nil) (princ) ) (defun c:tsacb (/ cdblc) (setq m:err *error* *error* erreurtuy) (setq delobjet (getvar "delobj")) (setvar "delobj" 2) (setq cdblc 1) (tuy) (setvar "delobj" delobjet) (setq *error* m:err m:err nil) (princ) ) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (prompt "\nCMD dispo: TUY ,TSA ,TU ,CD, CDT, CALOS ou avec bloc TUYCB, TSACB, TUB, CDB") (princ) <font class=edite>[Edité le 12/6/2011 par usegomme]</font><font class=edite>[Edité le 26/6/2011 par usegomme]</font><font class=edite>[Edité le 1/7/2011 par usegomme]</font><font class=edite>[Edité le 2/7/2011 par usegomme]</font><font class=edite>[Edité le 6/7/2011 par usegomme]</font> <font class=edite>[Edité le 29/8/2011 par usegomme]</font>
  17. Bonjour Je n'en sais rien , comment comptes-tu l' employer pour la mise en place des coudes, car il faut pouvoir maitriser les orientations 3D sinon ça fera un bloc différent pour chaque coude ! Et est-ce que tu as pu télécharger profil.lsp car je viens de voir ton message, en ce moment je ne suis pas souvent sur Cadxp.
  18. usegomme

    Ainsi crée la nature

    Salut Fraid Et oui, mais que veux-tu, il y a tellement d'intelligence dans la nature, d'ingéniosité et aussi de "technologie " supérieure à ce qu'on sait faire que le hasard sélectif ne tient la route que si on a décidé qu'il est la réponse, un point c'est tout. L'homme est champion depuis toujours, pour adapter les faits et ce qu'il lui est enseigné à sa propre conception. Autrement dit, chacun fait sa sauce. Et il en est de même pour les religions. Je ne sais pas trop comment interpréter le rêve collectif , mais il y a du vrai dans tout ça si on se fie aux expériences de mort imminente, le DVD "Faux Départ" est à voir. Ce témoignage est pas mal aussi.
  19. usegomme

    Ainsi crée la nature

    Bonjour Extrait de ton article, Autospeed , ".... un partout la balle au centre." Si tu écoutes les témoignages d' EMI , et je ne conçois pas que tu puisses les ignorer, tu verras que cette phrase, d'un point de vu "spirituel" est une erreur grave.
  20. Bonjour tous le monde. Je reviens sur ce sujet car je suis "tombé" sur cet article de presse et du coup j'ai acheté le DVD °"FAUX DEPART" qui est un documentaire et une enquète sur les expériences de mort imminente. Un certains nombre de témoignages sont vraiment trés trés intêressants et apportent des éléments que personnellement j'ignorais .
  21. usegomme

    Ainsi crée la nature

    Salut , désolé d'avoir tant tardé à te répondre. Si j' ai gardé le commentaire neutre de science&vie, je n'en pense pas moins que cela montre qu'il y a une "intelligence derrière la création" (comme dit dans ton article) du fait même que l'outil (le gène géomètre) soit avant la multiplication des espèces. Cela montre aussi ,bien que cela me semble évident grâce aux connaissances scientifiques actuelles que Dieu n'est pas un magicien comme il est possible de l'imaginer en lisant le genèse, mais un créateur dans le vrai sens du terme. Et dans le cas présent Il a élaboré un outil bien commode pour la suite des "opérations".
  22. On a percé le secret de la diversité des formes du vivant. Extrait de SCIENCE&VIE de fevrier 2011 Certes cela n' explique pas tout, mais néanmoins j'ai tout de même une pensée émue pour ceux qui croyaient mordicus aux mutations génétiques aléatoires et miraculeuses, tout en se pensant cartésien !
  23. Salut Fraxa , c'est une erreur qu 'il me faudra rectifier . Etonnant de rater des trucs aussi basique, enfin bon ! a+
  24. usegomme

    Bibli Lisp 2D en 3D?

    Salut à tous , je veux juste signaler que j'ai effectué quelques petites corrections des lisp BRIDE et BBRIDE , mais toujours pas de mise à jour suivant la norme en cours. Sinon pour Fraxa , j'espère que tu as résolu ton mystérieux souci de boite de dialogue... ? A+
  25. usegomme

    Cours lisp

    Salut Si tes "giratoires" concernent bien les routes . C'est un domaine que je ne connais pas du tout et je ne peux pas te répondre. Tu devrais créer un nouveau post et mieux expliquer ton besoin.
×
×
  • 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é