CadFrank Posted December 22, 2011 Posted December 22, 2011 Hi i would like to know how to use 2 different variable in the same equation. let me show you what i mean (defun combiné() (setq Cis-baie-C-A (/(* 4 AFv)(*(* charge-sol Af.s)5))) (setq Mom-baie-C-A (* 2.82843(expt(/ AFb(* charge-sol Af.s))0.5))) (setq L360-baie-C-A (/(/(* 0.800983(expt(* AE AI)0.33333))(expt charge-sol 0.33333))1000)) (setq 6.35-baie-C-A (/(*(expt(/(* AE AI)charge-sol)0.25) 5.5109) 1000))) (setq port-max(*(min Cis-baie-C-A Mom-baie-C-A L360-baie-C-A 6.35-baie-C-A)1000)) );defun combiné here is what i want everywhere that its written "charge-sol" i want to put either the answer of one question then if later on when the equation comes again i want to put another answer without having to rewrite everything Thanks for your help cheers & beers Quote
CadFrank Posted December 22, 2011 Author Posted December 22, 2011 If you do not quite understand what i mean ask me more question! Quote
Lee Mac Posted December 22, 2011 Posted December 22, 2011 Call your function with the necessary arguments: (defun combiné ( AFv charge-sol Af.s AFb AE AI / Cis-baie-C-A Mom-baie-C-A L360-baie-C-A 6.35-baie-C-A port-max ) (setq Cis-baie-C-A (/(* 4 AFv)(*(* charge-sol Af.s)5))) (setq Mom-baie-C-A (* 2.82843(expt(/ AFb(* charge-sol Af.s))0.5))) (setq L360-baie-C-A (/(/(* 0.800983(expt(* AE AI)0.33333))(expt charge-sol 0.33333))1000)) (setq 6.35-baie-C-A (/(*(expt(/(* AE AI)charge-sol)0.25) 5.5109) 1000))) (setq port-max(*(min Cis-baie-C-A Mom-baie-C-A L360-baie-C-A 6.35-baie-C-A)1000)) );defun combiné e.g.: (combiné <AFv> <charge-sol> <Af.s> <AFb> <AE> <AI>) Also, remember to localise your variables! Quote
CadFrank Posted December 22, 2011 Author Posted December 22, 2011 Ok so lets say this is my routine im trying to make.. ill poste it but its really not done... ;****************************************************** ; Calcul des charges ; ce sous program permet de calculer les charges ; des dalles et poutres ;****************************************************** (if(> porté-max ;**************************************************************************** ; Constantes ; ce sous program permet de mettre en ; mémoire toute les valeurs constantes ;**************************************************************************** (defun constantes() ;--- charge de coffrage --- (setq poid-béton 23.54) (setq surcharge 2.4) (setq poid-coffrage 0.35) ;--- Spécification des poutre d'aluminium 6.5 --- (setq Ahauteur 165.1) (setq Alargeur 124.0) (setq AI 7.08e06) (setq AS 104520.0) (setq aFb 21.12) (setq AFv 90.4) (setq AE 7.0e04) (setq Af.s 2.2) ;--- Spécification des poutre d'aluminium 7.5 --- ;--- Spécification bois --- );constantes ;**************************************************************************** ; Spécification ; ce sous program permet de spécifier ; les caractéristiques de la dalle ;**************************************************************************** (defun spécification() (setq ep-béton(getreal"\nQuel est l'épaisseur du béton : ")) (initget 1 "B A S") (setq typ-sol(getstring"\nQuel type de solives est utilisé? \nBois 4x4 / Aluma : ")) (if(= typ-sol "A") (progn (setq portée-sol 2440) );progn );if (initget 1 "S D T C") (setq type-portée(getkword"\nChoisir le type de portée : Simple/Double/Triple/Combiné ")) (if(= type-portée "S") (progn (simple) );progn );if (if(= type-portée "Double") (progn (double) );progn );if (if(= type-portée "Triple") (progn (triple) );progn );if (if(= type-portée "Combiné") (progn (combiné) );progn );if );defun spécification ;**************************************************************************** ; Portée Contreplaqué ; ce sous program permet de trouver ; l'espacement des solives ;**************************************************************************** (defun contreplaqué() (if (< charge-trib 4.4)(setq esp-sol 609.6)) (if (and(> charge-trib 4.41)(< charge-trib 7.)(setq esp-sol 488.0)) (if (and(> charge-trib 7.81)(< charge-trib 14.0))(setq esp-sol 406.4)) (if (and(> charge-trib 14.01)(< charge-trib 30.0))(setq esp-sol 304.) (if (and(> charge-trib 30.01)(< charge-trib 47.0))(setq esp-sol 254.0)) (if (and(> charge-trib 47.01)(< charge-trib 67.0))(setq esp-sol 203.2)) (if (and(> charge-trib 67.01)(< charge-trib 97.0))(setq esp-sol 152.4)) (if (and(> charge-trib 97.01)(< charge-trib 176.0))(setq esp-sol 101.6)) );contreplaqué ;**************************************************************************** ; simple ; ce sous program calcul la portée simple ; cisaillement/moment/L360/6.35 ;**************************************************************************** (defun simple() ;----- Aluma ----- (setq Cis-baie-1-A (/(* 2 AFv)(* charge-sol Af.s))) (setq Mom-baie-1-A (* 2.82843(expt(/ AFb(* charge-sol Af.s))0.5))) (setq L360-baie-1-A (/(/(* 0.597521(expt(* AE AI)0.33333))(expt charge-sol 0.33333))1000)) (setq 6.35-baie-1-A (/(*(expt(/(* AE AI)charge-sol)0.25) 4.69931) 1000)) (setq port-max(*(min Cis-baie-1-A Mom-baie-1-A L360-baie-1-A 6.35-baie-1-A)1000)) ;----- stringer ----- );simple ;**************************************************************************** ; Double ; ce sous program calcul la portée double ; cisaillement/moment/L360/6.35 ;**************************************************************************** (defun double() (setq Cis-baie-2-A (/(* 4 AFv)(*(* charge-sol Af.s)5))) (setq Mom-baie-2-A (* 2.82843(expt(/ AFb(* charge-sol Af.s))0.5))) (setq L360-baie-2-A (/(/(* 0.800983(expt(* AE AI)0.33333))(expt charge-sol 0.33333))1000)) (setq 6.35-baie-2-A (/(*(expt(/(* AE AI)charge-sol)0.25) 5.85445) 1000)) (setq port-max(*(min Cis-baie-2-A Mom-baie-2-A L360-baie-2-A 6.35-baie-2-A)1000)) );defun double ;**************************************************************************** ; Triple ; ce sous program calcul la portée triple ; cisaillement/moment/L360/6.35 ;**************************************************************************** (defun triple() (setq Cis-baie-3-A (/(* 4 AFv)(*(* charge-sol Af.s)5))) (setq Mom-baie-3-A (* 2.82843(expt(/ AFb(* charge-sol Af.s))0.5))) (setq L360-baie-3-A (/(/(* 0.800983(expt(* AE AI)0.33333))(expt charge-sol 0.33333))1000)) (setq 6.35-baie-3-A (/(*(expt(/(* AE AI)charge-sol)0.25) 5.5109) 1000))) (setq port-max(*(min Cis-baie-3-A Mom-baie-3-A L360-baie-3-A 6.35-baie-3-A)1000)) );defun triple ;**************************************************************************** ; combiné ; ce sous program calcul la portée combiné ; cisaillement/moment/L360/6.35 ;**************************************************************************** (defun combiné() (setq Cis-baie-C-A (/(* 4 AFv)(*(* charge-sol Af.s)5))) (setq Mom-baie-C-A (* 2.82843(expt(/ AFb(* charge-sol Af.s))0.5))) (setq L360-baie-C-A (/(/(* 0.800983(expt(* AE AI)0.33333))(expt charge-sol 0.33333))1000)) (setq 6.35-baie-C-A (/(*(expt(/(* AE AI)charge-sol)0.25) 5.5109) 1000))) (setq port-max(*(min Cis-baie-C-A Mom-baie-C-A L360-baie-C-A 6.35-baie-C-A)1000)) );defun combiné ;****************************************************** ; Calcul des charges ; ce sous program permet de calculer les charges ; des dalles et poutres ;****************************************************** (defun calcul() (setq charge-trib (+(* poid-béton ep-béton)(+ surcharge poid-coffrage))) (contreplaqué) (setq charge-sol (* charge-trib (/ esp-sol 1000))) (setq charge-long (* charge-trib (/ por-sol 1000))) )defun calcul ;****************************************************** ; ce sous program permet de créer un ; cadre d'echafaudage ;****************************************************** (defun cadre() (setq pt1(getpoint"\nPointez premier point : ")) (setq pt2(polar pt1 0 1220)) (setq pt3(list(car pt2)(+(cadr pt1) 2135))) (command"layer" "m" "-lu test6" "c" "2" "" "") (command"donut" "0" "150" pt1 "") (setq cir1(entlast)) (command"donut" "0" "150" pt2 "") (setq cir2(entlast)) (command"pline" pt1 pt2 "") (setq lin1(entlast)) (Command"change" cir1 cir2 lin1 "" "p" "la" "-lu test6" "") (command"block" "lu blockt" pt1 cir1 cir2 lin1 "") (command"insert" "lu blockt" pt1 "" "" "") (setq blockt(entlast)) )defun cadre ;****************************************************** ; début du program : échafaudage ; ce program permet d'échafauder un projet ;****************************************************** (defun c:ecf() (constantes) (spécification) (calcul) (cadre) (command"line" pt1 pt3 "") (setq lin2(entlast)) (Command"array" blockt lin2 "" "r" "6" "2" "2135" portée-sol) (princ) );defun c: could i get some errors do to me not calling the necessairy arguments. also since i'm new to lisp i do not have enough baggage to know if what im writting is the best way. I went to read your tutorial about Localising Variables since im mostly french im having a hard time understanding. but in some word it help the program not to repeat some variables somewhere else i guess Quote
Lee Mac Posted December 22, 2011 Posted December 22, 2011 Maybe this forum will help you in your LISP studies Quote
CadFrank Posted December 22, 2011 Author Posted December 22, 2011 ah Thanks alot For this Lee didnt know any french forum Quote
Lee Mac Posted December 22, 2011 Posted December 22, 2011 ah Thanks alot For this Lee didnt know any french forum De rien There are some clever guys on that forum Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.