Aller au contenu

stephan35

Membres
  • Compteur de contenus

    345
  • Inscription

  • Dernière visite

Tout ce qui a été posté par stephan35

  1. On y vient ..... Donc whitesquare souhaite avoir l'outils, qui , après copie des présentations, sache reprendre les informations commune aux cartouches, sans avoir à repointer pour chaque attribut, les liaisons avec le fichier excel ......
  2. Ok, donc, pour chaque nouvelle présentation, tu redéfinis des liens avec le cartouche .... ???
  3. Hum, hum, Le programme de patrick fonctionne avec les handles, donc - soit tu reparamétres tout pour chaque présentation, - soit tu as mis ton cartouche dans ton espace objet, :mad: donc 1 seul cartouche, pour toutes les présentations ?????????????????? :casstet: Ce que souhaites whitesquare c'est plusieurs présentations ,avec bloc cartouche inseré dans chaque présentation, qui se mettent à jour à partir d'une procédure unique ! et sans tout reparamétrer à chaque copie de présentation .... Suivre tous les posts .... ;) a+
  4. Salut ! Je ne comprends pas ta question ? :casstet: Va voir ta boite mail ..... le problème est complêtement résolu .... sauf la mise à jour avec le changement d'onglet ... Coie écran mail A+ [Edité le 26/7/2007 par stephan35]
  5. [surligneur] Merci de m'avoir corrigé gile ![/surligneur] Ayant complêtement personnalisé autocad, et supprimer toutes les fonctions inutiles à mon activité, j'en oublie un peu celle des autres .... : whitesquare Donc, me culpa on ne touche pas au acad2006doc.lsp qui peut evoluer avec les versions comme l'a souligné gile. Il faudra créé un AutoCAD.lsp dans le path de recherche d'autocad, qui contient les lignes destinées à acad2006doc.lsp A+
  6. Ok, Mais .... Dans ce type de cas, il est d'usage, et fortement conseiller de travailler avec les Xrefs ... surtout si c'est un projet neuf ..... Sans vouloir me mettre à dos les archis, tes plans de base risquent d'être souvent retouchés, et donc toutes tes modifs seront à reprendre autant de fois que tu recevras de correctificatifs. Sinon ... bon courrage ! A+
  7. Il est souvent très difficile d'exprimer son besoin ..... je connais ;) Bref, Pourquoi simuler l'effacement ??? Pourquoi ne pas faire une selection, puis retirer de cette selection ce qui est correcte ???? Pourquoi virer ce qui est en dehors d'une zone ??? Parceque ça dépasse du cartouche ???? Si oui, je reviens vers mon espace "papier" .... car tu peux définir une zone de travail grace à un polygone .... qui affichera uniquement les entités de l'espace "objet" .... contenus dans cette zone ! Si je n'ai rien compris, dit le moi svp ... ;)
  8. En fait, ce que tu cherches à faire, c'est une vue sur tes objets, genre espace papier, avec une zone graphique non cubique ???? :casstet:
  9. Sur le fait de placer le bout de code dans le fichier acad2006.lsp, il est préférable de le faire tel quel, car il sera chargé à chaque ouverture de fichier (dans config / systeme / chager le AutoCAD.lsp à chaque dessin). J'ai lancé une recherche sur les réacteurs que j'intégrerai. A+
  10. Bonjour ! Je n'ai pas trouvé sur le forum un indice me mettant sur la voie de la solution .... Je cherche à déclencher une commande sur un changement d'onglet de présentation .... Est-ce possible ???? :casstet: Merci à vous et bon week end !!!
  11. Bonjour, A - Pour ma réponse, je complêtement sorti du contexte LXL de patrick_35, ceci afin de répondre à ton besoin B - On peut considéré le listing qui suit comme une bidouille , elle nécéssitera la mise en place de réacteurs, on aura très certainement besoin de l'aide de BRED ou PATRICK_35 qui maitrisent parfaitement la chose, 1 - Modifie ton acad2006.lsp pour y ajouter le lanceur: ; Teste de lancement automatique macro ; Stéphan BUCHHOLZ - 07/2007 (defun @remplissage_cartouche ( / ) (if (findfile "@remplissage_cartouche.lsp")(load (findfile "@remplissage_cartouche.lsp"))) ) Elle s'activera à chaque ouverture de fichier, si le fichier macro @xxx.lsp est rouvé 2 - Creer le fichier "@remplissage_cartouche.lsp" dans ton répertoire de travail. ceci pour qu'il soit trouvé à l'ouverture de ton fichier. ; Stéphan BUCHHOLZ - 07/2007 ;********************************************************************************************************************************************************* ; Macro à optimiser Unique @R code Valeur & @W Code Valeur ..... dans quelques semaines bon ben c'est fait !!! ;Lecture ou ecriture d'un attribut dans un bloc (defun @S_AE ( #SSN $T $E #t $valeur / &Be $Be0 R) (if (not #SSN)(progn (alert (strcat "@S_AE \nValeur nil pour #SSN"))(exit))) (if (not $T)(progn (alert (strcat "@S_AE \nValeur nil pour $T"))(exit))) (if (not $E)(progn (alert (strcat "@S_AE \nValeur nil pour $E"))(exit))) (if (not #t)(progn (alert (strcat "@S_AE \nValeur nil pour #t"))(exit))) (setq &Be (entget #SSN)) (setq $Be0 (@R 0 &Be)) (while (and (/= $Be0 "SEQEND") (/= (entnext #SSN) nil)) (setq &Be (entget (setq #SSN (entnext #SSN)))) (setq $Be0 (@R 0 &Be)) (if (= $Be0 $T) ;Attribut (if (= $E (@R 2 &Be)) ; Si Etiquette ok (if (not $valeur) (progn (cond ((= #t 8)(setq R (@R 8 &Be))) ((= #t 1)(setq R (@R 1 &Be))) ((= #t 2)(setq R (@R 2 &Be))) ) ) (progn (cond ((= #t 8)(setq R (@W 8 &Be $valeur))) ((= #t 1)(setq R (@W 1 &Be $valeur))) ((= #t 2)(setq R (@W 2 &Be $valeur))) ) ) ) ) ) ) R ) (defun @R ( #code &entget / tmp ) (if (not #code)(progn (alert (strcat "@R \nValeur nil pour #code"))(exit))) (if (not &entget)(progn (alert (strcat "@R \nValeur nil pour &entget"))(exit))) (cdr(assoc #code &entget)) ) ;********************************************************************************************************************************************************* ; Texte, Attribut (defun @W ( #code &entget $Valeur / tmp ) (if (not #code)(progn (alert (strcat "@W \nValeur nil pour #code"))(exit))) (if (not &entget)(progn (alert (strcat "@W \nValeur nil pour &entget"))(exit))) (if (not $Valeur)(progn (alert (strcat "@W \nValeur nil pour $Valeur"))(exit))) (setq &entget (subst (cons #code $Valeur) (assoc #code &entget) &entget)) (entmod &entget) (entupd (@R -1 &entget));Pour faire une mise a jour ponctuelle ) ; Extraction des "cartouche" à modifier ; Cette liste de cartouche peut être extraite d'une base de donnée ; J'ai rajouté ton cartouche dans la liste (setq &selection (ssget "X" (list (cons 2 "EEEEE,F11NOMEN,F0204SS")))) (if &selection (progn ; Pour chaque cartouche, on scrute les attributs et on écrit les valeurs ; Nota, une nouvelle fonction plus optimisée sera bientot releasée, qui ne scrute une fois la base .... ; Attention pour les attributs aux étiquettes, ne pas prendre la définition du bloc, ; mais vérifier au préalable ne nom réél dans autocad ! ça fait gagner du temps .... (setq #count 0) (repeat (sslength &selection) (setq #ent (cdr (assoc -1 (entget (ssname &selection #count))))) (print (entget #ent)) (@S_AE #ent "ATTRIB" "MAIRIE" 1 "Les meilleurs") (@S_AE #ent "ATTRIB" "COMMUNE" 1 "sont les bretons !") (@S_AE #ent "ATTRIB" "2" 1 "02-99-00-00-00"); et vive les bretons ;-) (@S_AE #ent "ATTRIB" "T" 1 "02-99-00-00-00"); et vive les bretons ;-) (setq #count (1+ #count)) ) ) (alert "Pas de selection trouvée dans @remplissage_cartouche") ) Lit bien le code, il y a trois parties, la définition des macros, la définition de la selection à partir d'un filtre de cartouches, et enfin le traitement sur chaque bloc trouvé. Maitenant, à chaque création d'onglet de présentation et que tu y insère un cartouche il faudra tapper la commande (@remplissage_cartouche), ou mettre un bouton qui appelle le lisp, ou mieux encore créé un réacteur (si c'est possible) qui détecte le changement d'onglet ...... Allo BRED ???? Allo PATRICK_35 ???? ou quiconque maitrisant les réacteurs .... merci pour lui. a+
  12. Il manque le dcl mon mignon ! ;) C'est pas grave, je regarde comme ça ! ... a+
  13. Envoie moi un mail à buchholz point s at free point fr Je l'afficherai en post ... a+ Ok le voici : ;------------------------------------; ; nom: ahz ; ; role: affiche la liste des éléments; ; qui sont hors zone ; ; param: aucun ; ; retour: aucun ; ; date: 12/07/2007 ; ; BLAES Sébastien ; ;------------------------------------; (defun c:ahz( / lg cpt s cercle) (if VAR_ELEM_HZ (progn (setq lg (car VAR_ELEM_HZ) cpt VAR_CPT_AHZ s (cdr VAR_ELEM_HZ)) (cond (VAR_CPT_AHZ ; on charge le fichier dcl (setq dcl_id (load_dialog "C:/seb/H-138/hors_zone")) ; on test si restart_hors_zone_dialog existe (if (not (new_dialog "restart_hors_zone_dialog" dcl_id)) (exit)) ; on défini les actions sur la dcl (action_tile "accept" "(setq accept t)(DONE_DIALOG)") (action_tile "cancel" "(setq accept nil)(DONE_DIALOG)") ; on lance l'affichage de la dcl (start_dialog) ; on ferme la dcl (unload_dialog dcl_id) ; l'utilisateur veut repartir du premier élément hors zone (if (= accept nil) (setq VAR_CPT_AHZ 0 cpt 0) ); if ) ; si affichage déjà effectué ) ; cond (while (< cpt lg) (print (setq el (entget (ssname s cpt)))) (setq p1 (getP1 el)) (command "_circle" p1 3.0) (setq cercle (entlast)) (if (/= (cdr (assoc 0 (entget cercle))) "CIRCLE") (progn (command "annuler") (exit (alert "erreur pour le positionnement de la vue sur élément hors zone")) ) ; progn ) ; if (command "zoom" "objet" cercle "") ; on charge le fichier dcl (setq dcl_id (load_dialog "C:/seb/H-138/hors_zone")) ; on test si hors_zone_dialog existe (if (not (new_dialog "hors_zone_dialog" dcl_id)) (exit)) ; on défini les actions sur la dcl (action_tile "accept" "(setq accept t)(DONE_DIALOG)") (action_tile "cancel" "(setq accept nil)(DONE_DIALOG)") (set_tile "ahz_txt" (strcat (itoa (1+ cpt)) "/" (itoa lg) " de type: " (cdr (assoc 0 el)))) ; on lance l'affichage de la dcl (start_dialog) ; on ferme la dcl (unload_dialog dcl_id) ; l'utilisateur à choisit d'annuler (if (= accept nil) (setq VAR_CPT_AHZ cpt cpt lg) ); if (entdel cercle) (setq cpt (1+ cpt)) ) ; while ) ; progn (alert "il faut d'abord lancer hors zone pour pouvoir afficher les éléments") ) ; if (princ) ); c:ahz [Edité le 20/7/2007 par stephan35]
  14. [surligneur] Comment se facher avec quelqu'un en 1 seul post ????[/surligneur] Mode d'emploie : T'a vus l'heure de mon Post ???, J'avais envie de décompressé, et j'ai envoyé un petit squd, Juste avec le sourire ;) Pour info, l'interpreteur shell existe depuis la V10 d'autocad (Juste pour complêter ton information) .... et non non je n'en rajoute pas .... ;) Bon allez, tu me pardonnes dit ???? :red: A+
  15. J'y crois pas !!! No comment !!! :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: PS: C'est pas bien de se moquer .... ;)
  16. Salut ! A vérifier: Il me semble que l'on peut faire des soustraction dans les filtres ..... Et je suis curieux de voir cet autre lisp .... A+
  17. Bon, je dois modifier un moteur lisp, et j'en profite pour intégrer tes paramètres. Je te donnes des nouvelles demain ! A+
  18. Je crois avoir compris ce que cherchais whitesquare, c'est un outils qui sert à remplir automatiquement le contenu de ses cartouches à partir de données externes (Excel ou autres ???) Et dans son cas, je ne crois pas à la rétroannotation dans le fichier source .... En fait ça m'arrangeais de fonctionner avec les noms des attributs, car mes tables étaient déjà existantes .... Et si l'attribut est déplacé, ça ne fonctionne plus .... :casstet: A suivre ...
  19. Bon,...... J'ai une bonne et une mauvaise nouvelle ... 1 - Je ne pense pas que l'on prenne le problème dans le bon sens ..... ça fait un peu usine à gaz de vouloir prendre un fichier excel pour modifier de façon récursive des cartouches d'un fichier ... Le fichier excel pour les données , c'est un impératif ???? 2 - J'ai développé un outils qui répondrait à tes attentes, j'ai juste une ou deux petites modifs à apporter 3 - Tu n'utilises pas correctement les étiquettes des attributs !!!!! Il faut mettre un nom unique qui les permets de les différenciers les uns des autres et non pas XXXX !!!!! 4 - Que ce soit une adaptation du prog de pratrick ou du mien, tu as ça à corriger !!!! Je continue .... a+ PS, je ne suis pas très loin du lieu des travaux ....
  20. C'est ok ! Je regarde comme ça, et je te tiens au parfum ....
  21. Merci patrick ! Bon, J'attends les éléments de whitesquare Bien entendu, je ne vais pas réinventer l'eau chaude, donc il y aura 90% de copier/coller et 10% de bibi .... Merci pour ton aide, A+
  22. <acronym class=dict title= :laugh: Bon, récapitulons, et rédigeons un mini cahier des charges ..... :laugh: Pour faire simple, et pour confirmer : 1 - Ajouter la possibilité de traiter plusieurs présentations dans un même fichier DWG en mode texte (Bloc / Attribut) et non plus en handle. 2 - La paramétrage de la liaison de contenus par présentation est commune ou individuelle ??? 2a - commune : On défini les liaisons pour un cartouche, et à chaque utilisation de ce cartouche dans les présentations on utilisera les mêmes paramêtres 2b - individuelle : rien à faire ça marche déjà comme ça ! : il faut reparamétrer les liaisons pour chaque attribut de chaque cartouche.... 3 - fonctionner avec un fichier de configuration pour exporter les paramêtres dans d'autre projets Merci de confirmer whitesquare, tu peux me faire parvenir 1 fichier exemple à buchholz point s at free point fr PS : Corrige patrick si je dérrape !!
  23. Je crois que patrick est en vacances ??? Et sincèrement ta modification de programme n'est pas simple .... si tu me laisses 2 semaines c'est faisable :casstet: Mais le mieux serait de voir directement avec l'intéressé ..... Pour ta solution, il y aurait peut-être une étape intermédiaire .... imaginons : 10 projets = 10 répertoires 100 DWG par projets Chaque projet pointe une zone différente dans le fichier excel Donc : Je cree un fichier master.dwg qui contient le cartocuhe et les éléments du fichier excel supposés modifié et modifiable. Je recree le bloc cartouche auquel je rajoute le xref qui pointe sur master Je vais dans chaque dwg et je fais un inserer = pour le cartouche ..... faire attention lors de la redéfinition à ne pas rajouter ou supprimer des attribtus sinon il faudra lancer un attredef ! ;) A voir si ça apporte quelque chose ... a+
  24. Ok, après un test rapide, Le programme de pratick fait référence à ce que l'on appelle les handles , qui est un identificateur unique d'une entité, soit par exemple "7ef74E50" , c'est ce qui lui sert à retrouver et à associer la case d'une cellule excel au contenu d'un attribut..... et ce pour le cartouche du folio du fichier que tu traites. Si tu changes de fichier, si tu fais un wblock, quoi que tu fasses, tu ne pourras jamais faire un copier / coller des relations existantes !!!!!! La sauvegarde de cette relation, à mon avis, car je me suis arrêté là , doit être de la forme Xdata, c'est à dire des données supplémentaire sauvegardée dans ton fichier autocad. C'est le moteur même du lisp qu'il faut changer (sauf erreur de ma part) Dans ton cas, il aurait fallu faire une relation Bloc/Attribut <-> cellule attacher à un fichier de paramêtre..... Facile à dire, mais pas à faire, car les softs de patrick sont relativement optimisés, de plus il utilise le vlisp (Que je ne maitrise pas trop .... pas du tout !) Bref, Cherche une solution native autocad .... A+
  25. Salut tout le monde, Une petite note d'optimise .... D'une façon générale j'ai toujours réussi à faire ce que je souhaitait avec le Lisp .... (grâce aussi, il faut le dire, les vétérants de ce site ;) ) Après, c'est une question de temps, d'investissement, et de motivation. Bref, Je ne connais pas ce lisp de patrick, mais, à priori, si je t'ai bien compris, tu mets à jour dynamiquement le contenu d'un cartouche par rapport au contenu d'un fichier exel ??? Comment fais-tu pour indiquer que telle cellule excel va dans tel attribut ???? Car si c'est dynamique, patrick génère peut-être un fichier mouchard de correspondance ??? Ou alors il travail avec les handle ??? Tu peux me mettre un lien ???
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité