aklio Posté(e) le 26 juin 2008 Posté(e) le 26 juin 2008 Salut,je cherche un lisp qui me permet de coter une pente %.. Merci d'avance!
bonuscad Posté(e) le 26 juin 2008 Posté(e) le 26 juin 2008 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
didier Posté(e) le 27 juin 2008 Posté(e) le 27 juin 2008 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$ecriturepentegaucheces deux blocs contiennent des attributs et s'orientent automatiquementdans 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 mailcar 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 Éternel débutant... Mon site perso : Programmer dans AutoCAD
aklio Posté(e) le 27 juin 2008 Auteur Posté(e) le 27 juin 2008 Salut Didier,Voici mon mail: aklimo2000@yahoo.fr.Merci beaucoup!
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant