Aller au contenu

Patrick_35

Membres
  • Compteur de contenus

    6 374
  • Inscription

  • Dernière visite

  • Jours gagnés

    30

Patrick_35 a gagné pour la dernière fois le 8 novembre 2024

Patrick_35 a eu le contenu le plus aimé !

3 abonnés

Contact Methods

  • AIM
    1

Visiteurs récents du profil

Le bloc de visiteurs récents est désactivé et il n’est pas visible pour les autres utilisateurs.

Patrick_35's Achievements

Newbie

Newbie (1/14)

65

Réputation sur la communauté

  1. triste, très triste...

    :(

    En savoir plus  
  2. Patrick_35

    Lisps de Patrick_35

    Salut Non, je n'ai pas de version qui le permette et je ne compte pas le faire. Mais rien de t'empêche de tenter de le modifier pour le mettre à ta sauce. @+
  3. Salut Et avec JAV ? @+
  4. Patrick_35

    attribut vers attribut

    Salut Tu peux t'inspirer de CAT. @+
  5. Salut Si, avec les calques. @+
  6. Salut Denis Essaye ceci (entget (car (nentsel))) Et si tu ne souhaites pas sélectionner les textes du xref, il reste plus qu'a faire une boucle pour analyser le xref afin de retrouver les textes. ps : Dans autocad, xref = bloc que l'on retrouve dans la table des blocs. @+
  7. Je suis content que tu y sois arrivé :D Comme c'était aussi un exercice pour moi, voici une version de démo. (defun c:demo(/ doc ent hac select) (defun select(/ ent lst sel) (vlax-for ent (setq sel (vla-get-activeselectionset doc)) (setq lst (cons ent lst)) ) (vla-delete sel) lst ) (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (princ "\nSélectionnez une 1ere poly fermé pour hachure.") (and (ssget) (progn (setq hac (vla-addhatch (vla-get-modelspace doc) acHatchPatternTypePredefined "SOLID" :vlax-true)) (vlax-invoke hac 'appendouterloop (select)) (princ "\nSélectionnez une 2em poly fermé pour ilot.") (and (ssget) (vlax-invoke hac 'appendinnerloop (select)) ) (princ "\nSélectionnez une 3em poly fermé pour étendre la hachure.") (and (ssget) (vlax-invoke hac 'insertloopat (vla-get-numberofloops hac) acHatchLoopTypeDefault (select)) ) (vlax-invoke hac 'evaluate) ) ) (vla-endundomark doc) (princ) ) @+
  8. Salut Comme l'indique Olivier Eckmann, c'est avec AppendInnerLoop Et en prime, un exemple pour faire une hachure sur plusieurs poly fermées. (defun c:test(/ doc ent hac lst obj sel) (setq doc (vla-get-activedocument (vlax-get-acad-object))) (vla-startundomark doc) (and (ssget) (progn (vlax-for ent (setq sel (vla-get-activeselectionset doc)) (setq lst (cons ent lst)) ) (vla-delete sel) (setq hac (vla-addhatch (vla-get-modelspace doc) acHatchPatternTypePredefined "SOLID" :vlax-false)) (vlax-invoke hac 'appendouterloop lst) (and (ssget) (progn (setq lst nil) (vlax-for ent (setq sel (vla-get-activeselectionset doc)) (setq lst (cons ent lst)) ) (vla-delete sel) (setq obj (vlax-make-safearray vlax-vbObject (cons 0 (1- (length lst))))) (vlax-safearray-fill obj lst) (vla-insertloopat hac (vla-get-numberofloops hac) acHatchLoopTypeDefault obj) ) ) (vlax-invoke hac 'evaluate) ) ) (vla-endundomark doc) (princ) ) 1) Tu sélectionnes une 1ere poly (ou un ensemble d'objets lignes, arcs, etc.…) 2) Une première hachure se créé. 3) Tu sélectionnes une 2em poly (ou un ensemble d'objets lignes, arcs, etc.…) 4) La hachure s'étend maintenant au nouvel objet. 5) Je te laisse faire pour AppendInnerLoop. @+
  9. Salut Pourquoi utiliser ssname alors que tu as directement activeselectionset Par exemple (ssget "_x") (setq sel (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object)))) (vla-get-count sel) (vla-item sel 0) (vlax-for obj sel (terpri) (princ (vla-get-objectname obj)) ) (vla-delete sel) Et je pense que cela va résoudre ton problème de vsel (vlax-invoke ... (list vsel)) @+
  10. Oui, c'est pour montrer d'où vient le problème. On peut très bien voir des objets invisible dans le dessin sans que cela dépendent des calques. @+
  11. Salut Avec la commande insérer --> Parcourir Il te demande si tu veux le redéfinir ou pas. Avec le DésignCenter --> Clic droit sur le bloc --> Redéfinir @+
  12. Alors, tu dois avoir un lisp qui a cette fonction. Fait une recherche sur l'ordi de tout les *.lsp contenant le texte c:bb (en espérant que ce n'est pas dans un vlx) Et si tu n'as rien comme résultat, une recherche sur tout les fichiers contenant le texte c:bb, car on peut très bien changer l'extension d'un lisp et le charger avec l'extension modifié (c'est tordu, mais ça marche) @+
  13. Salut J'ai ouvert ton dessin avec juste le message pour les références non résolues. Tu as ce sujet qui évoque des pistes pour charger automatiquement un lisp. Le plus simple est de mettre à dispo le lisp bb afin de voir ce qui cloche. @+
  14. Salut En lisp, il est possible de rendre un bloc invisible. Par exemple (defun c:test(/ ent) (setq ent (vlax-ename->vla-object (car (entsel)))) (vla-put-visible ent :vlax-false) (princ "\nLe bloc est maintenant invisible.") (getstring "\nAppuyez sur entrée pour continuer...") (vla-put-visible ent :vlax-true) (princ "\nLe bloc est maintenant visible.") (princ) ) @+
  15. Salut Comme c'est la nouvelle année, voici une fonction qui sélectionne le/les blocs, même imbriqués. L'idée est de parcourir la table des blocs, de regarder dans chaque bloc si tu as un bloc recherché imbriqué --> Oui, je le mémorise et je relance la recherche pour voir si le bloc trouvé n'est pas lui-même imbriqué dans un autre bloc. Voici la fonction et si tu as des questions, n'hésite pas. (defun rech(bl / doc ent js lst obj old sel tab nombl) (defun nombl(bl) (if (vlax-property-available-p bl 'effectivename) (strcase (vla-get-effectivename bl)) (strcase (vla-get-name bl)) ) ) (setq doc (vla-get-activedocument (vlax-get-acad-object)) bl (mapcar 'strcase bl) old bl js (ssadd) ) (while bl (setq lst nil) (vlax-for obj (vla-get-blocks doc) (and (eq (vla-get-islayout obj) :vlax-false) (eq (vla-get-isxref obj) :vlax-false) (not (wcmatch (vla-get-name obj) "*|*")) (vlax-for ent obj (and (eq (vla-get-objectname ent) "AcDbBlockReference") (vl-position (nombl ent) bl) (not (vl-position (nombl obj) lst)) (setq lst (cons (nombl obj) lst) tab (cons (vla-get-name obj) tab) ) ) ) ) ) (setq bl lst) ) (setq tab (append tab old)) (and (ssget "_x" (list (cons 0 "insert") (cons 2 (strcat (apply 'strcat (mapcar '(lambda(x)(strcat x ",")) tab)) "`*U*")))) (progn (vlax-for obj (setq sel (vla-get-activeselectionset doc)) (and (vl-position (nombl obj) tab) (ssadd (vlax-vla-object->ename obj) js) ) ) (vla-delete sel) (sssetfirst nil js) ) ) js ) Pour lancer la fonction. Tu peux indiquer une liste de blocs. La sélection est effectuée dans Autocad et tu as comme message de retour, la sélection. Par exemple (rech '("grille")) @+
×
×
  • 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é