Aller au contenu

Division d\'un quadrilatère par une ligne parallèle à la base et d\'une surface donnée.


bonuscad

Messages recommandés

Une requête sur un forum US m'a fais développer un petit bout de code (fait rapidement)

 

Je le poste ici au cas ou quelqu'un aurait le même besoin.

 

Je me suis appuyé sur les formules de Saron pour établir le code.

 

(defun ang_between (p10 p11 p20 p21 / px p1 p2 l_pt l_d p ang)
(setq px (inters p10 p11 p20 p21 nil))
(cond
	(px
		(if (> (distance px p10) (distance px p11)) (setq p1 p10) (setq p1 p11))
		(if (> (distance px p20) (distance px p21)) (setq p2 p20) (setq p2 p21))
		(setq
			l_pt (list px p1 p2)
			l_d (mapcar 'distance l_pt (append (cdr l_pt) (list (car l_pt))))
			p (/ (apply '+ l_d) 2.0)
			ang (* (atan (sqrt (/ (* (- p (car l_d)) (- p (caddr l_d))) (* p (- p (cadr l_d)))))) 2.0)
		)
	)
	(T
		nil
	)
)
)
(defun c:divide_saron ( / pt1 pt2 pt3 pt4 S1 ang1 ang2 x1 x2 ptx1 ptx2)
 (setq pt1 (getpoint "\nPremier point de la ligne de base: "))
 (setq pt2 (getpoint pt1 "\nSecond point de la ligne de base: "))
 (setq pt3 (getpoint pt1 "\nPoint sur le premier côté adjacent: "))
 (setq pt4 (getpoint pt2 "\nPoint sur le deuxième côté adjacent: "))
 (setq S1 (getreal "\nSurface désirée: "))
 (setq ang1 (ang_between pt1 pt2 pt1 pt3))
 (setq ang2 (ang_between pt2 pt1 pt2 pt4))
 (setq ang1 (- pi ang1) ang2 (- pi ang2))
 (setq x1
   (*
     (/
       (* (distance pt1 pt2) (sin ang1))
       (sin (+ ang1 ang2))
     )
     (1-
       (+ ;ou peut être "-"
         (sqrt
           (1+
             (/
               (* 2.0 S1 (sin (+ ang1 ang2)))
               (* (distance pt1 pt2) (distance pt1 pt2) (sin ang1) (sin ang2))
             )
           )
         )
       )
     )
   )
 )
 (setq x2 (/ (* x1 (sin ang2)) (sin ang1)))
 (setq ptx1 (polar pt1 (angle pt1 pt3) x2))
 (setq ptx2 (polar pt2 (angle pt2 pt4) x1))
 (command "_.line" "_none" ptx1 "_none" ptx2 "")
)

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

Bonsoir à toutes et tous,

 

Du grand bonuscad, :D

 

J'ai comparé avec les résultats donnés par Covadis et par programme calculatrice, idem !

 

Merci encore pour ton sens du partage,...

 

A ce rythme, je n'aurai plus besoin d'enseigner Covadis moi ! :P

Civil 3D 2025 - COVADIS_18.3b

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

Du grand bonuscad

 

Je dirais plutôt du grand Saron

 

Le pauvre a mal fini, mais avant de se faire couper la tête, il a malgré tout achevé ses calculs.

 

On trouve pas grand chose sur le net (je conserve bien mes formules).

Le seul document PDF que j'ai trouvé donnant quelques formules.

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

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é