Aller au contenu

Messages recommandés

Posté(e)

Salut,

 

J'ai bien ceci pour t'inspirer. Devrait fonctionner en 3D, mais pas encore vraiment contrôlé s'il y a des bugs. Donc re-contrôle quand même les résultats les premiers temps.

 

(defun C:ID-PENTE ( / pt_o pt_f dxf_11 dev dev_z)
(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
				(setq
					dxf_11 (trans (mapcar '(lambda (x / ) (/ x (distance (trans pt_o 1 0) (trans pt_f 1 0)))) (mapcar '- (trans pt_f 1 0) (trans pt_o 1 0))) 0 1 T)
				)
				(if (zerop (car dxf_11))
					(setq dev "infini")
					(setq dev (rtos (* (/ (cadr dxf_11) (car dxf_11)) 100.0) 2 4))
				)
				(if (= (caddr dxf_11) 1.0)
					(setq dev_z "infini")
					(if (zerop (caddr dxf_11))
						(setq dev_z (rtos 0.0 2 4))
						(setq dev_z (rtos (* (sqrt (/ 1.0 (- (/ 1.0 (* (caddr dxf_11) (caddr dxf_11))) 1.0))) 100.0) 2 4))
					)
				)
				(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 " %"))
			)
		)
	)
)
(prin1)
)

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

Posté(e)

Bonjour,

 

ta question porte bien sur l'écriture de pentes sur un plan,

pas sur un profil ou une coupe ?

 

si c'est le cas,

j'ai écrit ceci

 

le fonctionnement nécessite la référence à deux blocs

$ecriturepentedroite et

$ecriturepentegauche

ces deux blocs contiennent des attributs et s'orientent automatiquement

dans le sens point haut vers point bas.

en changeant la valeur de dec tu modifieras les décimales du résultat.

 

si tu rencontres des difficultés à les créer, je les ferai passer par mail

car je ne sais coller des fichiers sur CadXP.

 

amicalement

 

;ecriture de la pente

(defun c:ECP ()
 (setq p1 (getpoint "\npoint1\n\t"))
 (setq p2 (getpoint p1 "\npoint2\n\t"))
 (setq
   dist (sqrt (+ (* (- (car p1) (car p2)) (- (car p1) (car p2)))
	  (* (- (cadr p1) (cadr p2)) (- (cadr p1) (cadr p2)))
       )
 )
 )
 (setq	zp1 (caddr p1)
zp2 (caddr p2)
 )
 (if (    (progn
     (setq pbas p1)
     (setq phaut p2)
   )
   (progn
     (setq pbas p2)
     (setq phaut p1)
   )
 )
 (setq dir (angle phaut pbas))
 (setq deltaz (abs (- zp1 zp2)))
 (setq pente (* 100 (/ deltaz dist)))
 (setq	p11 (list (car p1) (cadr p1))
p22 (list (car p2) (cadr p2))
 )

 (setq dirgrades (atof (angtos dir 2 2)))
 (setq osmode-old (getvar "osmode"))
 (setvar "osmode" 0)

 (setq	xmil (/ (+ (car p1) (car p2)) 2)
ymil (/ (+ (cadr p1) (cadr p2)) 2)
zmil(/ (+ (caddr p1) (caddr p2)) 2)
pins (list xmil ymil zmil)
 )
 (setq pentetexte (strcat (rtos pente 2 2) " %"))
 (if (> 200 dirgrades)
   (setq bloc_ins "$ecriturepentedroite")
   (setq bloc_ins "$ecriturepentegauche")
 )
 (command "_insert" bloc_ins pins "4" "4" dirgrades pentetexte)

 ;(command "_move" (entlast) "" pins pause)
 (setvar "osmode" osmode-old)

);defun

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é