Aller au contenu

Bred

Membres
  • Compteur de contenus

    2 764
  • Inscription

  • Dernière visite

Tout ce qui a été posté par Bred

  1. Bred

    [Résolu] Commande QSELECT

    Le lisp le demande : dans la macro bouton, ^C^Csel-txt suffit pour le lancer .... et différent de mais : oui, il faut changer le filtre du calque par celui de la couleur : c'est une commande différente que tu veux ou une option dans la commande précédente ?
  2. Bred

    [Résolu] Commande QSELECT

    non donc : 1-/ le lisp demande de selectionner un texte 2-/ puis demande de choisir entre l'option "Choix" ou "Total" : si "C" : on selectionne tout les texte (ou objet) que l'on désires : le programme triras pour ne laisser que les textes étant dans le même calque que le texte selectionné en 1/ si "T" : Tous les textes appartennant au calque dont le 1er texte à été selectionner sera selectionné.
  3. Bred

    [Résolu] Commande QSELECT

    Lisp : l'une de manière : (la + "simple" pour débuter) Tu copies le code dans un bloc note que tu nommes et enregistre comme tu veux en mettant comme extension .lsp Puis tu vas dans Autocad, tu va dans Outils / Charger une Application Dans la boite de dialogue tu as une valise : tu delectionne "contenu" ... et là tu vas chercher le fichier .lsp que tu as enregistrer precedement. Tu auras dorénavant une nouvelle commande dans autocad nommé "InsertBlocsel" (tape là au clavier) Le lisp sera alors charger à chaque démarage. Il y a d'autre manières.... Pour info, si tu veux raccourcir le nom de la commande au clavier tu met ce que tu veux comme commande à la place de "sel-txt" dans (defun c: [b] sel-txt[/b] (/ ALQ-TXT QUEST SELTX)............ (laisse le c: ) [Edité le 30/1/2007 par Bred]
  4. Bred

    [Résolu] Commande QSELECT

    En lisp : (pour les mtext) : (defun c:sel-txt (/ ALQ-TXT QUEST SELTX) (setq seltxt nil) (princ "\ Sélectionner le texte à Modifier :") (while (= seltxt nil) (setq seltxt (ssget "_:S:E" '((0 . "MTEXT"))))) (setq calq-txt (cdr (assoc 8 (entget (ssname seltxt 0))))) (initget "C T") (setq Quest (getkword "\n Choix ou Total (C / T)? ")) (if (equal Quest "C") (setq seltxt (ssget (list '(0 . "MTEXT")(cons 8 calq-txt)))) (setq seltxt (ssget "_X" (list '(0 . "MTEXT")(cons 8 calq-txt)))) ) (if (zerop (getvar "cmdactive"))(sssetfirst nil seltxt)) (if (> (sslength seltxt) 1) (princ_info (sslength seltxt) " Textes sélectionnés." "") (princ_info (sslength seltxt) " Texte sélectionné." "")) (prin1) ) ... l'adapter en script, je ne sais pas ....
  5. (atof (vl-string-subst "" (vl-string-right-trim "0123456789." a) a))
  6. Bred

    pb avec un lisp

    J'avoues avoir du mal à comprendre (c'est habituel chez moi :P ) : - Le cartouche est dans chaque vue, pas à l'exterieur ? - Pourquoi ne pas avoir 1 plan / présentation si c'est pour les ressortir tous séparé ? - Tu n'aurais pas une capture d'écran à mettre pour comprendre le principe ?
  7. Bred

    pb avec un lisp

    Si je comprends bien, tu veux imprimer une vue par tirage ?
  8. Bred

    pb avec un lisp

    Salut Que veux tu faire ?
  9. Salut, (vl-string-left-trim " T R F&R =" a) avec a : (setq a "T= 125.32") ou (setq a "F= 125.32") ou (setq a "F&R= 125.32") si tu veux transformer le string en chiffre : (atof (vl-string-left-trim " T R F&R =" a))
  10. Bred

    TwistAngle...

    Re, merci. faute de frappe : le type est vla-get-Active PViewport Je comprends, et j'essaye de le faire, d'éviter l'utilisation des "command", mais pourquoi éviter "getvar" ? --------------------------------------------- Codes modifié (sauf getvar) (defun c:frv (/ ACDOC CENTRE-FENETRE CUSTOM-SCALE ENT-FEN FENETRE HAUT LARG NEW-TARGET REPERE-FEN-ACTIVE TARGET TWIST-ANGLE VLA-FENETRE) (vl-load-com) (setq AcDoc (vla-get-ActiveDocument (vlax-get-acad-object))) (if (= (vla-get-ActiveSpace AcDoc) 1) (princ "\n ** Cette commande n'est valable que dans l'espace papier. **") (progn (if (= (vla-get-Mspace AcDoc) :vlax-false) (progn ; selectionner une fenêtre (while (not (and (setq fenetre (car (entsel "\n Sélectionner une fenêtre :"))) (or (equal (cdr (assoc 0 (entget fenetre))) "VIEWPORT") (equal (cdr (assoc 0 (entget (cdr (assoc 330 (entget fenetre)))))) "VIEWPORT"))))) (setq ent-fen (entget fenetre)) (if (not (equal (cdr (assoc 0 (entget fenetre))) "VIEWPORT")) (setq fenetre (cdr (assoc 330 (entget fenetre))))) (setq vla-fenetre (vlax-ename->vla-object fenetre)) (vla-put-Mspace AcDoc :vlax-true) (vla-put-ActivePViewport AcDoc vla-fenetre) ) (progn ; selection fenêtre active (setq vla-fenetre (vla-get-ActivePViewport AcDoc) repere-fen-active "OK") ) ) ;; Centre de la fenêtre dans le SCG (setq centre-fenetre (getvar "VIEWCTR")) (vla-put-Mspace AcDoc :vlax-false) (setq Haut (vla-get-Height vla-fenetre) Larg (vla-get-Width vla-fenetre) custom-scale (vla-get-CustomScale vla-fenetre) Twist-Angle (vla-get-TwistAngle vla-fenetre) Target (vlax-get vla-fenetre 'Target)) ;; Calcul de la nouvelle cible en fonction de la rotation (setq new-target (polar centre-fenetre (+ (angle centre-fenetre Target) (/ pi 2)) (distance centre-fenetre Target))) (vla-put-TwistAngle vla-fenetre (+ Twist-Angle (/ pi -2))) (vla-put-Target vla-fenetre (vlax-3d-point new-target)) (vla-put-Height vla-fenetre Larg) (vla-put-Width vla-fenetre Haut) (vla-put-CustomScale vla-fenetre custom-scale) (if (equal repere-fen-active "OK") (progn (vla-put-Mspace AcDoc :vlax-true) (vla-Regen acDoc acActiveViewport)) ) ) ) )
  11. Bred

    [Résolu] Commande QSELECT

    J'ai déjà cherché, jamais trouvé.... (ce qui ne veux pas dire que ça n'axiste pas... :P ) Mais dit nous ce que tu veux faire exactement, il y a d'autre possibilité !.... (tu es sous 2006, on peux y inclure des commandes lisp) [Edité le 30/1/2007 par Bred]
  12. Bred

    TwistAngle...

    Selon les conseils de (gile), j'ai modifié la routine en enlevant les "command".... Par contre, (vla-put-Mspace AcDoc :vlax-true) fonctionne dans cette routine étrangement avec les fenêtres rectangles : elle s'active bien, mais elle ne se "surligne" pas... (cela fonctionne en "direct" mais pas quand on fait fonctionner la routine .... :casstet: ) (defun c:rf (/ ACDOC CENTRE-FENETRE CUSTOM-SCALE ENT-FEN FENETRE HAUT ID_FENETRE LARG NEW-TARGET REPERE-FEN-ACTIVE TARGET TWIST-ANGLE VLA-FENETRE) (vl-load-com) (setq AcDoc (vla-get-ActiveDocument (vlax-get-acad-object))) (if (= (vla-get-ActiveSpace AcDoc) 1) (princ "\n ** Cette commande n'est valable que dans l'espace papier. **") (progn (if (= (vla-get-Mspace AcDoc) :vlax-false) (progn ; selectionner une fenêtre (while (not (and (setq fenetre (car (entsel "\n Sélectionner une fenêtre :"))) (or (equal (cdr (assoc 0 (entget fenetre))) "VIEWPORT") (equal (cdr (assoc 0 (entget (cdr (assoc 330 (entget fenetre)))))) "VIEWPORT"))))) (setq ent-fen (entget fenetre) id_fenetre (cdr (assoc 69 ent-fen))) (if (= id_fenetre nil) (progn (setq fenetre (cdr (assoc 330 ent-fen)) ent-fen (entget fenetre) id_fenetre (cdr (assoc 69 ent-fen))))) (vla-put-Mspace AcDoc :vlax-true) (setvar "CVPORT" id_fenetre) (setq vla-fenetre (vlax-ename->vla-object fenetre)) ) (progn ; selection fenêtre active (setq vla-fenetre (vla-get-ActivePViewport AcDoc) repere-fen-active "OK") )) ;; Centre de la fenêtre dans le SCG (setq centre-fenetre (getvar "VIEWCTR")) (vla-put-Mspace AcDoc :vlax-false) (setq Haut (vla-get-Height vla-fenetre) Larg (vla-get-Width vla-fenetre) custom-scale (vla-get-CustomScale vla-fenetre) Twist-Angle (vla-get-TwistAngle vla-fenetre) Target (vlax-get vla-fenetre 'Target)) ;; Calcul de la nouvelle cible en fonction de la rotation (setq new-target (polar centre-fenetre (+ (angle centre-fenetre Target) (/ pi 2)) (distance centre-fenetre Target))) (vla-put-TwistAngle vla-fenetre (+ Twist-Angle (/ pi -2))) (vla-put-Target vla-fenetre (vlax-3d-point new-target)) (vla-put-Height vla-fenetre Larg) (vla-put-Width vla-fenetre Haut) (vla-put-CustomScale vla-fenetre custom-scale) (if (equal repere-fen-active "OK") (vla-put-Mspace AcDoc :vlax-true) ) ) ) )
  13. Bred

    TwistAngle...

    Super ! encore un grand merci ! Je ne pense pas que ce soit utile : si l'on fait des fenêtres polygonales, c'est pour s'adapter au objets proches de la fenêtre. Donc je ne vois pas la raison de la faitre tourner (et si c'est une fenêtre cercle, la faire tourner serait pour le fun ... :P ) mais merci pour tes exemples, je me les notes !
  14. Bred

    TwistAngle...

    Salut, J'ai un peu remanier le code afin qu'il puisse accepter les "fenêtre polylignes" (que la vue sera retourner, pas la forme de la fenêtre), et qu'il accepte la rotation dans une fenêtre active. (defun c:rf (/ CENTRE-FENETRE CUSTOM-SCALE ENT-FEN FENETRE HAUT ID_FENETRE LARG NEW-TARGET TARGET TWIST-ANGLE VLA-FENETRE ID_FENETRE) (vl-load-com) (if (= (getvar "TILEMODE") 1) (princ "\n ** Cette commande n'est valable que dans l'espace papier. **") (progn (if (= (getvar "CVPORT") 1) (progn ; selectionner une fenêtre (while (not (and (setq fenetre (car (entsel "\n Sélectionner une fenêtre :"))) (or (equal (cdr (assoc 0 (entget fenetre))) "VIEWPORT") (equal (cdr (assoc 0 (entget (cdr (assoc 330 (entget fenetre)))))) "VIEWPORT"))))) (setq ent-fen (entget fenetre) id_fenetre (cdr (assoc 69 ent-fen)) repere-fen-active "NON") (if (= id_fenetre nil) (progn (setq fenetre (cdr (assoc 330 ent-fen)) ent-fen (entget fenetre) id_fenetre (cdr (assoc 69 ent-fen))))) (command "_.MSPACE") (setvar "CVPORT" id_fenetre) (setq vla-fenetre (vlax-ename->vla-object fenetre)) ) (progn ; selection fenêtre active (setq AcDoc (vla-get-ActiveDocument (vlax-get-acad-object)) vla-fenetre (vla-get-ActivePViewport AcDoc) repere-fen-active "OK") ) ) ; fin de choix fenêtre ;; Centre de la fenêtre dans le SCG (setq centre-fenetre (getvar "VIEWCTR")) (command "_.PSPACE") (setq Haut (vla-get-Height vla-fenetre) Larg (vla-get-Width vla-fenetre) custom-scale (vla-get-CustomScale vla-fenetre) Twist-Angle (vla-get-TwistAngle vla-fenetre) Target (vlax-get vla-fenetre 'Target) ) ;; Calcul de la nouvelle cible en fonction de la rotation (setq new-target (polar centre-fenetre (+ (angle centre-fenetre Target) (/ pi 2)) (distance centre-fenetre Target))) (vla-put-TwistAngle vla-fenetre (+ Twist-Angle (/ pi -2))) (vla-put-Target vla-fenetre (vlax-3d-point new-target)) (vla-put-Height vla-fenetre Larg) (vla-put-Width vla-fenetre Haut) (vla-put-CustomScale vla-fenetre custom-scale) (if (equal repere-fen-active "OK") (command "_.MSPACE") ) ) ) ) ... Par contre je n'ai pas (encore) trouvé le moyen de remplacer les (command "_.MSPACE") et (command "_.PSPACE") en vl....
  15. Je me permet d'expliquer ce que fait Tramber : le code 62 n'est pas présent si l'objet et en "blanc" (255 255 255), donc c'est pour ça qu'il faut tester d'abord sa présence avant d'essayer de la modifier, sinon tu la rajoutes.
  16. Merci à vous.... :D je pense qu'il serait bien de mettre ces différentes routines (exeptionnel) dans la Section "Routine LISP". Je laisse l'un de vous le faire !...
  17. Bred

    Impolies lignes

    Je ne sais pas si je comprends bien : Pour créer une polligne avec des droites/arc/.... j'utilise les options proposé par l'outils polyligne (par exemple "a" pour arc)
  18. Je viens de le faire, mais j'avoue ne pas encore être assez compétant pour pouvoir en ressortir les choses qui doivent m'intérrésser.... mais ressort-t'il les sous-répertoire des sous-répertoire ? Bonuscad : merci encore pour ta routine, mais elle ne répond pas à mon problème (j'ai l'impression après quelque tests) : elle ne ressort pas les sous-répertoire des sous-répertoire. (d'où ma question à Patrick_35).... et c'est aussi le problème que je rencontre.... Je cherche à scruter TOUT le disque.... merci. [Edité le 26/1/2007 par Bred]
  19. Bred

    Image de synthèse à la main!!

    La première fois que j'ai vu ça c'était à Bandol (83), vers la fin des années 80. J'en vois souvent dans la rue maintenant. C'est le même principe que l'aérographe, sauf que comme les motifs sont "simple" (rond....) la vitesse de réalisation est impressionnante. (il est vrais qu'ils n'ont pas beaucoup de variété dans leur style et leur représentation) Je ne sais plus quel en était l'auteur (je crois que c'était un Japonnais), mais les premiers dessin sur-réaliste qui m'ont vraiment impréssionné (fait à l'aéro) était des femmes Robots assez sexy... Trouvé : oeuvre de Hajime Sorayama http://www.leroi.org/Artistes/Hajime.Sorayama/Robots/page_01.php ... et c'est le même principe !!!.... mais en plus de temps !.... :exclam: http://www.leroi.org/Artistes/Hajime.Sorayama/Robots/hajime-chrome-woman.jpg [Edité le 26/1/2007 par Bred]
  20. A adapter au code précédent si besoin (les ; texte sont des commentaires que tu peux laisser) (defun c:[i]Nom_de_la_commande[/i] () ; remplacer par nom voulu (setvar "clayer" "0") ;calque (command "controle" "o") ;controler (repeat 4 (command "-purger" "TO" "*" "n")) ;purger 4 fois (command "_qsave") ;sauver (princ) ) ;fin Je te conseil de poster cette demande dans un message à part (un seul sujet par message -si on peut- ;) ) [Edité le 26/1/2007 par Bred]
  21. OK, je suis désolé, mais ce n'était vraiment pas dans mon idée lorque j'ai écris ce message. En fait au début je voulais le mettre en réponse au message explicatif sur la récursivité que nous à offert (gile). Puis pour éviter de polluer ce dernier je me suis dit qu'il valait mieux répondre dans un message à part. Mon Titre reprenant le pseudo (gile) n'avait pour but que de lui rendre une sorte d''hommage via son message pré-cité, comme je l'ai fait (en me trompant me semble t'il) pour Tramber, en le sitant dans une de mes réponse pour une macro-bouton. Donc, j'édite mon message afin de retirer son pseudo, et je lui demande de m'excuser car autant j'aprécie tout le travail qu'il nous offre, autant j'aprécie la manière dont il le fait. (et il y en a d'autre.)
  22. En effet... sauf que c'est pour un problème de récursivité, et comme (gile) est un champion (que je soupsonne passionné par la chose) je lui ai adressé par principe. Merci en tout cas de vos réponses.
  23. Ah... je viens de mettre le doigt sur ma bétise : je ne traite que le Sous premier répertoire et ses sous répertoires de mon groupe de répertoire !... donc, si le fichier n'est pas dedans, ça plante.... Je vais peut-être trouvé..... [Edité le 26/1/2007 par Bred]
  24. Salut, Pour répondre à ce message, je voulait en premier lieu créer une routine de recherche de fichier.... et bien sûr, vu que j'ai un arbre de répertoire, je me suis dit dans ma petite tête que le mieux serait d'utiliser une fonction récursive... :casstet: J'en ai fait une, elle fonctionne :D (j'en suis le premier éttonné).... presque !!! :mad: (ah... là, ça devient plus normal pour moi...)... le résultat est aléatoire, et je ne comprends pas pourquoi !!!! La commande de lancement : (defun c:chem-fich () (setq test-chem-fichier nil rep-Orig (getstring "\n Disque à Parcourir :") rep-Orig (strcat rep-Orig ":") nom-fichier (getstring "\n Nom du Fichier (avec ext) :")) (setq test-chem-fichier (findfile (strcat rep-Orig "\\" nom-fichier))) (setq list-rep-orig (vl-remove "." (vl-remove ".." (vl-directory-files (strcat rep-Orig "\\") nil -1)))) (setq rep (strcat rep-Orig "\\" (car list-rep-orig))) (while (>= (length list-rep-orig) 1) (setq fichier (cherche-fichier rep nom-fichier)) (if (> (length list-rep-orig) 1) (progn (setq list-rep-orig (vl-remove (car list-rep-orig) list-rep-orig) rep (strcat rep-Orig "\\" (car list-rep-orig)))) (setq list-rep-orig nil) ) ) (princ (strcat "\n Chemin Fichier : " fichier)) (princ) ) La routine récursive : (defun cherche-fichier (rep nom-fichier) (setq list-rep (vl-remove "." (vl-remove ".." (vl-directory-files (strcat rep "\\") nil -1)))) (While (and list-rep (not test-chem-fichier)) (setq test-chem-fichier (findfile (strcat rep "\\" nom-fichier))) (if (and (not test-chem-fichier) list-rep) (foreach n list-rep (if (not (equal (findfile (strcat rep "\\" n "\\" nom-fichier)) nil)) (setq test-chem-fichier (strcat rep "\\" n "\\" nom-fichier)))) ) (if (and (not test-chem-fichier) list-rep) (cherche-fichier (strcat rep "\\" (car list-rep)) nom-fichier) ) (if (and (not test-chem-fichier) (> (length list-rep) 1)) (setq list-rep (vl-remove (car list-rep) list-rep) rep (strcat rep "\\" (car list-rep))) (setq list-rep nil) ) ) test-chem-fichier ) J'était tellement content que ça marche.... dommage, là, je plante.... merci d'avance.... [Edité le 26/1/2007 par Bred]
  25. Salut et bienvenue, en lisp (defun c:coul-PB () (command "_-layer" "CO" "5" "PB-*" "") (princ) )
×
×
  • 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é