-
Compteur de contenus
6 374 -
Inscription
-
Dernière visite
-
Jours gagnés
30
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par Patrick_35
-
Supprimer une chaine de caractère dans un attribut
Patrick_35 a répondu à un(e) sujet de bono05 dans LISP et Visual LISP
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 @+ -
Supprimer une chaine de caractère dans un attribut
Patrick_35 a répondu à un(e) sujet de bono05 dans LISP et Visual LISP
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) @+ -
Quel AFFICHAGE au démarrage d'AutoCAD ?
Patrick_35 a répondu à un(e) sujet de rebcao dans AutoCAD 2011
Hello +1 pour le classique. On aurait pu ajouter un sondage menu/clavier @+ -
incrémenter...et surtout décrémenter!
Patrick_35 a répondu à un(e) sujet de bono05 dans LISP et Visual LISP
Salut Ou tout simplement, inverser la sélection @+ -
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 @+
-
Fonction d'encadrement d'un nombre réel
Patrick_35 a répondu à un(e) sujet de bonuscad dans Pour aller plus loin en LISP
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é. @+ -
routine de transmission du fichier plt au traceur T2300 hpgl2
Patrick_35 a répondu à un(e) sujet de coge.bruno dans Pour aller plus loin en LISP
Salut Avec GoPlot par exemple @+ -
Fonction d'encadrement d'un nombre réel
Patrick_35 a répondu à un(e) sujet de bonuscad dans Pour aller plus loin en LISP
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) ) ) ) @+ -
Fonction d'encadrement d'un nombre réel
Patrick_35 a répondu à un(e) sujet de bonuscad dans Pour aller plus loin en LISP
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) ) ) ) @+ -
[Résolu] nom de bloc commencant par *u
Patrick_35 a répondu à un(e) sujet de x_all dans Routines LISP
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é. @+ -
[Résolu] nom de bloc commencant par *u
Patrick_35 a répondu à un(e) sujet de x_all dans Routines LISP
Salut Regarde ce sujet @+ -
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. @+
-
Amélioration des performances d'AutoCAD
Patrick_35 a répondu à un(e) sujet de salvanorigatore dans AutoCAD 2013
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. @+ -
Comment attacher un xref avec un calque du même nom
Patrick_35 a répondu à un(e) sujet de naito073 dans AutoCAD 2010
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 @+ -
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. @+
-
Comment attacher un xref avec un calque du même nom
Patrick_35 a répondu à un(e) sujet de naito073 dans AutoCAD 2010
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 @+ -
Comment attacher un xref avec un calque du même nom
Patrick_35 a répondu à un(e) sujet de naito073 dans AutoCAD 2010
:D A cause du and ;) @+ -
Comment attacher un xref avec un calque du même nom
Patrick_35 a répondu à un(e) sujet de naito073 dans AutoCAD 2010
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) ) @+ -
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. @+
-
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. @+
-
Quel variable gère "copyclip" ?
Patrick_35 a répondu à un(e) sujet de salvanorigatore dans AutoCAD 2011
Salut Regarde la variable PICKFIRST @+ -
rechercher les sujets ou j'ai écrit
Patrick_35 a répondu à un(e) sujet de philsogood dans CADxp, comment ça marche?
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" @+ -
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 @+
-
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. @+
-
ssget + group operator
Patrick_35 a répondu à un(e) sujet de krunch dans Pour aller plus loin en LISP
Un petit tour sur l'aide @+
