Bonjour,
Je désir faire un script qui insert un bloc en remplissant les attributs.
l'espace me permet de faire les ENTER
mais pour entrer les séparateur entre les valeurs d'attributs l'espace le ;
sont pris comme des caractères dans le champs
-INSERER D:\HB4\1 1 0,0 ATTRIBUT1 ATTRIBUT2 ATTRIBUT3
dans ce cas je veux:
insérer -INSERER
le bloc D:\HB4\1
echelle 1
point d'insertion 0,0
Attribut 1 ATTRIBUT1
Attribut 2 ATTRIBUT2
Qui a une idée
Le titre du sujet a été modifié par un modérateur pour faciliter la recherche. Titre original:
Script d'insertion de bloc
Résolu ! Accéder à la solution.
Résolu par Y.AUBRY. Accéder à la solution.
Bonjour, j'ai essayé ce script mais j'ai un petit souci:
Le bloc s'insere, avec les parametre de position, echelle, rotation... Mais je n'arrive pas a éditer dans la foulée mes attributs. VOus auriez une idée?
Bonjour @gricatti la discussion date de 2007, il est improbable que l'auteur de cette époque puisse vous répondre. Par contre d'autres utilisateurs pourront éventuellement avoir une idée.
;;;
;;; Principe permettant d'insérer des blocs avec un script Autocad.
;;; Utilisation possible sur Autocad LT aussi à partir de la version 2024.
;;;
;;; Créé vos blocs avec pour chaque attribut une valeur par défaut qui sera unique dans le bloc est le dessin au moment de l'insertion dans dessin.
;;;
;;; le gros avantage de cette technique d'utilisation des instructions Autolisp dans un script la relecture est plus rapide, pas de problème d'espace en trop...
;;;
;;
;;
(VL-LOAD-COM)
;;
;; Utilise les valeurs par défaut de tous les attributs.
;;
(setvar "ATTREQ" 0)
;;
;; Pour l'insertion d'un bloc
;;
;; Exemple avec un bloc ayant 3 Attributs
(command-s "_-insert" "NomBloc1" "50,50" 1 0)
;;
;; Utilisation de la commande ATTEDIT pour faire un 'rechercher remplacer' dans le dessin
;;
(command-s "attedit" "n" "n" "" "" "" "ValeurParDefautAtt1" "NouvelleValeurAtt1")
(command-s "attedit" "n" "n" "" "" "" "ValeurParDefautAtt2" "NouvelleValeurAtt2")
(command-s "attedit" "n" "n" "" "" "" "ValeurParDefautAtt3" "NouvelleValeurAtt3")
;;
;; Exemple avec un bloc ayant 6 Attributs
;;
(command-s "_-insert" "NomBloc2" "50,50" 1 0 )
;;
;; Utilisation de la commande ATTEDIT pour faire un 'rechercher remplacer' dans le dessin
;;
(command-s "attedit" "n" "n" "" "" "" "ValeurParDefautAtt1" "NouvelleValeurAtt1")
(command-s "attedit" "n" "n" "" "" "" "ValeurParDefautAtt2" "NouvelleValeurAtt2")
(command-s "attedit" "n" "n" "" "" "" "ValeurParDefautAtt3" "NouvelleValeurAtt3")
(command-s "attedit" "n" "n" "" "" "" "ValeurParDefautAtt4" "NouvelleValeurAtt4")
(command-s "attedit" "n" "n" "" "" "" "ValeurParDefautAtt5" "NouvelleValeurAtt5")
(command-s "attedit" "n" "n" "" "" "" "ValeurParDefautAtt6" "NouvelleValeurAtt6")
;;
;; Active les invites ou la boîte de dialogue pour les valeurs d'attributs, comme indiqué par ATTDIA.
;;
(setvar "ATTREQ" 1)
;; Fin
Bonjour @gricatti ,
Pour que cela fonctionne au niveau de tes attributs il faut préparer tes variables systèmes pour la gestion en SCRIPT
FILEDIA : gestion des boites de dialogues fichier
CMMDIA : gestion des boites de dialogues commandes
ATTDIA : Gestion des boites de dialogues attributs
ATTREQ : gestion de la demande de saisie des attributs ou de l'utilisation des valeurs par défaut
Personnellement je mets toujours
au début du script :
FILEDIA
0
CMDDIA
0
ATTDIA
0
ATTREQ
1
et à la fin du script :
FILEDIA
1
CMDDIA
1
ATTDIA
1
ATTREQ
0
Ensuite ton script pourra fonctionner
Pour la migration d'un ligne de commande type Excel de type horizontale vers vertical tu peux utiliser NotePad++
Exemple :
Copie de la ligne "-INSERER D:\HB4\1 1 0,0 ATTRIBUT1 ATTRIBUT2 ATTRIBUT3" dans NotePad++
Faire une recherche (soit Ctrl+F soit Menu "Recherche" puis "Recherche...")
Ensuite dans l'onglet Remplacer (1)
- Tape " " (espace) dans la partie recherche (2)
- Tape \n (correspond à un retour chariot = touche entrée) (3)
- Coche la case "Mode étendu" (4)
Puis remplacer tout (5)
Tu obtiens le résultat suivant
A+ Yoan
Yoan AUBRY
un complément à mon message ce poste de 2020
Quand on dispose des fonctions Udf adaptées pour exécuter des séquences de dessin.
Ça devient un jeu d'enfant Excel et Autocad pour les scripts avec des copier coller.
surtout avec Autocad LT 2024 qui a le LISP
L'idéal restant un vrai programme Autolisp, VBA, VB .net, C#...
Parfait! cela a très bien fonctionné. MERCI!
Je profites de ce post pour continuer dans la démarche, savez vous comment passer les "espaces" pour qu'ils soient bien interprétés dans le champ de texte final? En mettant entre guillemets toute l'expression cela permet de les passer dans l'expression, mais les guillemets apparaissent aussi!
Vous n'avez pas trouvé ce que vous recherchiez ? Posez une question à la communauté ou partagez vos connaissances.