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. En modifiant le lisp de base (defun c:atx(/ blo doc ent tx1 tx2 txt) (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (and (ssget (list (cons 0 "insert") (cons 66 1))) (progn (setq tx2 "") (vlax-for blo (setq sel (vla-get-activeselectionset doc)) (foreach ent (vlax-invoke blo 'getattributes) (setq txt (vla-get-textstring ent)) (and (vl-string-search "-" txt) (> (vl-string-search "-" txt) 2) (setq tx1 (substr txt (- (vl-string-search "-" txt) 2) 4)) (cond ((wcmatch txt (strcat tx1 "*")) (setq txt (strcat tx2 (substr txt (1+ (strlen tx1))))) ) ((wcmatch txt (strcat "*" tx1)) (setq txt (strcat (substr txt 1 (- (strlen txt) (strlen tx1))) tx2)) ) (T (setq txt (strcat (substr txt 1 (vl-string-search tx1 txt)) tx2 (substr txt (+ (vl-string-search tx1 txt) (strlen tx1) 1)) ) ) ) ) (vla-put-textstring ent txt) ) ) ) (vla-delete sel) ) ) (vla-endundomark doc) (princ) ) Le lisp permet une selection. Pour l'éviter, il suffit d'ajouter "X" au ssget @+
  2. Salut Pas besoin de lisp, tu peux utiliser la fonction rechercher/remplacer. Sinon, une routine plus polyvalente, dans le même esprit sur rechercher/remplacer (defun c:atx(/ blo doc ent tx1 tx2 txt) (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (and (ssget (list (cons 0 "insert") (cons 66 1))) (setq tx1 (getstring T "\nTexte à rechercher : ")) (setq tx2 (getstring T "\nTexte remplacant : ")) (progn (vlax-for blo (setq sel (vla-get-activeselectionset doc)) (foreach ent (vlax-invoke blo 'getattributes) (and (wcmatch (setq txt (vla-get-textstring ent)) (strcat "*" tx1 "*")) (cond ((wcmatch txt (strcat tx1 "*")) (setq txt (strcat tx2 (substr txt (1+ (strlen tx1))))) ) ((wcmatch txt (strcat "*" tx1)) (setq txt (strcat (substr txt 1 (- (strlen txt) (strlen tx1))) tx2)) ) (T (setq txt (strcat (substr txt 1 (vl-string-search tx1 txt)) tx2 (substr txt (+ (vl-string-search tx1 txt) (strlen tx1) 1)) ) ) ) ) (vla-put-textstring ent txt) ) ) ) (vla-delete sel) ) ) (vla-endundomark doc) (princ) ) Par exemple, tu recherches "226-" que tu remplaces par "" (autrement dit rien) @+
  3. Hello +1 pour le classique. On aurait pu ajouter un sondage menu/clavier @+
  4. Salut Ou tout simplement, inverser la sélection @+
  5. Salut Non, c'est le dessin qui change de destination (enregistrer sous) Tu peux utiliser la fonction lisp vl-file-copy à la place de vla-saveas @+
  6. Comme le dirait Bonus, à le voir écrit, cela saute au yeux C'est les fêtes qui commencent ;) Quand ça m'arrive, je laisse tomber le code et je le reprends le lendemain. En général, au bout de 5mn, c'est bouclé. @+
  7. Salut Avec GoPlot par exemple @+
  8. Je n'avais pas intégré avec des entiers, mais bon, pour le plaisir. (defun foo2 (d) (if (or (>= d 0) (= (fix d) d)) (list (fix d) (1+ (fix d)) ) (list (1- (fix d)) (fix d) ) ) ) @+
  9. Salut J'y vais aussi de ma petite routine. (defun foo2 (d) (if (> d 0) (list (fix d) (1+ (fix d)) ) (list (1- (fix d)) (fix d) ) ) ) @+
  10. Dans RDYN, tu as une routine (inputbox) qui fait appel au vba (lequel n'est plus fournit en natif par autodesk, d'où l'erreur.) Dans les lisps de (gile) tu retrouves cette routine, compatible quelle que soit la version. Tu as aussi d'autres lisps en réponses 10&11 du message précité. @+
  11. Salut Regarde ce sujet @+
  12. Salut Tu peux te servir du réacteur vlr-dwg-reactor avec l'évenement vlr-saveComplete. Cela fonctionne-t-il aussi avec l'enregistement automatique ? A voir. @+
  13. Salut Dans les options de la modélisation 3D, tout ce qui concerne "Afficher les outils dans la fenêtre". Supprimer toutes les info-bulles, tous les affichages dynamiques (dyn, scud, 3daccrobj, etc...) et ne conserver que le minimum requis. Utiliser JAV sur tout fond de plans venant de l'extérieur pour ne conserver que du trait inintelligent. Augmenter au maximum la mémoire virtuelle. En résumé, revenir à une version 2000 ;) J'exagère un peu car les blocs dynamiques, les champs sont un plus depuis la 2000. @+
  14. Je suis le premier à indiquer où l'on peut améliorer certaines choses dans des lisps. Il est normal de me le dire aussi. Utiliser un entmod sur un objet pour créer un calque, j'avoue que je ne connaissais pas et que je n'y avais jamais pensé; pourquoi pas. C'est vrai que l'on déborde du sujet original, mais c'est intéressant :D @+
  15. Salut C'est certain. Là, nos points de vue divergent. Une formation accélère la compréhension par rapport à un autodidacte, mais avec Internet, du temps et de la patience, on y arrive aussi. Je n'ai jamais eu de formation sur le lisp, et j'en connais d'autres sur ce forum qui sont comme moi. Si tu regardes dans d'autres domaines, certains amateurs sont bien plus éclairés que des professionnels. C'est la passion qui fait la différence. @+
  16. Ah oui, tu as raison. Méa culpa. J'étais partie sur nil en sortie du or, d'ou le progn. A deux, on va y arriver :P @+
  17. :D A cause du and ;) @+
  18. Salut Dommage d'utiliser le code dxf 8 alors que tu as sous la main la propriété layer. En plus, ce que demande kinato c'est d'ajouter un préfix au nom du bloc qui deviendra le nom du calque ;; Place tout les Xref du fichier dans le calque de leur nom de respectif (defun c:layXref (/ ent obj ss) (vl-load-com) (ssget "_X" '((0 . "INSERT"))) (vlax-for obj (setq ss (vla-get-activeselectionset (vla-get-ActiveDocument (vlax-get-acad-object)))) (and (vlax-property-available-p obj 'Path) (setq ent (vla-get-name obj)) (progn (or (tblsearch "layer" (setq ent (strcat "X-" ent))) (vla-add (vla-get-layers (vla-get-ActiveDocument (vlax-get-acad-object))) ent) ) (vla-put-layer obj ent) ) ) ) (if ss (vla-delete ss) ) (princ) ) @+
  19. Salut VDH-Bruno Oui mais le plus d'internet, c'est que si tu n'as pas compris, tu peux poser la question, alors que devant les pages d'un livre, à moins de se regarder dans un miroir, difficile ;) Oh, de rien. Ce sont des personnes comme toi qui sont nos récompenses. Ce sont des idiots. Il est plus facile de se moquer que de chercher à comprendre. L'intelligence n'est pas toujours donnée à tout le monde (c'est pour tes collègues, au 2em degré) ;) Le jour ou ils auront besoin de tes compétences car tu leurs fera gagner un temps précieux, n'oublie pas de demander la bouteille, ou pour les plus sages, les croissants. @+
  20. Salut Tu as la chance maintenant de disposer d'internet, de poser toutes les questions et d'avoir des personnes qui puissent y répondre. De mon temps (je viens de prendre un coup de vieux), je n'avais que le livre de programmation Autolisp (V12) et à partir des exemples fournis, de comprendre chaque fonction. Petit à petit, tu comprends la logique et tu commences à mieux maitriser le sujet. Actuellement, avec ce qui existe sur la toile, tu peux t'inspirer de ce qui a déjà été fait et d’essayer de comprendre, voire de poser une question sur une fonction dont la subtilité t'échappe. Pour avancer dans le lisp, l'idéal est de faire ses propres développements et de commencer avec un objectif assez modeste au début, voire de n'utiliser que l'autolisp avec les commandes, à la manière d'un super script. Cela permet rapidement d’atteindre l’objectif fixé, d’être content de son application (ce qui est le principal) et d’avancer à son rythme. Le but d’un lisp est qu’il doit répondre au besoin. Qu’importe qu’il soit écrit en mode script ou en super vlisp. C’est le résultat qui compte. Après, si tu t’éclates à faire tes propres algorithmes, tu peux songer à utiliser le vlisp et à mieux comprendre certaines fonctions, qui au premier abord sont assez rébarbatives. De toute façon, il n’y a pas de secret, c’est en forgeant qu’on devient forgeron. @+
  21. Salut Regarde la variable PICKFIRST @+
  22. Salut Google est ton ami ;) En fait, au vu de la recherche performante de cadxp, si tu fais par exemple une recherche sur le lisp LXL (j'ai pris volontairement 3 caractères), tu mets comme clés de recherche "LXL cadxp" @+
  23. Patrick_35

    Problème de scu

    Je ne suis pas certain que l'on parle de la même chose. Quand je parle d'espace objet, tilemode = 1, et de mes fenêtres de présentations, tilemode = 0 @+
  24. Patrick_35

    Problème de scu

    Salut Ben oui, tu peux avoir des scu avec leurs affichages dans les fenêtres de présentation différents de l'objet. Cela existe depuis toujours. Bien des fois, je me suis servi de ce type d'astuce pour avoir un plan avec le cartouche en bas à droite sans pout autant toucher à l'orientation dans l'objet. Pas de solution miracle, reste à faire une macro. @+
  25. Un petit tour sur l'aide @+
×
×
  • 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é