Luna Posté(e) le 22 octobre 2021 Posté(e) le 22 octobre 2021 Coucou, J'ai développé il y a quelques temps un programme LISP qui utilise la commande -SUPCALQUE (équivalent à SUPCALQUE mais sans la boîte de dialogue) et qui fonctionne parfaitement bien sur les versions 2019 d'AutoCAD. Depuis quelques temps (je ne sais pas encore si le problème provient de ma version d'AutoCAD 2022 ou bien d'une variable système), cette commande ne fonctionne plus. Globalement j'ai une liste de calques à supprimer donc mon programme lance la commande -SUPCALQUE, puis utilise l'option "Nommer", "NomDuCalque" en boucle pour donner la liste des calques puis je valide mon choix et hop tous mes calques sont supprimés. Ici rien... Du coup j'ai regardé le fonctionnement de la commande seule et cette fois-ci, je lance la commande, j'utilise l'option "Nommer", "NomDuCalque" et hop la commande prend fin et le calque n'est pas supprimé (tout comme les objets situés sur ce calque). Donc j'ai voulu tester la commande SUPCALQUE afin de vérifier si le bug persiste et lorsque je sélectionne le même calque dans la boîte de dialogue, j'obtiens un message d'erreur AutoCAD me disant "ObjectEnil" (autrement dit que le calque sélectionné n'existe pas) mais le calque existe bel et bien ! Les RGT, fermer/ouvrir AutoCAD, etc ne résolvent pas le soucis. Donc ma question c'est : avez-vous un problème similaire avec cette commande (si jamais il y a des utilisateurs de cette commande) et avec quelle version d'AutoCAD ? Car je préfère être sûre que cela ne fonctionne pas pour cause d'AutoCAD foireux avant de devoir programmer ma propre commande -SUPCALQUE (ce qui sera forcément plus long que la commande native)... Merci d'avance ! Luna Citer
Olivier Eckmann Posté(e) le 22 octobre 2021 Posté(e) le 22 octobre 2021 Bonjour, Aucun souci pour moi sur Civil 2022, que ce soit avec ou sans case de dialogue, tout fonctionne bien. Olivier Citer
Eric Posté(e) le 22 octobre 2021 Posté(e) le 22 octobre 2021 Bonjour, J'ai testé sur AutoCAD 2022 et LT 2022 et ça fonctionne. As-tu essayé sur un autre plan ? Peut-être qu'un des noms de calque possède un caractère bizarre Citer Eric est formateur, revendeur sur AutoCAD LT, DraftSight, ZWCAD, SketchUp et PDF2CAD
Eric Posté(e) le 22 octobre 2021 Posté(e) le 22 octobre 2021 Un des calques n'est pas verrouillé par hasard ou calque courant ? Citer Eric est formateur, revendeur sur AutoCAD LT, DraftSight, ZWCAD, SketchUp et PDF2CAD
Luna Posté(e) le 25 octobre 2021 Auteur Posté(e) le 25 octobre 2021 Coucou, Nan je n'ai pas de noms de calques bizarres et mon programme défini le calque courant sur "0" et déverrouille tous les calques..De plus j'ai demandé à mes collègues de tester et le problème est régulier pour les versions 2022. Donc je vais voir si je n'ai pas un moyen de corriger l'utilisation de cette commande pour les versions 2022 mais vu qu'elle semble buggée même en naturelle je pense que je prendrais moins de risque de développer ma propre version de cette commande... Merci pour votre aide en tout cas ! Bisous, Luna Citer
didier Posté(e) le 25 octobre 2021 Posté(e) le 25 octobre 2021 Bonjour @Luna Tu ne fournis pas d'exemple de code donc je réponds de façon générique en supprimant le "calque1" et donc toutes les entités qu'il contient. J'ai testé cette ligne de code et elle fonctionne (version 2021 d'AutoCAD), ça t'aide ? Amicalement (command "_-Laydel" "_Name" "Calque1" "" "_Y") Citer Éternel débutant... Mon site perso : Programmer dans AutoCAD
Luna Posté(e) le 25 octobre 2021 Auteur Posté(e) le 25 octobre 2021 Coucou @didier, Je peux en effet fournir le bout de code problématique ^^" J'avais ce fonctionnement-ci (pour m'éviter de relancer 200 fois la commande à chaque calque) : ... (commmand "_-LAYDEL") (foreach layer layerlist (command "_Name" layer) ) (command "" "_Y") ... Avec 'layerlist' une liste composée du nom des calques devant être supprimés. Honnêtement je n'ai pas compris pourquoi cette commande-ci ne fonctionne pas comme les autres, c'est-à-dire qu'il suffit de concaténer le nom des calques avec une virgule en guise de séparateur... Le fonctionnement de cette commande est supposée être comme suit : Commande: _-LAYDEL Sélectionnez un objet du calque à supprimer ou [Nommer]: n Entrez le nom du calque ou [?]: Calque1 Calques sélectionnés: Calque1. Sélectionnez un objet du calque à supprimer ou [Nommer/annUler]: n Entrez le nom du calque ou [?]: Calque2 Calques sélectionnés: Calque1,Calque2. Sélectionnez un objet du calque à supprimer ou [Nommer/annUler]: n Entrez le nom du calque ou [?]: Calque3 Calques sélectionnés: Calque1,Calque2,Calque3. Sélectionnez un objet du calque à supprimer ou [Nommer/annUler]: ******** AVERTISSEMENT ******** Vous êtes sur le point de supprimer les calques suivants de ce dessin. Calque1 Calque2 Calque3 Voulez-vous continuer? [Oui/Non] <Non>: o Suppression du calque "Calque1". Suppression du calque "Calque2". Suppression du calque "Calque3". 3 calques supprimés. Et je vais vraiment commencer à me nerver parce que ce c** de totoCAD a décidé qu'aujourd'hui la commande fonctionne sur 2022 !!! Grrrrr (alors que la semaine dernière et ce matin nan, et les collègues ont le même soucis) Bon je vais voir ce que je vais faire pour faire en sorte de supporter les erreurs randoms de totoCAD. Pour le contexte, le programme a pour but de créer des fichiers purgés pour pouvoir transmettre les .dwg aux sous-traitants. Donc comme les sous-traitants ne traitent qu'un ensemble de lots précis, la purge des plans correspond finalement à un état de calque défini dans les fenêtres de présentation. Donc je récupère la liste des calques gelés dans une fenêtre et je supprime tous les calques de cette liste. Voili voilou 🙂 Bisous, Luna Citer
didier Posté(e) le 25 octobre 2021 Posté(e) le 25 octobre 2021 Hello @Luna Peut-être en mettant (initcommanversion) avant de lancer ta commande Amicalement Citer Éternel débutant... Mon site perso : Programmer dans AutoCAD
Luna Posté(e) le 25 octobre 2021 Auteur Posté(e) le 25 octobre 2021 Merci @didier ! Je vais étudier cela 😉 Ce que je comprends moins c'est que je n'ai pas souvenir d'avoir vu trainer une communication concernant une éventuelle update de cette commande donc je ne sais plus si c'est AutoCAD qui déconne, mon programme ou mon cerveau...(voire les 3 !) Bisous, Luna Citer
didier Posté(e) le 25 octobre 2021 Posté(e) le 25 octobre 2021 Bonjour @Luna Comme je te l'ai précisé, chez moi, sur une 2021, ça fonctionne avec la ligne de code proposée. Je te donne une piste de recherche, je ne suis pas du tout certain de l'efficacité de ma proposition, mais j'ai confiance en toi, tu viendras nous faire un retour détaillé de tes pérégrinations. Amicalement Citer Éternel débutant... Mon site perso : Programmer dans AutoCAD
DenisHen Posté(e) le 28 octobre 2021 Posté(e) le 28 octobre 2021 Salut à toute la communauté. Ne serait-ce pas le résultat de la commande "command" remplacée par "command-s" (ou un truc dans dans ce genre) par AutoDesk ? Et chose curieuse, après avoir installé AutoCAD VBA dans mon ToCAD 2022, certains problèmes de Lisp ont été résolus... Là, je veux bien qu'on m'explique... Cordialement à la communauté... Denis... Citer 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)
Messages recommandés