Aller au contenu

Commande -SUPCALQUE (mise à jour ?)


Messages recommandés

Posté(e)

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

Posté(e)

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

Posté(e)

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")

 

Posté(e)

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

Posté(e)

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

Posté(e)

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

Posté(e)

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...

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)

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité