GOLUM69 Posté(e) le 2 mars 2018 Posté(e) le 2 mars 2018 Bonsoir a tous, je revient vers vous car j'ai encore un petit problème que je n'arrive pas a résoudre. Je voudrais créer un programme permettant de créer des zones de stockages pour un plan d'installation de chantier. Le programme consisterais à demander à l'utilisateur de sélectionner plusieurs points sur le plan puis une fois qu'il appui sur return, la polyligne se ferme. (car dans mon début de programme, ci après, quand je met "c" a la fin de la commande cela ne fonctionne pas) puis de récupérer l'aire de la polyligne crée et de l'afficher en texte, centré au milieu de la zone. J'ai malheureusement de très grosses lacunes en codes DXF, je ne sais pas trop les manipulés. C'est pour quoi j'implore grandement votre aide !!! :( :( :( VOICI LE DEBUT DE MON CODE (tout pourri :( ) : (defun c:ZoneStockage() (setq pt(getpoint "\nPoint d'origine: ")) (command "polylign" pt "la" 0 0 "c") (while pt (setq pt (getpoint "\nPoint suivant(Return pour FIN): ")) (command pt)))
DenisHen Posté(e) le 2 mars 2018 Posté(e) le 2 mars 2018 Salut. Je te propose ça :;;; ******************** ;;; Prog pour Golum69 ;;; ******************** (defun c:ZoneStockage ( / p ) (setq p (getpoint)) (command "_pline" p (while p (command (setq p (getpoint "\nPoint suivant (Return pour FIN) : " p))))) (command "pedit" (entlast) "c" "") (princ) ) ;_ Fin de defun Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
GOLUM69 Posté(e) le 4 mars 2018 Auteur Posté(e) le 4 mars 2018 Merci beaucoup DenisHen !! et dis moi saurais tu comment faire pour récupérer l'aire de la polyligne et que cela affiche l'aire en texte selon le point ou l'on clique ? Thanks you d'avance ..
zebulon_ Posté(e) le 4 mars 2018 Posté(e) le 4 mars 2018 (command "_.pline" (while (not (zerop (getvar "cmdactive"))) (command pause) ) ) pour utiliser la commande _pline avec toutes ses possibilités, pas simplement entrer le point suivant... Merci beaucoup DenisHen !! et dis moi saurais tu comment faire pour récupérer l'aire de la polyligne et que cela affiche l'aire en texte selon le point ou l'on clique ? Thanks you d'avance ..je suggère l'utilisation d'un champ AmicalementVincent C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme) C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)
DenisHen Posté(e) le 5 mars 2018 Posté(e) le 5 mars 2018 +1 avec Vincent. Il serait judicieux de placer un champs plutôt qu'un texte, mais ça, je ne sais pas faire en lisp... Windows 11 / AutoCAD 2024 Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net). Davantage d'avantages, avantagent davantage (Bobby Lapointe). La connaissance s'accroît quand on la partage (Socrate). Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)
Vincent P. Posté(e) le 4 mai 2018 Posté(e) le 4 mai 2018 Salut! J'ai repris le code de DenisHen, et j'ai ajouté la création du champ. ;;; ******************** ;;; Prog pour Golum69 ;;; ******************** (vl-load-com) (defun c:ZoneStockage ( / p zst id aire) (setq p (getpoint)) (command "_pline" p (while p (command (setq p (getpoint "\nPoint suivant (Return pour FIN) : " p))))) ;créer la polyligne (setq zst (entlast)) ; stoker la polyligne (command "pedit" zst "c" "") (setq id (vla-get-ObjectID (vlax-ename->vla-object zst)) ; isoler l'ID de la polyligne aire (strcat "%<\\AcObjProp Object(%<\\_ObjId " (itoa id) ">%).Area \\f \"%lu2\">%")) ; stoke le texte pour créer un champ contenant l'aire (command "-TEXTE" (getpoint) "4" "100g" (strcat "Aire de Stockage : " aire " m2")) (princ) ) ;_ Fin de defun Dit nous si c'est ce que tu cherchais! Lispeur éternel débutant! Autocad Map3D 2023 Covadis-Autopist 18.2
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