didier Posté(e) le 12 juillet 2019 Posté(e) le 12 juillet 2019 Coucou franchement j'ai perdu le fil tellement c'est alambiqué...alors je vais recommencer simplementfais un test dans un dessin vierge et en donnant une altitude il va te dessiner une "droite" dont la valeur Y sera ce que tu appelles NGF et qui est une altitude en élévationTiens-moi au courant et on fera du pas à pas...Est-ce que ces lignes te vont ? (setq ngf (getreal "\nValeur altimétrique ?\n")) (command "_xline" "h" (list 0 ngf 0) "") Éternel débutant... Mon site perso : Programmer dans AutoCAD
Ksow Posté(e) le 15 juillet 2019 Auteur Posté(e) le 15 juillet 2019 EDIT 19.07.2019 : Bonjour, J'ai réussi à trouver une solution et je pense avoir terminer mon programme. Merci à ceux qui m'ont aidé (et supporter) ! Mention spécial à didier :D Vous trouverez mon programme dans le message suivant et si jamais vous avez des idées pour améliorer ou simplifier mon programme je suis toute ouïe ! Bonne journée. Ksow
Ksow Posté(e) le 15 juillet 2019 Auteur Posté(e) le 15 juillet 2019 EDIT 19.07.2019 : Je transmets ici mon programme au cas où cela pourrait servir. (finir le programme le jour de son anniversaire c'est quand même assez comique) ;; +---------------------------------------------------+ ;; | Projet : QUADRILLAGE DE REFERENCE | ;; +---------------------------------------------------+ ;;;***************** ;;; DONNEES ;;;***************** (defun init () (setq acrobj (getvar "OSMODE")) (setq units_angle (getvar "AUNITS")) (setq nbdeci (getvar "LUPREC")) (setq attreq (getvar "ATTREQ")) (setq attdia (getvar "ATTDIA")) (setq units (getvar "INSUNITS")) (setvar "OSMODE" 167) (setvar "AUNITS" 0) (setvar "LUPREC" 0) (setvar "ATTREQ" 1) (setvar "ATTDIA" 0) ) (defun reinit () (setvar "OSMODE" acrobj) (setvar "AUNITS" units_angle) (setvar "PLINEWID" 0) (setvar "ATTREQ" attreq) (setvar "ATTDIA" attdia) (setvar "INSUNITS" units) (setvar "LUPREC" nbdeci) ) (defun Ins_Bloc (Pt Ht_NGF) (setq bloc_name (strcat "BLOC_" axe unit)) (command "-INSERER" bloc_name Pt 1 1 0 Ht_NGF) ) ;;; ***************** ;;; PROGRAMME ;;; ***************** (defun c:NGF () (init) (if (not (tblsearch "LAYER" "00-QUADRILLAGE-NGF")) (command "_LAYER" "N" "00-QUADRILLAGE-NGF" "CO" "230" "00-QUADRILLAGE-NGF" "TL" "AXES" "00-QUADRILLAGE-NGF" "") ) (command "_LAYER" "CH" "00-QUADRILLAGE-NGF" "") (setvar "CECOLOR" "DUCALQUE") (initget 1 "MIllimètre CEntimètre MEtre") (setq Choix_unit (getkword "\nSpécifier l'unité de dessin : [MIllimètre/CEntimètre/MEtre] ")) (cond ((= Choix_unit "MIllimètre") (setq unit "mm" coeff_unit 1000.0) (setvar "INSUNITS" 4) ) ((= Choix_unit "CEntimètre") (setq unit "cm" coeff_unit 100.0) (setvar "INSUNITS" 5) ) ((= Choix_unit "MEtre") (setq unit "m" coeff_unit 1.0) (setvar "INSUNITS" 6) ) ) (setq axe "NGF_") (prompt "\nDessin des axes HORIZONTAUX :") (initget 1 "Point Distance Saisie") (setq Choix_trace (getkword "\nVeuillez préciser si vous souhaitez choisir des points ou si vous souhaitez entrer les niveaux NGF [Point/Distance/Saisie] : ")) (setq Pt_ref (getpoint "\nVeuillez renseigner un point de référence : ")) (setq Y-Pt_ref (cadr Pt_ref)) (setq X-Pt_ref (- (car Pt_ref) (* 1 coeff_unit))) (setq Ht_ref (getreal "\nVeuillez renseigner le niveau NGF du point de référence (en m) : ")) (command "_XLINE" "H" Pt_ref "") (Ins_Bloc (list X-Pt_ref Y-Pt_ref (caddr Pt_ref)) (strcat (if (< Ht_ref 0) "-" "+") (rtos Ht_ref 2 2) " NGF")) (cond ((= Choix_trace "Point") (while (setq Pt_Ins (getpoint "\nVeuillez renseigner un point altimétrique (ENTRER pour terminer) : ")) (setq Ht_Ins (+ Ht_ref (/ (- (cadr Pt_Ins) Y-Pt_ref) coeff_unit))) (setq Pt_Ins (list X-Pt_ref (cadr Pt_Ins) (caddr Pt_ref))) (command "_XLINE" "H" Pt_Ins "") (Ins_Bloc Pt_Ins (strcat (if (< Ht_Ins 0) "-" "+") (rtos Ht_Ins 2 2) " NGF")) ) ) ;;;; ((= Choix_trace "Distance") (while (setq Pt_1 (getpoint "\nSpécifier le point de départ")) (setq Pt_2 (getpoint "\nSpécifier le point suivant")) (setq Dist_PtSCU (distance Pt_1 Pt_2)) (setq PtSCU (list X-Pt_ref (+ Y-Pt_ref Dist_PtSCU) (caddr Pt_ref))) (setq NewVal (+ Ht_ref (/ (- (cadr PtSCU) Y-Pt_ref) coeff_unit))) (command "_XLINE" "H" PtSCU "") (Ins_Bloc PtSCU (strcat (if (< NewVal 0) "-" "+") (rtos NewVal 2 2) " NGF")) ) ) ;;;; ((= Choix_trace "Saisie") (while (setq Ht_Ins (getreal "\nVeuillez renseigner un niveau NGF (en m) (ENTRER pour terminer) : ")) (setq Pt_Ins (list X-Pt_ref (+ Y-Pt_ref (* (- Ht_Ins Ht_ref) coeff_unit)) (caddr Pt_ref))) (command "_XLINE" "H" Pt_Ins "") (Ins_Bloc Pt_Ins (strcat (if (< Ht_Ins 0) "-" "+") (rtos Ht_Ins 2 2) " NGF")) ) ) ) (setq axe "DIST_") (command "_XLINE" "V" Pt_ref "") (setq Y-Pt_ref (- (cadr Pt_ref) (* 2 coeff_unit))) (setq X-Pt_ref (car Pt_ref)) (Ins_Bloc (list X-Pt_ref Y-Pt_ref (caddr Pt_ref)) (strcat "+" "0.00" " m")) (prompt "\nDessin des axes VERTICAUX :") (initget 1 "Point Distance Saisie") (setq Choix_trace (getkword "\nVeuillez préciser si vous souhaitez choisir des points ou si vous souhaitez entrer les distances [Point/Distance/Saisie] : ")) (setq Dist_ref 0) (cond ((= Choix_trace "Point") (while (setq Pt_Ins (getpoint "\nVeuillez renseigner un point distant du point de référence (ENTRER pour terminer) : ")) (setq Dist_Ins (+ Dist_ref (/ (- (car Pt_Ins) X-Pt_ref) coeff_unit))) (setq Pt_Ins (list (car Pt_Ins) Y-Pt_ref (caddr Pt_ref))) (command "_XLINE" "V" Pt_Ins "") (Ins_Bloc Pt_Ins (strcat (if (< Dist_Ins 0) "-" "+") (rtos Dist_Ins 2 2) " m")) ) ) ((= Choix_trace "Distance") (while (setq Pt_1 (getpoint "\nSpécifier le point de départ")) (setq Pt_2 (getpoint "\nSpécifier le point suivant")) (setq Dist_PtSCU (distance Pt_1 Pt_2)) (setq PtSCU (list (+ X-Pt_ref Dist_PtSCU) Y-Pt_ref (caddr Pt_ref))) (setq NewVal (+ Ht_ref (/ (- (car PtSCU) X-Pt_ref) coeff_unit))) (command "_XLINE" "V" PtSCU "") (Ins_Bloc PtSCU (strcat (if (< NewVal 0) "-" "+") (rtos NewVal 2 2) " NGF")) ) ) ((= Choix_trace "Saisie") (while (setq Dist_Ins (getreal "\nVeuillez renseigner une distance par rapport au point de référence (en m) (ENTRER pour terminer) : ")) (setq Pt_Ins (list (+ X-Pt_ref (* Dist_Ins coeff_unit)) Y-Pt_ref (caddr Pt_ref))) (command "_XLINE" "V" Pt_Ins "") (Ins_Bloc Pt_Ins (strcat (if (< Dist_Ins 0) "-" "+") (rtos Dist_Ins 2 2) " m")) ) ) ) (reinit) )
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