Aller au contenu

Créer une pente, identifier une pente


Messages recommandés

Posté(e)

Je vous présente déjà tout mes voeux pour 2005.

 

Récemment il y avait eu une discussion sur les pentes en pourcentage.

J'ai donc amélioré des routines que j'avais déjà réalisé pour que celle-ci puissent fonctionner DANS le plan XY et AVEC le plan XY.

 

En voici le résultat:

(defun errlsp (ch)
(cond
	((eq ch "Function cancelled") nil)
	((eq ch "quit / exit abort") nil)
	((eq ch "console break") nil)
	(T (princ ch))
)
(setvar "cmdecho" v1)
(setvar "orthomode" v2)
(setvar "osmode" v3)
(setvar "blipmode" v4)
(setvar "snapang" v5)
(setq *error* olderr)
(princ)
)
(defun C:PENTE ( / v1 v2 v3 v4 v5 d_pc flag p_o p_f dlt_x d olderr)
(setq v1 (getvar "cmdecho")
      v2 (getvar "orthomode")
      v3 (getvar "osmode")
      v4 (getvar "blipmode")
      v5 (getvar "snapang")
)
(setvar "cmdecho" 0)
(setvar "orthomode" 0)
(setvar "blipmode" 0)
(setq olderr *error* *error* errlsp)
(initget 1)
(setq d_pc (getreal "\nEntrer la valeur de la pente (rampe) en % ?: "))
(initget 8)
(setq p_o (getpoint "\nPoint de départ : "))
(if (eq p_o ()) (setq p_o (getvar "lastpoint")))
(initget "Dans Avec _In With")
(if (eq (getkword "\nPente [Dans/Avec] le plan XY : ") "With")
	(setq flag T)
	(progn
		(setvar "snapang" (atan (/ d_pc 100.0)))
		(setvar "orthomode" 1)
		(setq flag nil)
	)
)
(initget 41)
(setq p_f (getpoint p_o "\nPoint final : "))
(setvar "osmode" (+ 16384 (rem (getvar "osmode") 16384)))
(if flag
	(progn
		(setq dlt_x (sqrt (+ (* (- (car p_o) (car p_f)) (- (car p_o) (car p_f))) (* (- (cadr p_o) (cadr p_f)) (- (cadr p_o) (cadr p_f))))))
		(setq d (* dlt_x (/ (sin (atan (/ d_pc 100.0))) (cos (atan (/ d_pc 100.0))))))
		(setq p_f (list (car p_f) (cadr p_f) (+ (caddr p_o) d)))
		(command "_.line" p_o p_f "")
		
	)
	(progn
		(setq dlt_x (- (car p_f) (car p_o)))
		(setq d (/ dlt_x (cos (atan (/ d_pc 100.0)))))
		(command "_.line" p_o (polar p_o (atan (/ d_pc 100.0)) d) "")
	)
)
(setvar "cmdecho" v1)
(setvar "orthomode" v2)
(setvar "osmode" v3)
(setvar "blipmode" v4)
(setvar "snapang" v5)
(setq *error* olderr)
(prin1)
)

Et la deuxième:

(defun C:ID-PENTE ( / blp pt_o pt_f e_last dxf_o dev dev_z)
(setvar "cmdecho" 0)
(setq blp (getvar "blipmode"))
(setvar "blipmode" 0)
(initget 8)
(setq pt_o (getpoint "\nSpécifiez le point de départ: "))
(if (null pt_o) (setq pt_o (getvar "lastpoint")))
(cond
	(pt_o
		(initget 41)
		(setq pt_f (getpoint pt_o "\nChoix du point final: "))
		(cond
			(pt_f
				(command "_.ray" pt_o pt_f "")
				(setq
					e_last (entlast)
					dxf_o (trans (cdr (assoc 11 (entget e_last))) 0 1 T)
				)
				(if (zerop (car dxf_o))
					(setq dev "infini")
					(setq dev (rtos (* (/ (cadr dxf_o) (car dxf_o)) 100.0) 2 4))
				)
				(if (= (caddr dxf_o) 1.0)
					(setq dev_z "infini")
					(if (zerop (caddr dxf_o))
						(setq dev_z (rtos 0.0 2 4))
						(setq dev_z (rtos (* (sqrt (/ 1.0 (- (/ 1.0 (* (caddr dxf_o) (caddr dxf_o))) 1.0))) 100.0) 2 4))
					)
				)
				(entdel e_last)
				(prompt (strcat "\nPente dans le plan XY = " dev " % - Pente avec le plan XY = " dev_z " %"))
				(alert (strcat "Pente dans le plan XY = " dev " % - Pente avec le plan XY = " dev_z " %"))
			)
		)
	)
)
(setvar "blipmode" blp)
(setvar "cmdecho" 1)
(prin1)
)

 

Bruno V.

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

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é