jms Posté(e) le 8 juillet 2020 Posté(e) le 8 juillet 2020 Bonjour,Je suppose que je devrai tôt ou tard me mettre au lisp, pour régler ce genre de souci, où je m'arrache les cheveux, que le confinement m'a fort heureusement rendu abondant !Je ne parviens pas à faire tourner un simple script Autocad, avec la commande ATTEDIT, qui me permettrait de sélectionner un bloc, connaissant ses coordonnées, son ehandle et évidemment son nom.La ligne pourrait tout simplement ressembler à ceci :(command "ATTEDIT" "Y" "SYMBOLE_NUM" "(handent '555')" "99")Mais quand il lit ce script, il reste en attente d'une sélection. Si j'ajoute les coordonnées du bloc, il ne trouve rien de mieux.Quelqu'un•e verrait-il•elle comment solutionner cela ?Naturellement, ce script contiendrait quelques milliers de lignes similaires, le but étant d'éditer un grand nombre de bloc, et d'une manière récurrente, les valeurs d'attribut étant susceptibles de changer.Merci d'avance. Citer
didier Posté(e) le 8 juillet 2020 Posté(e) le 8 juillet 2020 Coucou Je ne suis pas dans mon domaine de compétence sur le sujet des scriptsMais il me semble que tout ce qui est "sélection" est impossible avec ce langageJe guette les réponses en espérant y trouver un contradicteur ce qui réglerait ton souci.En lisp bien évidemment on est dans son domaine d'action efficace Amicalement Citer Éternel débutant... Mon site perso : Programmer dans AutoCAD
jms Posté(e) le 8 juillet 2020 Auteur Posté(e) le 8 juillet 2020 Coucou Je ne suis pas dans mon domaine de compétence sur le sujet des scriptsMais il me semble que tout ce qui est "sélection" est impossible avec ce langageJe guette les réponses en espérant y trouver un contradicteur ce qui réglerait ton souci.En lisp bien évidemment on est dans son domaine d'action efficace Amicalement Il faut voir. Les lignes ci-dessous, par exemple, permettent de sélectionner et hachurer un objet précis, connaissant son ehandle :SELECT(handent "5b4") (command "-HATCH" "S" "P" "" "P" "ANSI31" "10" "0" "CO" "T" "100,100,100" "" "")Si je pouvais en faire autant pour sélectionner l'attribut et l'éditer, je serais comblé ;-) Citer
bonuscad Posté(e) le 8 juillet 2020 Posté(e) le 8 juillet 2020 Sans avoir d'exemple de ton bloc, ceci à adapter... (command "_.-ATTEDIT" "_Yes" "Nom du BLOC" "Nom de l'ATTRIBUT" "*" (handent "HANDLE de L'ATTRIBUT") "_Value" "_Replace" "Nouvelle Valeur" "_Next") Le "Nom du BLOC" est à adapter, ainsi que "Nom de l'ATTRIBUT" "HANDLE de L'ATTRIBUT": ici c'est le handle de l'attribut qui est requis, PAS celui de l'insertion du Bloc "Nouvelle Valeur" la nouvelle valeur que tu veut affecter à ton attribut. Je n'ai pas essayé en script.... Citer Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
jms Posté(e) le 8 juillet 2020 Auteur Posté(e) le 8 juillet 2020 Sans avoir d'exemple de ton bloc, ceci à adapter... (command "_.-ATTEDIT" "_Yes" "Nom du BLOC" "Nom de l'ATTRIBUT" "*" (handent "HANDLE de L'ATTRIBUT") "_Value" "_Replace" "Nouvelle Valeur" "_Next") Le "Nom du BLOC" est à adapter, ainsi que "Nom de l'ATTRIBUT" "HANDLE de L'ATTRIBUT": ici c'est le handle de l'attribut qui est requis, PAS celui de l'insertion du Bloc "Nouvelle Valeur" la nouvelle valeur que tu veut affecter à ton attribut. Je n'ai pas essayé en script.... Merci. Je viens d'essayer en script mais ça n'accepte pas la sélection. Les guillemets du handle doivent en principe être remplacés par des apostrophes, pour éviter les guillemets dans les guillemets, Mais Autocad ne l'entend pas de cette oreille. Au lieu du (handent...) je vais essayer une sélection par coordonnées, puisque je connais celles du bloc... Citer
jms Posté(e) le 8 juillet 2020 Auteur Posté(e) le 8 juillet 2020 Pas mieux avec les coordonnées !Par contre, j'ai récupéré ta syntaxe et l'ai introduite en commandes séquentielles. C'est vraiment moins joli, mais...ÇA FONCTIONNE ! :-) _.-ATTEDIT_YesSYMBOLE_NUMNUM*(handent "5c6")_Value_Replace64_Next MERCI Citer
Messages recommandés