Geopee Posté(e) le 1 septembre 2016 Posté(e) le 1 septembre 2016 Bonjour à tous, Je suis nouveau ici, et pas très vieux dans le milieu du Lisp, alors n'hésitez pas à me reprendre.J'utilise Autocad Map3D 2016. Je souhaiterais créer une fonction qui supprime tous les objet d'un calque. J'ai réussi à créer cette fonction, mais ça ne marche que quand ça marche... C'est à dire : ssx••LA•*CALQUE••pselect•p••EFFACER¶ Si le calque contient des objets, ça fonctionne, sinon, le script freeze sur le EFFACER ("sélection non valable") Commande: ssx Initialisation... Type "ssx" at a Command: prompt or (ssx) at any object selection prompt. Select object <None>: Enter filter option [block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector]: LA >>Enter layer name to add <RETURN to remove>: *CALQUE Current filter: ((8 . "*CALQUE")) Enter filter option [block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector]: 0 found. Commande: Commande: pselect Sélectionner des objets: p Pas de jeu de sélection précédent. Sélectionner des objets: Commande: EFFACER Sélectionner des objets: ssx *Sélection non valable* Attend un point ou Fenêtre/Dernier/Capture/BOîte/TOUT/Trajet/SPolygone/CPolygone/Groupe/Ajouter/Supprimer/Multiple/Précédent/annUler/AUto/uniQue/SOus-objet/Objet Donc ma question est la suivante :Y'aurait-il un équivalent à la fonction "try" en C++, qui efface si la sélection contient des objet et ne fait rien si le calque est vide ou inexistant? Citer
DenisHen Posté(e) le 2 septembre 2016 Posté(e) le 2 septembre 2016 Bonjour, et bienvenu. Une petite question : faut-il garder le calque après effacement de son contenu ? S'il ne faut pas, il y a la commande SUPCALQUE, qui supprime le contenu d'un ou plusieurs calques et supprime aussi le calque. 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)
Tramber Posté(e) le 2 septembre 2016 Posté(e) le 2 septembre 2016 Salut GeopeeTon script est plutôt bon. C'est la sélection vide qui fait planter, c'est tout. Ca se voit bien en ligne de commande. Le calque n'a pas d'objets....Le script n'est pas de la programmation. Pas de contrôle des erreurs comme tu demandes avec Try (qui aurait un peu des équivalent en lisp). Citer Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
Geopee Posté(e) le 5 septembre 2016 Auteur Posté(e) le 5 septembre 2016 Tramber >> Je ne me sens malheureusement pas capable à l'heure actuelle de créer un lisp qui me ferait ça... DenisH >> la commande supcalque ouvre une fenetre dans laquelle il faut selectionner le(s) calque(s) à supprimer. Je veux lui passer le nom du calque en ligne de commande pour executer le script sur un lot de fichiers. J'ai essayé en mettant CMDDIA à 0, sans succés. Citer
je56 Posté(e) le 5 septembre 2016 Posté(e) le 5 septembre 2016 et si tu mets un - devant la commande -supcalque? Eric Citer
Steven Posté(e) le 5 septembre 2016 Posté(e) le 5 septembre 2016 DenisH >> la commande supcalque ouvre une fenetre dans laquelle il faut selectionner le(s) calque(s) à supprimer. Je veux lui passer le nom du calque en ligne de commande pour executer le script sur un lot de fichiers. J'ai essayé en mettant CMDDIA à 0, sans succés.Salut Geopee, Tu n'avais pas précisé que tu souhaites exécuter le script sur un lot de fichiers dans ta demande initiale.Dans ce cas, peut-être devrais-tu utiliser SuperAutoScript pour lancer ton script sur plusieurs fichiers en même-temps. Citer Steven________________________________________ Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD. Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD. En rêve; AutoCAD sous Linux.
Geopee Posté(e) le 6 septembre 2016 Auteur Posté(e) le 6 septembre 2016 C'est ce que je fais déja Steeven B) C'est pour ça que le script ne doit pas s'arreter, ni demander la main de l'utilisateur. je56 >> J'essaye ça tout de suite Edit :je56 >> T'es le meilleur :wub: :(rires forts): :(rires forts): Citer
Messages recommandés