Max73 Posté(e) le 18 août 2022 Posté(e) le 18 août 2022 Bonjour, existe t il une lisp simple qui permet d insérer des blocs que je pourrais modifié SVP. Je m'explique j ai des nom de bloc par exemple "coude_DN025","coude_DN032","coude_Dn100 ......" ect et je voudrais avoir une lisp qui me permet d insérer les bloc en choisissant la fin du nom de bloc, exemple "coude_DNxxx" ou "XXX" je le choisir avant d inséré mon bloc. Et ensuite l échelle reste fois 1 et que je donne la rotation. et que cela ce relance automatiquement après.
Luna Posté(e) le 18 août 2022 Posté(e) le 18 août 2022 Coucou, Le problème vient essentiellement des attributs 😉 Mais là comme chat, je dirais quelques chose dans le genre ? (defun c:FOO (/ att str suf) (setq str "Coude_DN") ; (setq str (getstring T "\nRenseigner le préfixe : ")) (setq att (getvar "ATTDIA")) (setvar "ATTDIA" 0) (while (/= "" (setq suf (getstring (strcat "\nNom du bloc : " str)))) (command "_-INSERT" (strcat str suf) pause 1 1 pause) (while (= 1 (getvar "CMDACTIVE")) (command "")) ) (setvar "ATTDIA" att) (princ) ) S'il y a des attributs, les valeurs par défaut seront renseignées, sinon bah implante le bloc en toute simplicité ^^" J'ai laissé en commentaire la version où tu saisies aussi le préfixe pour tes blocs avant la boucle (si jamais tu as autre chose que "Coude_DN") Tu peux changer le nom de la commande évidemment (en conservant le "C:" !) Bisous, Luna
Max73 Posté(e) le 19 août 2022 Auteur Posté(e) le 19 août 2022 Bonjour, merci c'est ce qu' il me fallait et non pas d attribut dans mes blocs. Juste a la place de taper la valeur du préfixe il faudrait que je puisse la choisir comme cela. Mais bon je vais essaye de le modifié mois pour apprendre car j ai plein d autre idée 😉 bisous
Luna Posté(e) le 19 août 2022 Posté(e) le 19 août 2022 Il faut dans ce cas-là, regarder du côté de (getkword) avec un (initget) associé, à la place du (getstring). Bisous, Luna
Max73 Posté(e) le 19 août 2022 Auteur Posté(e) le 19 août 2022 Merci je vais essayer, mais c'est pas gagné 😄
Max73 Posté(e) le 19 août 2022 Auteur Posté(e) le 19 août 2022 bon je suis arrive a modifie ton lisp 🥳 par contre j ai un soucis c'est quant il relance la demande , je valide ou choisi un autre diamètre il me dit donne incorrect 😟 (defun c:FOOo (/ att str suf) (setq str "CPC_DN") ; (setq str (getstring T "\nRenseigner le préfixe : ")) (setq att (getvar "ATTDIA")) (setvar "ATTDIA" 0) (initget "032 040 100") (while (/= "" (setq suf (getkword "\ndiametre DN [032/040/100]? <100>: "))) (command "_-INSERT" (strcat str suf) pause 1 1 pause) (while (= 1 (getvar "CMDACTIVE")) (command "")) ) (setvar "ATTDIA" att) (princ) )
Luna Posté(e) le 19 août 2022 Posté(e) le 19 août 2022 Comme j'ai dit, il faut que (getkword) soit associé à (initget) ^^" Donc c'est plus quelque chose comme chat (avec quelques modifications en plus évidemment pour prendre en compte les différences entre (getstring) et (getkword)) : (defun c:FOOo (/ str att lst suf break) (setq str "Coude_DN") ; (setq str (getstring T "\nRenseigner le préfixe : ")) (setq att (getvar "ATTDIA")) (setvar "ATTDIA" 0) (setq lst "15 20 25 32 40 50 65 80 100 125 150 200 250 300 350 400 450 500") (while (and (not break) (null (initget lst)) (or (setq suf (getkword (strcat "\nType de conduite DN [" (vl-string-translate " " "/" lst) "/Quitter] <100> : " str))) (setq suf "100") ) ) (if (= "Quitter" suf) (setq break T) (progn (command "_-INSERT" (strcat str suf) pause 1 1 pause) (while (= 1 (getvar "CMDACTIVE")) (command "")) ) ) ) (setvar "ATTDIA" att) (princ) ) PS: Je ne l'ai pas testé cependant donc à voir... Bisous, Luna
Max73 Posté(e) le 19 août 2022 Auteur Posté(e) le 19 août 2022 😅 Ah oui effectivement je suis vraiment nul !!!!!. Bon je l ai teste et ca fonctionne très bien. Merci 🥰 bisous.
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