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. Ca dépend, mais pour les calques, c'est exact Qu'importe, le voici en vlisp (setq lays (vla-get-layers (vla-get-activedocument (vlax-get-acad-object)))) (vlax-for lay lays (if (member (vla-get-color lay) '(2 50 51)) (vla-put-color lay 7) ) ) @+
  2. Patrick_35

    disparition des menus

    Comme tu as fait, avec la commande menu @+
  3. (gile) Tu pourrais faire mieux avec un entmod plutôt qu'avec un command ;). Ce serait plus "lispien" @+
  4. Patrick_35

    VBA --> AutoLisp

    Salut Tu as ce sujet, ou celui-ci, ou encore ici @+
  5. Salut Ton erreur indique une mauvaise manip dans un jeu de sélection. Përso, pour débugger, je place des (alert"1"), (alert"2"), etc... aux endroits stratégiques. Je lance le lisp et je regarde mes alerts jusqu'au moment où il plante. A pârtire de là, j'ai une idée plus précise @+
  6. Patrick_35

    Lier 2 attributs

    Salut Boris Si, les liaisons sont conservées. Il faut que le lisp soit lancé pour que ça fonctionne @+
  7. Patrick_35

    Lier 2 attributs

    Pour ceux que ça intéresse, une mise à jour a été faite sur le lisp. Il est possible maintenant de faire des copies multiple, la sélection des attributs est plus conviviale et encore deux ou trois petits trucs. Je pense y ajouter la possibilité de faire des opérations (+ - * /) à moins qu'avec les champs, ça existe déjà en version 2006. Autrement, si ça vous dit, faites le moi savoir. @+
  8. Patrick_35

    modifications dynamiques

    Fais une recherche sur les réacteurs, tu trouveras des choses intéressantes Tu as aussi ce lisp qui pourrai de donner la marche à suivre. Il fonctionne sur des attributs, mais l'adapter pour du texte n'est pas bien compliqué @+
  9. Ou encore la commande remplir, ce qui revient à fillmode @+
  10. Patrick_35

    modifications dynamiques

    Salut Tu souhaites rester en vba ?. Car pour ce que tu demandes, ce serait plus facile en vlisp par le biais des réacteurs @+
  11. Patrick_35

    distance

    Salut Si je comprends la demande, avec la variable coords @+
  12. Patrick_35

    modifier un programme !!

    Salut Tu charges bien le lisp ? Avec _appload, ou avec un (load"...."), ou en autoload, ou encore avec un drag&drop ! @+
  13. Bien sur, mais c'est juste pour le fun. Je dois avouer à te lire que tu te débrouille très bien et même mieux que la moyenne en prog. Il y a certains trucs, notamement en 3D où j'ai parfois du mal à te suivre... :cool: @+
  14. Salut J'ai fais un truc dans ce style mais c'est en vlisp avec des réacteurs. Soit tu passes en LT2005, ou bien un add-on sur ta LT2004 @+
  15. Salut (setq pt1 (getpoint "\nCentre du cercle : ")) (while T (command "_.circle" pt1 pause) ) C'est juste pour faire plus court et pour voir le cercle pendant la commande @+
  16. Salut (if (not (vlax-object-released-p ObjExcel))(vlax-release-object ObjExcel)) Cela devrait logiquement suffire vu que c'est pour fermer Excel, donc le Workbooks et le Sheets sont fermés aussi ? (vl-catch-all-apply 'vlax-release-object (list ObjExcel)) Peut aussi fonctionner @+
  17. Eh, bienvenue à un nouveau qui manie le vlisp @+
  18. Salut Le souci, c'est le wipeout. Autocad sait très bien les gérer en graphique, mais pour ce qui est de l'impression, on trouve de tout et n'importe quoi. Pour preuve, j'avais fais des blocs avec un wipeout en arrière plan afin qu'ils apparaissent correctement sur mes plans archi. Visuellement, c'est le top, mais lors de la sortie traceur, catastrophe, mes wipeouts se trouvaient un peu partout dans le plan sauf là où ils auraient dû être. J'avais tourné mon scu dans la présentation, mais quand même. @+
  19. Patrick_35

    Lisp du _copy...

    Salut Tu as la solution simple de faire (if (setq sel (ssget)) (if (setq pt1 (getpoint "Point de Base : ")) (if (setq pt2 (getpoint pt1 "Point de Destination : ")) (command "_.copy" sel "" pt1 pt2) ) ) ) ou plus évolué avec ce lisp avec la fonction copier_obj @+
  20. Patrick_35

    Filtrage sur block

    Salut Tu devrais poser ta question dans le forum vba @+
  21. Patrick_35

    EXCEL ----->>>AUTOCAD

    Salut Ou encore de faire un prog, si le courage t'en dit... @+
  22. Patrick_35

    Filtrage sur block

    Salut Tu veux faire un filtre en lisp ? (setq js (ssget "x" (list (cons 0 "INSERT") (cons 2 "MON_BLOCK")))) Ou directement depuis autocad avec la commande _filter ou _qselect @+
  23. Salut Une petite routine pour copier des objets (defun copier_obj(/ doc pap ent js n pt1 pt2 sel) (if (setq sel (ssget)) (if (setq pt1 (getpoint "\nPoint de base : ")) (if (setq pt2 (getpoint pt1 "\nDestination : ")) (progn (vl-load-com) (setq doc (vla-get-activedocument (vlax-get-acad-object))) (if (eq (getvar "tilemode") 1) (setq pap (vla-get-modelspace doc)) (setq pap (vla-get-paperspace doc)) ) (vla-startundomark doc) (setq n 0) (while (ssname sel n) (setq js (cons (ssname sel n) js) n (1+ n)) ) (setq js (vlax-safearray-fill (vlax-make-safearray vlax-vbObject (cons 0 (1- (length js)))) (mapcar 'vlax-ename->vla-object (reverse js)))) (setq sel (vla-copyobjects doc js pap)) (foreach ent (vlax-safearray->list (vlax-variant-value sel)) (vla-move ent (vlax-3d-point pt1) (vlax-3d-point pt2)) ) (vla-endundomark doc) (setq sel (vlax-safearray->list (vlax-variant-value sel))) (setq js (ssadd)) (foreach ent sel (ssadd (vlax-vla-object->ename ent) js) ) ) ) ) ) ) Tu fais un (setq js (copier_obj)) et ton js est le jeu de sélection des objets copiés @+
  24. Salut C'est assez simple avec la fonction vla-IntersectWith Je vous donne un exemple Je trace une ligne et j'implante par exemple ma bobine sur cette ligne Exemple Je sélectionne ma bobine (setq a (car (entsel))) (setq b (vlax-ename->vla-object a)) Je sélectionne la ligne (setq a (car (entsel))) (setq c (vlax-ename->vla-object a)) Je recherche les intersections (setq d (vlax-safearray->list (vlax-variant-value (vla-IntersectWith b c 0)))) Je coupe me ligne (command "_.break" (vlax-vla-object->ename c) (list (nth 0 d) (nth 1 d) (nth 2 d)) (list (nth 6 d) (nth 7 d) (nth 8 d))) Voila le principe Pour aller plus loin, se serait bien de passer par les réacteurs pour couper la ligne lorsque l'on exécute les commande suivantes : insérer, copier, rotation, déplacer commande et déplacer grips, étirer commande et étirer grips. Je pense ne rien oublier. Je ferais bien ce lisp, mais en ce moment je n'ai pas le temps @+
  25. Patrick_35

    Tester le chargement

    Salut (vl-catch-all-apply 'load '("Mon_Lisp")) @+
×
×
  • 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é