Bonjour les gars, un salut tout particulier à VDH. j'ai pu utiliser le code que tu as poster pour réaliser le tracer d'une fonction. J'en avait particulièrement besoin pour le tracé de l'équation de la chainette y=(1/2a)x²+a, a étant le paramètre de la chainette en mètre. Les valeur de ce paramètre sont généralement supérieures à 500 m et n'excèdent pas 3000 m. Malheureusement je ne suis pas confortable avec le tracé produit. Elle devrait produire une parabole, la même que fait un conducteur électrique suspendu entre deux poteaux. Je voudrais savoir si mon code a un problème, si oui le quel. Merci d'avance.
(defun c:chainette (/ pr x1 x2 p)
(setq pr (getreal "Spécifiez le paramètre de la chainette en m: ")
x1 (getreal "Spécifiez la borne inférieure de l'intervalle x1: ")
x2 (getreal "Spécifiez la borne supérieure de l'intervalle x2: ")
p (getreal "Spécifiez le pas p: ")
)
(setq a '(/ 1 (* 2 pr)))
(setq b '(pr))
(command "_pline")
(foreach pt (bv:coord x1
x2
'(lambda (x) (+ x p))
'(lambda (x) (+ (* a x x) B))
)
(command "_none" pt)
)
(command "")
(princ)
) bv:coord étant définie comme suit:
(defun bv:coord (a b e f)
(if (>= a B)
(cons (list b ((eval f) B)) nil)
(cons (list a ((eval f) a)) (bv:coord ((eval e) a) b e f))))