Aller au contenu

Bred

Membres
  • Compteur de contenus

    2 764
  • Inscription

  • Dernière visite

Tout ce qui a été posté par Bred

  1. Bred

    PERDU DE VUE

    Salut, Ctrl + 9
  2. Salut Je connais la (trés utile) variable "osnapnodelegacy" sur 1 pour éviter d'avoir l'accrochage nodal sur les textes.... N'y aurait t'il pas l'équivalent pour les cotes ??? ... merci ...
  3. Bred

    écriture style wordpad?

    Salut, Les "express Tool" sont des outils qui ne sont pas installé d'office au moment de l'installation d'Autocad. pour les installer, soit tu paases directement par le cd d'installation qui te proposeras de les installer, soit, avec le cd d'installation toujours, tu passes par windows en allant dans le panneau de config, "ajouter/supprimer des prog", dans autocad -> ajjouter ou modifier, et là il te proposeras de les installer.... (quand tu fais une errur avec tes messages, tu peux "éditer" = modifier le message précedement écris ...
  4. Salut, qui donne ... je ne vois pas comment faire plus simple .... ... et si tu veus que ce soit au moment de faire une "nouvelle présentation", fait la à "partir d'un gabarit" ... ... ou alors je n'ai vraiment rien compris à ta question ...
  5. Salut, J'ai écrit une petite routine permettant d'extraire des "attributs fixes" contenu dans mes blocs. Je n'arrive pas à mettre en place une boucle à l'interieur de mon lisp me permettant d'aller extraires ces même attributs si ces blocs font partis d'un blocs imbriqués à "X" niveau.... (je sais que je pourrais utiliser la commande d'extration d'Autocad pour ça...mais pour le principe de ne pas rester sur une impasse.... :casstet: ) lisp d'extration d'attribut fixe d'un bloc "simple" : (defun c:aaa () (setq list-att-1bloc nil) (setq list-att nil) (setq sel (ssget '((0 . "INSERT")))) (setq index 0) (repeat (sslength sel) (setq Nom_ent (ssname sel index)) (setq bloc (tblsearch "BLOCK" (cdr (assoc 2 (entget Nom_ent))))) (setq Nom_ent (cdr (assoc -2 bloc))) (setq ent (entget Nom_ent)) (while Nom_ent (if (/= (cdr (assoc 0 (entget Nom_ent))) "ATTDEF") (setq Nom_ent (entnext Nom_ent)) (progn ; (setq list-att-1bloc nil) (setq ent (entget Nom_ent)) (setq list-att-1bloc (append (list (list (cdr (assoc 2 ent))(cdr (assoc 1 ent)))) list-att-1bloc)) (setq Nom_ent (entnext Nom_ent)) ) ) ) (setq list-att (append (list (list (cadr (assoc "Att1" list-att-1bloc)) (cadr (assoc "Att2" list-att-1bloc)) (cadr (assoc "Att3" list-att-1bloc)) (cadr (assoc "Att4" list-att-1bloc)))) list-att)) (setq index (1+ index)) ) ;;; liste final tout attributs (setq list-att (append (list (list "Att1" "Att2" "Att3" "Att4")) list-att)) ) ... merci d'avances pour votre aide .... ;)
  6. Bred

    Coord. Bloc Imbri.

    Bon... je n'y arrive pas donc je jette (encore) une bouteille à la mer... car peut-être (certainement) je n'utilise pas une bonne méthode : Ce que j'ai : - Une multitude de "blocs" ou "wblocs" insérer, certain ayant plusieurs niveau d'imbrication... - Dans ces blocs peut se trouver certains blocs ( bloc de référence) auxquel je doit faire un "test d'insertion" c'est à dire qu'il faut que je regarde comme il sont placé les uns par rapport aux autres car certaines configuration ne sont pas possible... Ce que je voudrais faire : - j'ai créér un cloc "Z_test" que j'ai insérer dans les blocs que je doit tester (2 blocs "Z_test" par bloc de référence). - Ce bloc ("Z_test") est placé dans les " blocs de référence" de manière à ce que si ces blocs de références ne sont pas mis dans la bonne position l'un par rapport à l'autre, l'un des blocs "Z_test" de chaques " bloc de référence" ont le même point d'insertion (il se "chevauche"),... ce qui me permetrait d'y insérer un bloc permétant de désigner le problème "visuellement" ... -... et pour "simplifier : ce sont des blocs 3D ... ... la proposition de (gile) - merci encore- ci-dessus permet de ressortir les point d'insertion de ces blocs "Z_Test" par rapport au " bloc de réference" ... mais si le bloc de référence est compris lui-même dans un bloc (à x niveau d'imbrication), ça fausse le résultat ... et je n'arrive pas à touver la solution ... ... mais je le répete, peut-être je n'utilise pas une bonne méthode, et une manière + simple permétrait de tester la position d'un bloc par rapport aux autres ... merci
  7. Bred

    Coord. Bloc Imbri.

    Salut... Alors, j'ai testé, tripatouillé, etc.... (la version autolisp) J'ai un souci : ça fonctionne pour les blocs imbriqué au 1 niveau... et je n'arrive pas à le faire fonctionner pour le bloc reférence à "X" niveau... En fait (et c'est logique) il me donne les coordonnées d'après le bloc insérer, quand le bloc "sub_ent" et en 1er niveau, cela fonctionne.... donc il faut que je prenne comme point de référence le premier bloc, quelque soit le niveau d'imbrication...... je pense.... je cherche... pour info voilà ou j'en suis, mais je crois que je ne suis pas bon du tout !!!... (mon sous-prog doit lister le point de ref du bloc quelque-soit le niv d'imbrication, et je ne sais pas comment faire!!!!...) : ;;;; sous-prog [b] (mise en liste du ou des blocs ref)[/b] (defun Tri_list (sel) (setq index 0) (setq Nom_ent (ssname sel index)) (while Nom_ent (while Nom_ent (if (or (equal (cdr (assoc 2 (entget Nom_ent))) "bloc_ref1") (equal (cdr (assoc 2 (entget Nom_ent))) "bloc_ref2")) ; si bon met dans liste (progn (setq list_d (append (list (cdr (car (entget Nom_ent)))) list_diag)) (setq Nom_ent (entnext Nom_ent)) ) ; si pas bon cherche sous-bloc (progn (setq bloc (tblsearch "BLOCK" (cdr (assoc 2 (entget Nom_ent))))) (setq Nom_ent (cdr (assoc -2 bloc))) ; = ) )) (setq index (1+ index)) (setq Nom_ent (ssname sel index)) ) ) [b] mise en listes des coordonnées de "sub_ent" (SCG)[/b] (defun c:ttt () (setq sel (ssget "_X" '((0 . "INSERT")))) (Tri_list sel) ; liste (setq compt 0) (repeat (length list_d) (setq Di (nth compt list_d)) (setq comp (1+ compt)) (setq ref (entget Di)) (setq ins (cdr (assoc 10 ref))) ;; On parcourt les entités composant le bloc ;; pour trouver le bloc "sub_ent" dans bloc (setq bloc (tblsearch "block" (cdr (assoc 2 ref)))) ;_ Définition du bloc (setq ent (cdr (assoc -2 bloc))) ; ent = entité (-2) (while ent (setq e_lst (entget ent)) (if (= (cdr (assoc 2 e_lst)) "sub_ent") (progn (setq coord (cdr (assoc 10 (entget ent)))) (setq coord (mapcar '* coord (list (cdr (assoc 41 ref)) (cdr (assoc 42 ref)) (cdr (assoc 43 ref)))));; Prise en compte des échelles en X, Y et Z (setq coord (polar '(0 0 0) (+ (cdr (assoc 50 ref)) (angle '(0 0 0) coord))(distance '(0 0 0) coord)));; Prise en compte de la rotation (setq coord (mapcar '+ (trans ins (cdr (assoc 210 ref)) 0) (trans coord (cdr (assoc 210 ref)) 0))) (setq list_coord (append (list (cdr (assoc 10 (entget ent)))) list_coord))) ; liste coordonnées de "sub_ent" dans bloc ) (setq ent (entnext ent)) ) ; fin de while ) ; fin de repeat )
  8. Bred

    Coord. Bloc Imbri.

    Salut (gile)... :D merci pour toutes tes réponses,je vais étudier tout ça avec attention.... (je n'ai pas eu le temp de m'y pencher aujourd'hui....) Je te tiens au courant de tous mes tests et des problèmes (eventuels) que je rencontrerais. merci encore. Salutations.
  9. Bred

    Coord. Bloc Imbri.

    Alors, là, tu exagères!!!... :cool: tu pourrais être un peu plus serviable et m'aider un peu plus !!!... ;) Serieusement : merci... pour arranger la chose, je bosse évidemment avec des blocs 3D.... encore merci de ton aide en tout cas...
  10. Salut, Je cherche à ressortir les coordonnées d'un bloc imbriqué précis dans un bloc par rapport au SCU ou au SCG... Je réussis à ressortir en autolisp les entités d'un bloc imbriqué grâce à "tblsearch"... ... pour me rendre compte que le point d'insertion est donné par rapport au bloc de base (ou alors il y a quelque chose que je ne sais pas faire...) Je me suis dit que peut être en vl les coordonnées serait donné par rapport au SCG... (???) [surligneur] (gile)[/surligneur] m'a montré la procédure en vl pour ressortir les propriétés d'un objet grâce à (vlax-dump-object obj), mais je suis encore incapable de ressortir les propriétés d'un bloc imbriqué contenu dans cet objet... donc je ne sais même pas si je suis dans le bon chemin... ... si vous pouvez encore me guider.... .... merci d'avance.
  11. Bred

    Différence wbloc et bloc ???

    ... en fait je comprend de mieux en mieux vu que (gile) m'explique à chaque fois sa logique, et en faisant des tests sur ce qu'il me propose (une centaines de tests par proposition...) et en lisant les réaction dans la console, je comprend ce qu'il se passe au bout d'un moment... mais il est vrais que je met de côté pas mal de chose en me disant que j'y reviendrais plus tard... et je me contente d'une version autolisp... d'ailleurs, je comprends quand (gile) dit qu'il n'aime pas trop mélanger les genres (vl et auto), mais est-ce véritablement justifié au point de vue programmation ???... si c'est plus "rapide", pourquoi s'en priver ??? merci dans tout les cas à vous deux.
  12. Bred

    Différence wbloc et bloc ???

    Heu.... en fait je crois mieux comprendre maintenant... et c'est pour ça que je n'avais pas compris la proposition que tu cites...! :P En effet, il est logique que le lisp ne fonctionne pas, vu que je fais un (findfile (strcat bloc_R ".dwg" ) quoi qu'il arrive... et comme un bloc (simple) n'a pas de chemin, le lisp se met à rigoler et se moque de moi en m'envoyant une erreur !!!.... ... pffff.... :exclam: merci edit. --------------- et merci à Patrick, qui avait cité son exemple aussi... je n'avais vraiment rien compris..... [Edité le 21/7/2006 par Bred]
  13. Bred

    Différence wbloc et bloc ???

    Heu... merci Maximilien... mais peut-être que je n'utilisa pas le bon vocabulaire.... :casstet: un "Wbloc" est pour moi un bloc créé avec la commande "wbloc" un "bloc" est pour moi un bloc créé avec la commande "bloc" ... et donc ma question est : dans le traitement en lisp écrit en sujet, quel est la "différence lisp" entre un bloc et un wbloc qui fait que ce lisp ne fonctionne pas pour les "blocs" ???? [Edité le 21/7/2006 par Bred]
  14. Salut, Suite à mes derniers sujets concernant un lisp de Remplacement de bloc, et de la proposition de (gile), quelque chose m'echappe : Ce lisp : (defun Replace_Bloc (/ bloc_sel obj Group_bloc_sel Quest index bloc_R) (princ "\n------------------------------\n Sélection du Bloc à Remplacer:") (while (= bloc_sel nil) (setq bloc_sel (ssget "_:S:E" '((0 . "INSERT"))))) (setq obj (vlax-ename->vla-object (ssname bloc_sel 0))) ; (vla-Highlight obj 1) ;;;surbrillance (initget "Oui Non") (setq Quest (getkword "\n Choix Multiple (Oui/Non)? ")) (if (= Quest "Oui") (progn (setq Group_bloc_sel (ssget (list '(0 . "INSERT")(assoc 2 (entget (ssname bloc_sel 0)))))) (ssadd (ssname bloc_sel 0) Group_bloc_sel) (setq bloc_sel Group_bloc_sel))) (setq bloc_R (getstring "\n Entrez le nom du bloc Remplaçant ou : ")) (if (= bloc_R "") (progn (while (= bloc_R "") (setq bloc_R (ssget "_:S:E" '((0 . "INSERT"))))) (setq bloc_R (cdr (assoc 2 (entget (ssname bloc_R 0))))))) (vla-Highlight obj 0) ;;;fin de surbrillance (setq index 0) (repeat (sslength bloc_sel) (setq obj (vlax-ename->vla-object (ssname bloc_sel index))) (vla-put-layer (vla-insertblock (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))) (vla-get-InsertionPoint obj) (findfile (strcat bloc_R ".dwg" )) (vla-get-XScaleFactor obj) (vla-get-YScaleFactor obj) (vla-get-ZScaleFactor obj) (vla-get-rotation obj)) (vla-get-layer obj)) (vla-delete obj) (setq index (1+ index))) (if (> (sslength bloc_sel) 1) (princ (strcat "\n ---------------------------------- \n" " "(rtos (sslength bloc_sel)) " objets remplacés.")) (princ (strcat "\n ---------------------------------- \n" " "(rtos (sslength bloc_sel)) " objet remplacé."))) (prin1) ) ... ne fonctionne que pour les wblocs... pourtant, quand je fais un (vlax-dump-object obj) entre un bloc et un wbloc, je ne vois pas de différence.... merci de vos lumières....
  15. Salut, Juste pour exemple, il m'est arrivé un truc identique, avant hier : J'avais un litige avec un monsieur concernant un remboursement d'assurance... je passe les détails, mais dans notre altercation verbal, ce monsieur à dit des choses inadmissible sur ma fille de 2ans1/2... Je me suis emporté et je lui en ai mis un.... Je ne le regrette pas, et je trouve même que je me suis pas mal maitrisé (j'en ai mis qu' un!!!), car je ne peux imaginer que l'on dise quoi que ce soit de mauvais au sujet de ma fille... et surtout sur un sujet personnel qui me touche profondément... La seule chose que je regrette, et que cette altercation c'est fait dans un lieux publics, car les gens qui ont vu ça de l'exterieur ne peuvent pas logiquement imaginer qu'en fait la victime, c'est moi... ... pour ceux qui ont des enfants, imaginez ....
  16. Bred

    Script de production de PDF

    Salut, ... le problème est + important, vu que ce n'est pas autocad qui ouvre cette fenêtre d'enregistrement, mais ton module d'ipression PDF (cutePDF ou autre...) ... désolé, mais en script j'ai peur que ce ne soit pas possible, vu que tu ne peux toucher qu'au commandes d'autocad...
  17. Bred

    Copie multiple

    Salut, en macro bouton, en passant par le réseau rectangulaire : ^C^C-reseau;\;R;1;\\
  18. Bred

    Remplacer blocs/entmake

    merci (gile) ... j'avoue qu'il me faut prendre le temps de comprendre tout ça... c'est recopié, et prêt à être décortiqué !!! ... Juste pour info, j'en étais resté à (vla-Highlight ...) qui fonctionne trés bien. Le seul souci étant que si je fait un Echap avant le (vla-Highlight obj 0), l'objet reste en surbrillance... et impossible de l'enlever... Donc : j'ai rentrer dans ma gestion d'erreur une petite routine équivalente à ton "SAVE&SET_VAR" : ;;; ROUTINE COMMANDE DE REINITIALISTION si ERROR (defun LANCE_si_ERROR (cd) (setq list_lance_si_error (append (list cd) list_lance_si_error)) et pour revenir à l'état initial, mis dans la rédéfinition de *error* : (mapcar 'eval list_lance_si_error) ... ce qui fait que j'ai dans le début du code : (INTRO_PRG_ERR) (princ "\n------------------------------\n Sélection du Bloc à Remplacer:") (while (= bloc_sel nil) (setq bloc_sel (ssget "_:S:E" '((0 . "INSERT"))))) (setq obj (vlax-ename->vla-object (ssname bloc_sel 0))) ; (vla-Highlight obj 1) ;;;surbrillance [b] (LANCE_si_ERROR '(vla-Highlight obj 0)) [/b]..... etc et ça fonctionne trés bien !!! (cette routine LANCE_si_ERROR me permettra de rentrer ce type de commande qui ne peuvent pas être re-initialiser autrement que par la commande elle-même...) merci
  19. Bred

    Remplacer blocs/entmake

    merci (gile)... (1650ème fois...) [surligneur] -[/surligneur] (vla-Highlight ...) fonctionne trés bien. [surligneur] -[/surligneur] dans mon lisp, je regroupe la selection si l'utilisateur fait le choix de modifier plusieurs blocs (identiques) (initget "Oui Non") (setq Quest (getkword "\n Choix Multiple (Oui/Non)? ")) (if (= Quest "Oui")(progn (setq Group_bloc_sel (ssget (list '(0 . "INSERT")(assoc 2 (entget (ssname bloc_sel 0)))))) [b] (ssadd (ssname bloc_sel 0) Group_bloc_sel)[/b] (setq bloc_sel Group_bloc_sel))) ... donc je traite apères un groupe de selection avec ma boucle... (setq index 0) (repeat (sslength bloc_sel) ;; Changement du nom d'entité en vla-object (setq obj (vlax-ename->vla-object (ssname bloc_sel index))) (vla-put-layer (vla-insertblock (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object)) ) (vla-get-InsertionPoint obj) (findfile (strcat bloc_R ".dwg" )) (vla-get-XScaleFactor obj) (vla-get-YScaleFactor obj) (vla-get-ZScaleFactor obj) (vla-get-rotation obj) ) (vla-get-layer obj) ) (vla-delete obj) (setq index (1+ index))) ) je ne sais pas comment faire pour traduire ça en -vl.... [surligneur] -[/surligneur] ... heu... c'est un post que j'ai fait en parrallèle afin de savoir si l'on peut enlever le texte de mise à jour de bloc dans la ligne de commande du fait de l'utilisation de vla-insertblock... les exemples cité sont des copiers-coller du post ici présent ...
  20. Bred

    Fmult comment faire?

    Salut, je pense que tu ne suit pas les bonnes étapes : Tu créeé une fenêtre en polyligne directement dans l'espace papier, avec un nombre de sommets trés important (il faut qu'elle est + de sommet que tu n'auras d'angle..) Tu met ton plan à l'echelle dans cette fenêtre, tu cadre, et c'est là que tu déplace tes sommets de polyligne (avec les gripps) afin de cadrer exactement l'endroit désiré de ton plan (en accrochant les angles des murs par extrémité par exemples)... Si tu as trop d'angle, tu les superposes... ... voilà comment je ferais, si j'ai bien compris ton problème...
  21. Bred

    Remplacer blocs/entmake

    Salut, j'ai legerment modifier la proposition de (gile) afin d'avoir le choix de choisir de modifier plusieurs blocs si on a envie... (defun c:Replace_Bloc (/ bloc_sel Group_bloc_sel Quest index bloc_R) (princ "\n------------------------------\n Sélection du Bloc à Remplacer:") (while (= bloc_sel nil) (setq bloc_sel (ssget "_:S:E" '((0 . "INSERT"))))) [b] (sssetfirst nil bloc_sel) [/b] (initget "Oui Non") (setq Quest (getkword "\n Choix Multiple (Oui/Non)? ")) (if (= Quest "Oui")(progn (setq Group_bloc_sel (ssget (list '(0 . "INSERT")(assoc 2 (entget (ssname bloc_sel 0)))))) (ssadd (ssname bloc_sel 0) Group_bloc_sel) (setq bloc_sel Group_bloc_sel))) (setq bloc_R (getstring "\n Entrez le nom du bloc Remplaçant ou : ")) (if (= bloc_R "") (progn (while (= bloc_R "") (setq bloc_R (ssget "_:S:E" '((0 . "INSERT")))) ) (setq bloc_R (cdr (assoc 2 (entget (ssname bloc_R 0))))) ) ) (setq index 0) (repeat (sslength bloc_sel) ;; Changement du nom d'entité en vla-object (setq obj (vlax-ename->vla-object (ssname bloc_sel index))) (vla-put-layer (vla-insertblock (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object)) ) (vla-get-InsertionPoint obj) (findfile (strcat bloc_R ".dwg" )) (vla-get-XScaleFactor obj) (vla-get-YScaleFactor obj) (vla-get-ZScaleFactor obj) (vla-get-rotation obj) ) (vla-get-layer obj) ) (vla-delete obj) (setq index (1+ index))) ) ... par contre, la dernière chose qui me déplait est que le (sssetfirst nil bloc_sel) ne fonctionne pas, et que donc il n'y a pas confirmation visuel comme quoi on a bien choisit le bon bloc... si vous connaissez la solution... merci pour tout ...
  22. Bred

    Remplacer blocs/entmake

    Daco'Dac !... merci à vous deux, je passerais donc en -vl... mais ça m'aura permis de toucher du doigt entmake...
  23. Alors là, merci pour ce petit cours de vl !!! Juste pour info, je viens de tester ta proposition et elle ne fonctionne pas si le bloc n'est pas déjà dans le dessin (mais je pense qu'il faut juste marquer le chemin de recherche du bloc pour que ça fonctionne), par contre, le bloc remplacé ne s'efface pas.... j'édite : je confirme, pour remplacer le bloc avec un bloc ne se trouvant pas dans le dessin, remplacer bloc_R par (findfile (strcat bloc_R ".dwg" )) (à l'insertion en fin de lisp) [Edité le 18/7/2006 par Bred]
  24. Bred

    Devenez immortel

    Salut Pieroka... Tu sais, tu l'as déjà ta gloire : à chaque fois que je skie à Auron, je penses à toi !!! ;) ...qu'ils sont beau tes canons !!! ... :P
  25. Bred

    Remplacer blocs/entmake

    merci (gile), mais tu reposes la question de mon sujet dans ton lisp ... ... d'accord ton lisp permet d'éviter l'erreur, mais je cherchais en fait le moyen avec entmake de pouvoir insérer un bloc même si il n'est pas dans le dessin... (je le réussis en -vl, mais comme c'est la première fois que j'utilise entmake, je voulais savoir si il y avait une possibilité simple de palier à ce problème...) merci en tout cas de perdre du temp sur mes soucis...
×
×
  • 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é