Aller au contenu

Patrick_35

Membres
  • Compteur de contenus

    6 374
  • Inscription

  • Dernière visite

  • Jours gagnés

    30

Tout ce qui a été posté par Patrick_35

  1. Patrick_35

    XYZ

    Salut Peut-être avec un de mes premiers lisp avec des réacteurs ? @+ (defun Attributs_ini(Rea Cde) (setq dernier_ent (entlast)) ) (defun Attributs_xyz(Rea Cde / bl js n xyz) (cond ((or (eq (car Cde) "MOVE") (eq (car Cde) "STRETCH")) (setq js (ssget "_p")) ) ((or (eq (car Cde) "GRIP_MOVE") (eq (car Cde) "GRIP_STRETCH")) (setq js (cadr (ssgetfirst))) ) ((eq (car Cde) "INSERT") (setq js (ssadd)) (ssadd (entlast) js) ) ((eq (car Cde) "COPY") (setq js (ssadd) n (entnext dernier_ent)) (while n (ssadd n js) (setq n (entnext n)) ) ) ((eq (car Cde) "UCS") (setq js (ssget "x" (list (cons 0 "INSERT") (cons 2 Nom_bloc)))) ) ) (if js (progn (setq n 0) (while (ssname js n) (setq bl (entget (ssname js n))) (if (and (eq (cdr (assoc 0 bl)) "INSERT") (eq (strcase (cdr (assoc 2 bl))) (strcase Nom_bloc))) (if (cdr (assoc 66 bl)) (progn (setq xyz (trans (cdr (assoc 10 bl)) (cdr (assoc -1 bl)) 1)) (while (not (eq (cdr (assoc 0 bl)) "SEQEND")) (if (eq (cdr (assoc 0 bl)) "ATTRIB") (cond ((eq (strcase (cdr (assoc 2 bl))) (strcase Eti_X)) (setq bl (subst (cons 1 (rtos (car xyz))) (assoc 1 bl) bl)) (entmod bl) (entupd (cdr (assoc -1 bl))) ) ((eq (strcase (cdr (assoc 2 bl))) (strcase Eti_Y)) (setq bl (subst (cons 1 (rtos (cadr xyz))) (assoc 1 bl) bl)) (entmod bl) (entupd (cdr (assoc -1 bl))) ) ((eq (strcase (cdr (assoc 2 bl))) (strcase Eti_Z)) (setq bl (subst (cons 1 (rtos (caddr xyz))) (assoc 1 bl) bl)) (entmod bl) (entupd (cdr (assoc -1 bl))) ) ) ) (setq bl (entget (entnext (cdr (assoc -1 bl))))) ) ) ) ) (setq n (1+ n)) ) ) ) (princ) ) (defun c:spt(/ i j n) (if (setq i (vlr-reactors :vlr-command-reactor)) (progn (setq n 1 i (nth n (car i))) (while i (setq j nil) (if (or (eq (cdr (car (vlr-reactions i))) 'ATTRIBUTS_XYZ) (eq (cdr (car (vlr-reactions i))) 'ATTRIBUTS_INI)) (setq j i) ) (if j (vlr-remove j) (setq n (1+ n)) ) (if (setq i (vlr-reactors :vlr-Command-Reactor)) (setq i (nth n (car i))) ) ) (if mrea_mpt (princ (strcat "\n\tDésactivation de la mise à jour XYZ du bloc " Nom_bloc ".")) ) (setq mrea_mpt nil) ) ) (princ) ) (defun c:mpt() (if (not mrea_mpt) (progn (c:spt) (vlr-command-reactor nil '((:vlr-commandwillstart . Attributs_ini))) (setq mrea_mpt (vlr-command-reactor nil '((:vlr-commandEnded . Attributs_xyz)))) (princ (strcat "\n\tActivation de de la mise à jour XYZ du bloc " Nom_bloc ".")) ) (princ (strcat "\n\tLa mise à jour XYZ du bloc " Nom_bloc " est déjà activée.")) ) (princ) ) (vl-load-com) (setq Nom_bloc "XY" Eti_X "X" Eti_Y "Y" Eti_Z "Z") (princ (strcat "\n\tPour activer la mise à jour XYZ du bloc " Nom_bloc ", lancez la commande MPT.\n\tPour revenir à la normale, faites la commande SPT.")) (princ)
  2. Malgré tous le respect qu'il inspire grace à son talent, sa discrétion et sa gentillesse, la violence n'est pas une solution en soi. Il peut-être le plus grand joueur au monde, rien n'excuse son geste. J'ai toujours pensé que la violence est l'arme du pauvre d'esprit C'est regrettable de terminer sa carrière sur un carton rouge et je suis persuadé qu'il regrette déjà son geste et que ça reste un grand monsieur. @+
  3. Patrick_35

    Bug très étrange

    Salut Patrick 1) Ce n'est que pour ce bloc ou ça arrive avec d'autres ? 2) Ce n'est que pour un certain dessin ou ça arrive sur d'autres ? 3) As-tu relancé Autocad, voir redémarrer l'ordinateur voir si cela se reproduit ? 4) Le fichier est dans les chemins de recherches d'autocad afin qu'il l'insère selon ton exemple ? 5) La variable position est correcte pour le deuxième insertion ? @+
  4. Salut pour faire au plus simple, tu as la commande _eattext, sinon ce lisp ou celui-ci @+
  5. SAS --> Son Altesse Sérinisisme :cool: @+
  6. Et j'y pense maintenant Tu peux te servir de la fonction (acad-push-dmod) pour sauver l'etat de cette variable, faire tes fonctions et ensuite utiliser (acad-pop-dbmod) pour remettre la variable dbmod à son état initiale @+
  7. Salut Avec une combinaison de dbmod et de findfile, tu devrais y arriver sans toucher à la variable expert @+
  8. Et tant qu'on y est, des alt+tab et des ctrl+Tab pour basculer d'une appli vers une autre ou d'un dessin sur un autre @+
  9. Moi aussi, et c'est l'occasion de s'y mettre ;) @+
  10. Patrick_35

    Mise en page

    Salut Tu as chargé correctement le lisp, c'est la boîte de dialogue que le lisp ne trouve paset c'est parce que tu as mis tes fichiers dans un répertoire qui ne fait pas partie des chemins de recherche d'autocad. Dans ce cas, deux solutions. 1) tu déplaces tes fichiers dans le répertoire d'installation d'autocad par exemple 2) tu vas dans Outils --> Options --> Fichiers --> Chemin de recherche de fichiers de support et tu y ajoutes le répertoire où tu as mis les lisps Tu as chargé correctement le lisp, c'est la boîte de dialogue que le lisp ne trouve pas @+
  11. L'idée est intéressante et purquoi ne pas faire cette sélection le biais d'un double clic uniquement Et puis tant que j'y suis, pour un type de texte, style de ligne... Tramber, encore un petit effort ;) @+
  12. Salut Il suffit de changer la variable CTAB @+
  13. Ah, ce serait donc cela (command "_.style" "STANDARD BA" "romans" "" "0.6" "0" "N" "N" "N") @+
  14. Patrick_35

    Mise en page

    Salut Tu as ce lisp pour recopier la mise en page d'un onglet sur tous les autres et celui-ci pour changer l'imprimante des onglets (au choix) @+
  15. Salut (command "_.style" "STANDARD BA" "romans" "" "1" "0.6" "O" "N" "N") @+
  16. Patrick_35

    Lier des Attributs

    Salut Je vais voir ce que je peux faire @+
  17. Oui, peut-être encore une différence :( D'après ce que je peux lire, il ne faut pas que la variable UCSNAME soit vide. Donc, il ne reste plus qu'à la changer @+
  18. Je suis surpris, ça fonctionne très bien sur ma A2000 sans scu de nommé ! @+
  19. (setq Scu_Original (vla-get-activeucs (vla-get-activedocument (vlax-get-acad-object)))) ; Sauvegarde scu (vla-put-activeucs (vla-get-activedocument (vlax-get-acad-object)) Scu_Original) ; Restauration scu (command "_.undo" "r") --> (command "_.undo" "_b") (command "_.undo" "m") --> (command "_.undo" "_m") C'est en essayant que l'on apprend ;) @+
  20. Je ne saurai dire mieux que (gile) sauf que je préfére éviter d'utiliser un (command "_.u") qui est parfois une souce d'erreur en fonction de la variable undoctl. Un sujet à regarder @+
  21. Salut Je viens de tester et ça a l'air de fonctionner correctement. Il y a juste un (command "_undo" "r") qui traine dans la gestion des erreurs qu'il faudrait remplacer par un (vla-endundomark (vla-get-activedocument (vlax-get-acad-object))) afin de boucler le undo mark et j'ai constaté dans ta routine de gestion d'erreurs que tu ne remettais pas tes variables à leurs états d'origine et que tu ne repointais pas non plus sur la gestion d'erreur d'origine @+
  22. J'ai aussi commencé avec les commands avant de me lancer sur le vlisp Chaque chose en son temps @+
  23. De ne pas avoir besoin de redéfinir la varibale cmdecho D'ailleurs, dès que l'on utilise un command, on redéfinit cette variable et puis ça fait plus "lispien" De plus, je trouve que moins on se sert de command, plus le lisp est portable d'une version à une autre d'autocad
  24. La seul soultion que je vois pour l'instant est registre, registre... @+
  25. Merci Plus je l'utilise, plus je le trouve pratique et indispensable. :D Et ce n'est pas parceque j'en suis l'auteur. Je l'ai légèrement amèlioré et il est disponible en version 6.21, mais je continue de le tester et de voir s'il est possible de l'améliorer encore, voir d'y ajouter des options @+
×
×
  • 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é