Aller au contenu

Charpente 3D Lisp


kohen.g

Messages recommandés

Bonjour,

Comment je peux faire pour rajouter des profilés UPN Cornière ect...

 

Ci joint le lisp d'origine

 

(defun c:IPN ( / IPE_data IPEA_data HEA_data HEB_data HEM_data PA_data

sv_mnu typ_ipn l_data l_str model_ipn l_val pt_ins h b a e r

po p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16)

(setq

IPE_data

'(

(80 . (80 46.0 3.8 5.2 5))

(100 . (100 55.0 4.1 5.7 7))

(120 . (120 64.0 4.4 6.3 7))

(140 . (140 73.0 4.7 6.9 7))

(160 . (160 82.0 5.0 7.4 9))

(180 . (180 91.0 5.3 8.0 9))

(200 . (200 100.0 5.6 8.5 12))

(220 . (220 110.0 5.9 9.2 12))

(240 . (240 120.0 6.2 9.8 15))

(270 . (270 135.0 6.6 10.2 15))

(300 . (300 150.0 7.1 10.7 15))

(330 . (330 160.0 7.5 11.5 18))

(360 . (360 170.0 8.0 12.7 18))

(400 . (400 180.0 8.6 13.5 21))

(450 . (450 190.0 9.4 14.6 21))

(500 . (500 200.0 10.2 16.0 21))

(550 . (550 210.0 11.1 17.2 24))

(600 . (600 220.0 12.0 19.0 24))

)

IPEA_data

'(

(80 . (78.0 46 3.3 4.2 5))

(100 . (98.0 55 3.6 4.7 7))

(120 . (117.6 64 3.8 5.1 7))

(140 . (137.4 73 3.8 5.6 7))

(160 . (157.0 82 4.0 5.9 9))

(180 . (177.0 91 4.3 6.5 9))

(200 . (197.0 100 4.5 7.0 12))

(220 . (217.0 110 5.0 7.7 12))

(240 . (237.0 120 5.2 8.3 15))

(270 . (267.0 135 5.5 8.7 15))

(300 . (297.0 150 6.1 9.2 15))

(330 . (327.0 160 6.5 10.0 18))

(360 . (357.6 170 6.6 11.5 18))

(400 . (397.0 180 7.0 12.0 21))

(450 . (447.0 190 7.6 13.1 21))

(500 . (497.0 200 8.4 14.5 21))

(550 . (547.0 210 9.0 15.7 24))

(600 . (597.0 220 9.8 17.5 24))

)

HEA_data

'(

(100 . (96.0 100 5.0 8.0 12))

(120 . (114.0 120 5.0 8.0 12))

(140 . (133.0 140 5.5 8.5 12))

(160 . (152.0 160 6.0 9.0 15))

(180 . (171.0 180 6.0 9.5 15))

(200 . (190.0 200 6.5 10.0 18))

(220 . (210.0 220 7.0 11.0 18))

(240 . (230.0 240 7.5 12.0 21))

(260 . (250.0 260 7.5 12.5 24))

(280 . (270.0 280 8.0 13.0 24))

(300 . (290.0 300 8.5 14.0 27))

(320 . (310.0 300 9.0 15.5 27))

(340 . (330.0 300 9.5 16.5 27))

(360 . (350.0 300 10.0 17.5 27))

(400 . (390.0 300 11.0 19.0 27))

(450 . (440.0 300 11.5 21.0 27))

(500 . (490.0 300 12.0 23.0 27))

(550 . (540.0 300 12.5 24.0 27))

(600 . (590.0 300 13.0 25.0 27))

(650 . (640.0 300 13.5 26.0 27))

(700 . (690.0 300 14.5 27.0 27))

(800 . (790.0 300 15.0 28.0 30))

(900 . (890.0 300 16.0 30.0 30))

(1000 . (990.0 300 16.5 31.0 30))

(1100 . (1090.0 300 18.0 31.0 20))

)

HEB_data

'(

(100 . (100 100 6.0 10.0 12))

(120 . (120 120 6.5 11.0 12))

(140 . (140 140 7.0 12.0 12))

(160 . (160 160 8.0 13.0 15))

(180 . (180 180 8.5 14.0 15))

(200 . (200 200 9.0 15.0 18))

(220 . (220 220 9.5 16.0 18))

(240 . (240 240 10.0 17.0 21))

(260 . (260 260 10.0 17.5 24))

(280 . (280 280 10.5 18.0 24))

(300 . (300 300 11.0 19.0 27))

(320 . (320 300 11.5 20.5 27))

(340 . (340 300 12.0 21.5 27))

(360 . (360 300 12.5 22.5 27))

(400 . (400 300 13.5 24.0 27))

(450 . (450 300 14.0 26.0 27))

(500 . (500 300 14.5 28.0 27))

(550 . (550 300 15.0 29.0 27))

(600 . (600 300 15.5 30.0 27))

(650 . (650 300 16.0 31.0 27))

(700 . (700 300 17.0 32.0 27))

(800 . (800 300 17.5 33.0 30))

(900 . (900 300 18.5 35.0 30))

(1000 . (1000 300 19.0 36.0 30))

(1100 . (1100 300 20.0 36.0 20))

)

HEM_data

'(

(100 . (120 106 12.0 20.0 12))

(120 . (140 126 12.5 21.0 12))

(140 . (160 146 13.0 22.0 12))

(160 . (180 166 14.0 23.0 15))

(180 . (200 186 14.5 24.0 15))

(200 . (220 206 15.0 25.0 18))

(220 . (240 226 15.5 26.0 18))

(240 . (270 248 18.0 32.0 21))

(260 . (290 268 18.0 32.5 24))

(280 . (310 288 18.5 33.0 24))

(300 . (340 310 21.0 39.0 27))

(320 . (359 309 21.0 40.0 27))

(340 . (377 309 21.0 40.0 27))

(360 . (395 308 21.0 40.0 27))

(400 . (432 307 21.0 40.0 27))

(450 . (478 307 21.0 40.0 27))

(500 . (524 306 21.0 40.0 27))

(550 . (572 306 21.0 40.0 27))

(600 . (620 305 21.0 40.0 27))

(650 . (668 305 21.0 40.0 27))

(700 . (716 304 21.0 40.0 27))

(800 . (814 303 21.0 40.0 30))

(900 . (910 302 21.0 40.0 30))

(1000 . (1008 302 21.0 40.0 30))

)

PA_data IPEA_data

)

(setq sv_mnu (getvar "SHORTCUTMENU"))

(setvar "SHORTCUTMENU" 11)

(initget 1 "IPE IPEA PA HEA HEB HEM")

(setq typ_ipn (getkword "\nType de poutre [iPE/IPEA/PA/HEA/HEB/HEM]?: "))

(setq l_data (eval (read (strcat typ_ipn "_data"))))

(setq l_str nil)

(initget 1 (apply 'strcat (mapcar 'strcat (repeat (length l_data) (setq l_str (cons "M" l_str))) (mapcar 'itoa (mapcar 'car l_data)) (repeat (length l_data) (setq l_str (cons " " l_str))))))

(setq l_str nil)

(setq model_ipn (getkword (strcat "\nModèle de poutre ["

(apply 'strcat (mapcar 'strcat (repeat (length l_data) (setq l_str (cons "M" l_str))) (mapcar 'itoa (mapcar 'car l_data)) (repeat (length l_data) (setq l_str (cons "/" l_str)))))

"]?: "))

)

(setvar "SHORTCUTMENU" sv_mnu)

(setq l_val (cdr (assoc (atoi (substr model_ipn 2)) l_data)))

(initget 1)

(setq pt_ins (getpoint "\nPoint d'insertion?: "))

(setq h (car l_val) b (cadr l_val) a (caddr l_val) e (cadddr l_val) r (last l_val))

(setq

po (polar pt_ins (* pi 0.5) (* h -0.5))

p1 (polar po 0.0 (* b 0.5))

p2 (polar p1 (* pi 0.5) e)

p3 (polar p2 pi (- (* b 0.5) (* a 0.5) r))

p4 (polar (polar p3 (* pi 0.5) r) pi r)

p5 (polar p4 (* pi 0.5) (- h (* 2.0 r) (* 2.0 e)))

p6 (polar (polar p5 0.0 r) (* pi 0.5) r)

p7 (polar p6 0.0 (- (* b 0.5) (* a 0.5) r))

p8 (polar p7 (* pi 0.5) e)

p9 (polar p8 pi b)

p10 (polar p9 (- (* pi 0.5)) e)

p11 (polar p10 0.0 (- (* b 0.5) (* a 0.5) r))

p12 (polar (polar p11 (- (* pi 0.5)) r) 0.0 r)

p13 (polar p12 (- (* pi 0.5)) (- h (* 2.0 r) (* 2.0 e)))

p14 (polar (polar p13 pi r) (- (* pi 0.5)) r)

p15 (polar p14 pi (- (* b 0.5) (* a 0.5) r))

p16 (polar p15 (- (* pi 0.5)) e)

)

(setvar "cmdecho" 0)

(command "_.pline" "_none" p1 "_none" p2 "_none" p3 "_arc" "_none" p4 "_line" "_none" p5

"_arc" "_none" p6 "_line" "_none" p7 "_none" p8 "_none" p9 "_none" p10 "_none" p11

"_arc" "_none" p12 "_line" "_none" p13 "_arc" "_none" p14 "_line" "_none" p15 "_none" p16

"_close"

)

(setvar "cmdecho" 1)

(command "_.extrude" (entlast) "")

(prin1)

)

Lien vers le commentaire
Partager sur d’autres sites

Comment je peux faire pour rajouter des profilés UPN Cornière ect...

 

Dans ce cas précis, vu que la séquence du dessin du profilé n'est plus la même, le rajout de ces profilés nécessitent du développement en plus si on veut l'associer.

 

L'option la plus simple est de créer 2 fonctions similaire à IPN (UPN, Corniere) en modifiant la séquence de calcul des points avant de soumettre ceux-ci à la commande polyligne.

 

Après les matrices de données pour les dimensions normalisées, je pense que tu auras plus de sources que moi pour les mettre en place.

 

Ce lien lien te sera t-il utile?

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

Coucou

 

ce que j'ai lu dans le lisp cité comme exemple

me laisse dubitatif quant à la possibilité de faire ce que tu dis :

 

Alors que le lisp IPN tu modifies les longueurs en tirant dessus

(je me suis permis de corriger les fautes (de frappe))

 

puisqu'il est question d'EXTRUSION,

je ne vois pas, comment l'étirer en tirant dessus

tu peux toujours éditer des faces mais jamais étirer

 

amicalement

Lien vers le commentaire
Partager sur d’autres sites

Bonjour Didier,

 

puisqu'il est question d'EXTRUSION,

je ne vois pas, comment l'étirer en tirant dessus

tu peux toujours éditer des faces mais jamais étirer

 

Par les grips tu peux étirer la hauteur; il y a une poignée spéciale pour la hauteur d'extrusion (se mettre en vue 3D, pour bien la différencier)

 

Cela peut être fait aussi par le volet des propriétés (hauteur)

Ceci bien sur pour des solides construit par extrusion. ;)

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

Coucou

 

comme quoi, on est toujours à un pas ...

de la connaissance,

 

je n'avais jamais testé et c'est pas mal du tout

 

jusqu'ici je faisais comme en 2D la commande ETIRER

ce qui ne fonctionne pas comme je le citais...

 

merci de m'avoir filé ce tuyau.

 

amicalement.

 

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir

Dite moi ca va faire un peu faignant mais y a personne qui voudrais essayer de modifier ce lisp en y rajouter les profilé manquant , ou alors y aurait-il quelqu'un qui aura des cours en francais de programmation en Lisp

 

Merci

 

Lien vers le commentaire
Partager sur d’autres sites

Bonjour

Oui mais le probleme c'est que c'est pas pratique si tu veux modifier la longueur tu dois extruder les faces pour augmenter ou diminuer ,

Alors que le lips IPN tu modifie les longueurs en tirant dessus

Je m'étonne de ta remarque, etude0 , car dans les deux lisp le profil métallique en 3d est généré par la commande "extrude" , il n'y a donc pas de différence et de plus je viens de le vérifier avec ma 2008 pour en être sûr.

Ce ne serait pas un faux souvenir plutôt?

 

Lien vers le commentaire
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité