Zugzwang Posté(e) le 30 août 2022 Posté(e) le 30 août 2022 Bonjour J'ai un lispounet pour me créer un calque épure qui me sert de trait au crayon gris dans mes dessin. Quand je le fait avec (entmake , le code (70 . 0) le met actif. Mais il m'arrive de lancer la commande dans un dessin ou le calque est déja présent, et je me retrouve avec mon calque actif, mais non affiché ou geler.. comment s'assurer que si le calque existe il soit activé, (ou qu'on le force) voila ma pauvre prose... (defun c:eee () (if (not (tblsearch "LAYER" "---EPURES")) (entmakex (list '(0 . "LAYER") '(100 . "AcDbSymbolTableRecord") '(100 . "AcDbLayerTableRecord") (cons 2 "---EPURES") '(70 . 0) '(62 . 32) ) ) (setvar "clayer" "---EPURES") ) ) merci...
DenisHen Posté(e) le 30 août 2022 Posté(e) le 30 août 2022 Salut @Zugzwang Je te propose une petite ligne de commande : (command "-calque" "e" "---EPURES" "") Plusieurs choses, cette ligne : - créé le calque s'il n'existe pas, - le rends courant, - le rends visible (et probablement de dégèle). Je n'ai pas AutoCAD sous la main, il faudrait vérifier... 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)
Zugzwang Posté(e) le 31 août 2022 Auteur Posté(e) le 31 août 2022 merci 😉 mais cette ligne ne résout pas le pb pour forcer l'affichage du calque s'il existe 😞
didier Posté(e) le 31 août 2022 Posté(e) le 31 août 2022 Bonjour @Zugzwang Puisque tu utilises un IF et que tu veux deux choses, si le IF est vérifié. Il faut utiliser PROGN pour "globaliser" ce qui va se passer si le IF est vérifié Sinon, il prend ta ligne de mettre le calque courant SI le IF n'est pas vérifié, je suis clair ? Code corrigé (defun c:eee () (if (not (tblsearch "LAYER" "---EPURES")) (progn (entmakex (list '(0 . "LAYER") '(100 . "AcDbSymbolTableRecord") '(100 . "AcDbLayerTableRecord") (cons 2 "---EPURES") '(70 . 0) '(62 . 32) ) ) (setvar "clayer" "---EPURES") ) ) ) Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
Zugzwang Posté(e) le 31 août 2022 Auteur Posté(e) le 31 août 2022 à confirmer, mais il n'y a que deux commandes, le (Entmake, et le (setvar je ne crois pas que le promt serve à qq chose à la limite le prompt servirai pour enchainer le (setvar avec l'activation et le dégel puisque le setvar est lu que si le calque existe? mais bon, j'ai testé... ça change rien effectivement
didier Posté(e) le 31 août 2022 Posté(e) le 31 août 2022 Désolé, je ne comprends pas ce que vous expliquez et ne peut donc clarifier plus avant Éternel débutant... Mon site perso : Programmer dans AutoCAD
DenisHen Posté(e) le 31 août 2022 Posté(e) le 31 août 2022 il y a 42 minutes, Zugzwang a dit : merci 😉 mais cette ligne ne résout pas le pb pour forcer l'affichage du calque s'il existe 😞 Je ne comprends pas, chez moi, si le calque est inactif, mon exemple active ce calque... 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)
Luna Posté(e) le 31 août 2022 Posté(e) le 31 août 2022 Coucou, Essaye simplement de sortir ton (setvar) de ton (if), car si je comprends bien la démarche, si ton calque existe > le définir courant ; si ton calque n'existe pas > le créer + le définir courant... Donc au final l'action de "définir courant" est commune aux deux cas de figure :3 Bisous, Luna
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