Steven Posté(e) le 3 mai 2010 Posté(e) le 3 mai 2010 Bonjours à tous. Est-il possible de demander à AutoCAD de faire un attin automatiquement à l'ouverture d'un fichier sans avoir besoin de sélectionner le fichier texte qui correspond au fichier dwg ? En effet, imaginons que j'ai un fichier dwg qui se nomme R+18.dwgJe fait un attout pour extraire des attributs de blocs dans un fichier txt qui se nomme R+18.txtJe ferme ensuite mon fichier R+18.dwg Une autre personnes modifie certains renseignement dans le fichier R+18.txt puis enregistre les modifications.Actuellement, si je veux importer les modifications du fichier R+18.txt sur mon fichier R+18.dwg, je dois ouvrir le fichier R+18.dwg puis lancer la commande attin manuellement, puis sélectionner le fichier R+18.txt Je souhaiterais ouvrir le fichier R+18.dwg et que la commande attin ainsi que la sélection du fichier R+18.txt s'exécute automatiquement. C'est possible de faire ç a avec AutoCAD ? 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.
lili2006 Posté(e) le 3 mai 2010 Posté(e) le 3 mai 2010 Bonsoir à toutes et tous, En script avec SAS ? Juste une idée,... Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
(gile) Posté(e) le 3 mai 2010 Posté(e) le 3 mai 2010 Salut, Je propose une solution qui utilise un fichier de chargement automatique de routines LISP (acaddoc.lsp) À l'ouverture de chaque document, AutoCAD cherche un fichier acaddoc.lsp et charge le premier qu'il trouve.Ce fichier doit donc être dans un chemin de recherche ou dans le répertoire du fichier dwg (à savoir, AutoCAD cherche en premier dans le répertoire du DWG). Si tu n'as pas créé de fichier acaddoc.lsp il faut en créer un (ou plusieurs) en choisissant judicieusement le (ou les) répertoire(s) en fonction de ce qui est dit ci-dessus.On crée ce fichier avec le bloc-note et on l'enregistre sous : acaddoc.lsp Dans ce fichier, tu colles le code LISP suivant (je n'ai pas trouvé de moyen d'appeler attin avec un argument (chemin du fichier). ;; str2lst ;; Transforme un chaine avec séparateur en liste de chaines ;; ;; Arguments ;; str : la chaine à transformer en liste ;; sep : le séparateur (defun str2lst (str sep / pos) (if (setq pos (vl-string-search sep str)) (cons (substr str 1 pos) (str2lst (substr str (+ (strlen sep) pos 1)) sep) ) (list str) ) ) ((lambda (/ filename file line lst acdoc blk) (vl-load-com) (if (setq filename (findfile (strcat (vl-filename-base (getvar 'dwgname)) ".txt") ) ) (progn (setq file (open filename "r")) (read-line file) (while (setq line (read-line file)) (setq lst (cons (str2lst line "\t") lst)) ) (close file) (setq acdoc (vla-get-ActiveDocument (vlax-get-acad-object))) (foreach l lst (if (vl-catch-all-apply '(lambda () (setq blk (vla-HandleToObject acdoc (vl-string-left-trim "'" (car l)) ) ) ) ) (mapcar '(lambda (a v) (if (/= v (vla-get-TextString a)) (vla-put-TextString a v) ) ) (vlax-invoke blk 'GetAttributes) (cddr l) ) ) ) (vla-regen acdoc acAllViewports) ) ) (princ) ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lili2006 Posté(e) le 3 mai 2010 Posté(e) le 3 mai 2010 Bonsoir à toutes et tous, Génial, :D Merci Gilles, Dommage, la commande attout semble ne pas reconnaitre les champs,... Et du coup, à la réouverture du fichier, les propriétés du dessin ne peuvent plus se remettre à jour (rg ou _updatefield). Embarrassant ça, :( Une solution ou mauvaise manip de ma part ? Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
(gile) Posté(e) le 4 mai 2010 Posté(e) le 4 mai 2010 :casstet: Je ne comprends pas le demande.On utilise des champs pour que la valeur soit automatiquement mise à jour.Ce que permet ATTIN c'est de modifier manuellement des valeurs d'attributs et de réinjecter ces valeurs. Si tu utilises des champs avec les propriétés du dessin, par exemple, je ne comprends pas l'intérêt de vouloir en modifier la valeur manuellement depuis l'extérieur d'AutoCAD et en même temps de vouloir conserver le lien dynamique avec des données internes à AutoCAD... Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Steven Posté(e) le 4 mai 2010 Auteur Posté(e) le 4 mai 2010 :casstet: Je ne comprends pas le demande.On utilise des champs pour que la valeur soit automatiquement mise à jour.Ce que permet ATTIN c'est de modifier manuellement des valeurs d'attributs et de réinjecter ces valeurs. Si tu utilises des champs avec les propriétés du dessin, par exemple, je ne comprends pas l'intérêt de vouloir en modifier la valeur manuellement depuis l'extérieur d'AutoCAD et en même temps de vouloir conserver le lien dynamique avec des données internes à AutoCAD... Salut Gile. Pour faire simple, J'ai des blocs avec des attributs contenant des noms de personnes, prenom, bureau de départ, d'arrivée, etc.Je fais un attout pour extraire ces données. Remplies ou pas. Je transmets le tableau à une assistante qui remplie les renseignements dans les cellules puis une fois qu'elle à remplie les données manquantes, je fait un attin pour réimporter les données du fichier .txt dans AutoCAD.Ce ce fait, lorsque l'assistante apporte des modifications à mes tableaux (Changement de noms, de prénom, de services, etc, lorsque je fait un attin du fichier, mes attributs sont automatiquement à jour. C'est pour ça que je souhaiterais automatiser le attin à l'ouverture des fichier dwg (qui correspondent avec le fichier txt) de manière à ce que les attributs de mes blocs "utilisateurs" se mettent automatiquement à jour si l'assistante à apportées des modifications au fichier txt la veille, par exemple. 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.
lili2006 Posté(e) le 4 mai 2010 Posté(e) le 4 mai 2010 Bonjour à toutes et tous, Oui, j'ai du mal m'exprimer. Quand je sélectionne un bloc avec attributs "normaux" et champs, en réinjectant (donc à la réouverture du fichier) les champs "classiques" (autres que les propriétés du dessin) ne sont plus reconnus à priori. Donc il ne faut surtout pas sélectionner les champs "classiques" lors de la capture. Ou alors, erreur sur une manip ? En vidéo, Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
Steven Posté(e) le 4 mai 2010 Auteur Posté(e) le 4 mai 2010 j'ai dû loupé quelque chose. Le fichier dwg où je fais mes test est dans un répertoire spécifique.J'ai créé un fichier .txt avec attout dans ce même répertoire.J'ai créé un fichier acaddoc.lsp en y copiant les données de Gile dans ce même repertoire.J'ai ajouté au Démarage dans le contenu des applications le fichier acaddoc.lspJ'ai donné dans mes options de fichier > Chemin de recherche de fichier support, l'endroit où se trouve le fichier acaddoc.lspJ'ai fermé mon dessin autocad.J'ai mofifier un nom (pour faire un test) sur mon fichier txt, j'ai enregistré et fermé.J'ai ouvert mon fichier dwg et rien ne se passe. 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.
lili2006 Posté(e) le 4 mai 2010 Posté(e) le 4 mai 2010 Re, J'ai pourtant fait la même chose, marche nickel (si ce n'est les champs autres que propriétés persos du fichier)! Le acaddoc, au cas ou,... PS: Je t'ai envoyé un MP à propos d'un autre de tes posts,... Et j'ai justement rajouté => ;;=========================================================;; CONTROLE CHARGEMENT ;;=========================================================;; (defun-q S::STARTUP () (alert "Perso STEVEN ok !") (princ) ) Pour être sur que ton acaddoc se charge bien ! (Et pour répondre à ton autre post ) Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
Steven Posté(e) le 5 mai 2010 Auteur Posté(e) le 5 mai 2010 Salut à tous.Me revoici donc pour la suite, maintenant que j'ai eu letemps de regarder tout ça de plus près. Alors, bonne nouvelles :D le lisp d'attin automatique fonctionne impeccablement.De plus, nous ne somme pas obligé de placer le fichier acaddoc.lsp dans le même dossier que le fichier dwg.Le fichier acaddoc.lsp est rangé dans un dossier LISP sur le serveur avec d'autres fichiers lsp.J'ai juste donner dans les options > Fichier > Chemin de recherche dans les fichiers de support, le chemin du dossier dans lequel est rangé le fichier acaddoc.lspJ'ai ensuite ensuite indiqué ce même fichier dans le contenu au démarage des lisp.Du coup, on peut ouvrir plusieurs fichier dwg en même temps et la mise à jour des attributs de ces fichiers dwg se fait d'un seul coup. Le message qu'à rajouté Lilli2006 est très utile si on ouvre qu'un seul fichier à la fois.Par contre, si on veut ouvrir plusieurs fichiers dwg à la fois, ce n'est pas possible car si on n'a pas cliqué sur OK, l'ouverture des fichiers suivant ne se fait pas. Je l'ai donc supprimé.Toutefois, j'ai créé un fichier lsp en y collant le message et j'ai rangé ce fichier au même endroit que le fichier acaddoc.lspet du coup, j'ai aussi réglé la question évoqué ici J'ai eu mes deux solutions d'un seul coup :D Je n'ai plus qu'à aller configurer les autres bécannes. Merci à tous :D 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.
lili2006 Posté(e) le 5 mai 2010 Posté(e) le 5 mai 2010 Bonsoir à toutes et tous, Le message qu'à rajouté Lilli2006 est très utile si on ouvre qu'un seul fichier à la fois.Par contre, si on veut ouvrir plusieurs fichiers dwg à la fois, ce n'est pas possible C'est exact ! Dans ce cas, je décharge le lisp également,... Disons que c'est très utile pour communiquer une info et/ou être sur que le acaddoc ou autres persos se chargent bien,... le lisp d'attin automatique fonctionne impeccablement. Tu ne rencontres pas de pb avec les champs ? Comme vu sur la vidéo post précédent, moi quand j'utilise "attin automatique", mon champ date, par exemple se transforme en texte !!!???? Si je dois sélectionner uniquement les attributs sans champ, c'est rapidement ingérable sur un plan. Suis-je donc le seul à avoir ce pb ? Merci d'avance, Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
(gile) Posté(e) le 5 mai 2010 Posté(e) le 5 mai 2010 Salut, Steven, J'ai ensuite ensuite indiqué ce même fichier dans le contenu au démarage des lisp. C'est inutile, le fichier acaddoc.lsp est automatiquement chargé à l'ouverture de tout nouveau document (voir réponse 2). lili2006,J'ai modifié le code, les attributs/champs dont la valeur n'est pas modifiée dans le fichier généré par ATTOUT sont conservés. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lili2006 Posté(e) le 5 mai 2010 Posté(e) le 5 mai 2010 Bonsoir à toutes et tous, Salut Gilles, J'ai modifié le code, les attributs/champs dont la valeur n'est pas modifiée dans le fichier généré par ATTOUT sont conservés. Marche bien, merci ! :D Donc il est normal que si tu modifies depuis le .txt une info d'un champ, celui-ci se transforme en texte ? Je ne sais pas si par moment, cela ne va poser de pb,... Super outil qui peut rendre bien des services de façon très (très très) simple, :D Merci encore, Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
(gile) Posté(e) le 5 mai 2010 Posté(e) le 5 mai 2010 Donc il est normal que si tu modifies depuis le .txt une info d'un champ, celui-ci se transforme en texte ? Oui, tout comme si tu le modifies depuis l'éditeur d'attributs. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lili2006 Posté(e) le 5 mai 2010 Posté(e) le 5 mai 2010 Re, Ok ! Merci encore Gilles, Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant