À partir du mois de décembre, nous archiverons le contenu de la communauté datant de 10 ans et plus. Cette FAQ fournit de plus amples informations.
Bonjour,
Je dois insérer des blocs en masse depuis des fichiers txt ou excel.
Ces bloc doivent comprendre les données suivantes en attribut : matricule x y z charge commentaire.
J'ai créer mon bloc tctopodetail mais je rencontre un problème pour l'insertion sous autocad (2017 sans covadis)
Dans mon script j'ai utilisé ce langage avec un attdia à 0
-inserer C:\Users\Nelly\Documents\nelly\fibre\charte\tctopodetail
548998.7657,6452870.2951,203.7360 1 0
1
548998.7657
6452870.2951
203.7360
0.00
RAS
1er problème : autocad m'indique "Le bloc tctopodetail se réfère à lui-même."
2éme problème : il ne veux pas saisir les attributs
3ème problème : je n'arrive pas à faire le scrip (pour les fois où le programme à marché en test sans les attributs) pour que plusieurs points s’insère les un à la suite des autres (voici mon fichier test)
Je dois aussi faire la manip avec le bloc PGOC_CH qui est un bloc dynamique. Cela peut-il empêcher l’insertion en masse?
Je vous remercie d'avance pour vos réponses.
Résolu ! Accéder à la solution.
Résolu par Y.AUBRY. Accéder à la solution.
On n'enregistre pas une définition d'un bloc d'un certain nom dans un fichier du même nom.
C'est le premier problème à résoudre !
Un bloc tctopodetail n'a rien à faire dans un fichier tctopodetail.dwg !
Ouvrir ce fichier et, si ce n'est fait, placer le bloc comme idéal (avec INSBASE à zéro on suppose) et l'exploser. Le purger d'ailleurs avec la commande du même nom. Car le purger est nécessaire.
Le fichier dwg portera tout le fardeau de sa fonction sans avoir besoin d'une copie de lui-même définie et insérée ou pas !? C'est aberrant pour le système.
Le script se réglera. Je mets souvent les chemins entre guillemets car il peuvent facilement contenir des espaces.
Il ne veut pas saisir les attributs car il ne veut pas insérer 😉
Bonjour Nelly, @nelly_boixiere
Comme je suis confronté à 90% à des versions AutoCAD LT chez mes clients, les SCRIPTS me permettent de mettre en place pas mal d'application via EXCEL.
Le problème avec EXCEL, si on veut écrire une ligne de SCRIPT compréhensible pour AutoCAD, il faut utiliser des caractères SPECIAUX dans EXCEL, exemple :
- Les Guillemets
- la "touche" ENTREE c'est un caractère un peu spécial j'utilise le code ASCII, avec la fonction EXCEL car(13)
L'utilisation des guillemets avec EXCEL est un peu chiant car il faut souvent utiliser un DOUBLE GUILLEMET !
Ce que je fais, je crée un classeur EXCEL dans lequel j'ai une feuille qui servira au SCRIPT et une avec les Données des BLOCS à insérer et les CODES spéciaux...
voir le fichier XLS ci-joint...
J'utilise toujours des cellules NOMMEES plutôt que de se prendre la tête avec des CELLULES bloquées avec un nom que l'on ne retiendra jamais ! exemple : 'liste BLOCS'!$K$3 dans ma feuille liste BLOCS c'est la cellule baptisée ENTREE ! Et K2 = GUIL c'est pour le Guillemet !
Christian
Christian REB
Bonjour,
Merci pour votre réponse. Je viens de renommer le bloc et je l'ai "exploser". (du coup pour mon bloc dynamique cela m’enlève sont dynamisme aussi) et purger. Cela règle le prob de l’appelle à lui-même.
Effectivement les 2 blocs on leur point de base à zéro.
J'ai effectuer un test d'insertion avec juste un point mais autocad ne saisie pas les commentaires, il considère mon ID de point (ici le chiffre "1" )comme une commande.
J'ai effectuer un test avec 4 points sans les commentaires. Les 3 premiers s’insère directement mais le 4ème autocad m'a considéré le nom du bloc "inserer"
C'est à devenir fou!
Gageons qu'il y a un espace après un 0 car on voit bien que le script a interprété la répétition d'une commande à un moment. Tout le monde sait que ENTRE ou ESPACE répète la dernière commande.
Et oui ! le script est puissant mais basique et sensible.
On voit que ça avance malgré tout.
Avec des attributs, ca marche aussi. On peut jouer avec ATTECRAN.
Voici deux exemple de scripts
Exemple de script de commande en utilisant "(command...)" très pratique lors de présence d'espace dans les noms de blocs (ou autres : calques etc). En effet, les espaces étant considérés comme la touche Entrée dans un script qui génèrent des erreurs lors de l'envoie dans AutoCAD
Nota: la commande CLAYER permet de définir le calque courant.
Dans un script classique la commande ci-dessous ne peut pas être exécuter car AutoCAD interprète l'espace entre "Points" et "géo-référencés" comme une validation donc AutoCAD va essayer de rendre courant le calque "Points" (qui n'existe pas dans mon cas) et donc générés une erreur, puis considère "géo-référencés" comme une autre commande.
CLAYER
Points géo-référencés
_expert
2
FILEDIA
0
CMDDIA
0
ATTDIA
0
ATTREQ
1
(command "CLAYER" "Points géo-référencés")
(command "-INSERER" "PTTOPO" "696856.555290511,7049349.22339664" "1" "" "0.0" "22.76" "1004" )
(command "-INSERER" "PTTOPO" "696856.748,7049348.408" "1" "" "0.0" "22.21" "1005" )
(command "-INSERER" "PTTOPO" "696857.414,7049347.08" "1" "" "0.0" "22.22" "1006" )
(command "CLAYER" "0")
ZOOM
ET
FILEDIA
1
CMDDIA
1
ATTDIA
1
ATTREQ
0
Exemple d'un script simple lorsqu'il n'y a pas d'espaces :
_expert
2
FILEDIA
0
CMDDIA
0
ATTDIA
0
ATTREQ
1
INSERER
PTTOPO
696856.555290511,7049349.22339664
1
0.0
22.76
1004
INSERER
PTTOPO
696856.748,7049348.408
1
0.0
22.21
1005
INSERER
PTTOPO
696857.414,7049347.08
1
0.0
22.22
1006
ZOOM
ET
FILEDIA
1
CMDDIA
1
ATTDIA
1
ATTREQ
0
A+ Yoan
Yoan AUBRY
Oups ! J'ai parlé d'ATTECRAN ? alors que je devais penser à ATTREQ 😂
Aucune utilité particulière dans le cadre d'un script.
Autant pour moi.
Bonjour @nelly_boixiere
Si une des réponses résout votre problème ou vous a permis de mieux le comprendre, voulez vous avoir l'amabilité de cliquer sur le bouton APPROUVER LA SOLUTION en bas de la réponse qui apporte une solution?
Cela facilitera la navigation de nos utilisateurs qui pourront directement atteindre la solution
Sachez qui si vous avez marqué une réponse comme solution par erreur, vous pouvez annuler ce marquage en cliquant sur le menu du fil (les trois points verticaux) et choisir "pas la solution"
Merci de ne pas accepter comme solution le message que vous êtes en train de lire.
Bonjour,
Merci à tous pour vos réponses. J'ai pu résoudre mon problème et faire un pas de plus dans la compréhension d'autocad et de son scrip.
Je n'ai pu faire de réponse avant car ce travail est fait dans le cadre de mon boulot et je devais me mettre sur un autre projet urgent.
Pour le résultat voici la formule qui du coup à fonctionné
J'ai fait un rajout au début de mon script
ATTDIA = 0
ATTREQ = 1
et à la fin
ATTDIA = 1
ATTREQ = 0
bonne journée à tous
C'est cool. On est là pour ça.
Il y a 24 ans, je faisais mes premiers scripts et ai toujours encouragé tout le monde.
Certains ont même bâti un outil 😎
Sinon, il suffit du logiciel Excel et/ou d'un listeur de fichiers quand ceux-ci sont nombreux.
Et d'un peu d'imagination parfois pour penser à tout ce que l'on fait inutilement à la main.
Bonjour Nelly,
Avez-vous jeté un Oeil à mon fichier EXCEL ?
Christian
Christian REB
Bonjour,
Oui c'est du coup grâce à ça que j'ai rajouté des "" à mes chemins d'accès.
Merci. il faudra que je regarde plus attentivement pour pouvoir modifier avec les éléments dont j'ai besoin. Maintenant que j'ai compris comment fonctionner autocad sur la lecture de son script cela sera plus facile.
Je vous remercie pour votre aide
On n'en a pas parlé je crois mais attention aux accrochages aux objets à désactiver ou en gérant OSNAPCCORD (qu'on peut trouver peu pratique)
Car s'ils sont actifs, les accrochages agissent, selon les conditions de zoom, d'ailleurs : confusant !
Salut Bertrand,
J'utilise depuis toujours OSNAPCOORD = 1 et ça fonctionne très bien
Et comme toujours la valeur par défaut est 2 !!!!!! C'est une connerie, je ne vois l'intérêt d'autoriser des accrochages "ALEATOIRES" lorsque l'on utilise un SCRIPT ?!
Christian
Christian REB
Vous n'avez pas trouvé ce que vous recherchiez ? Posez une question à la communauté ou partagez vos connaissances.