Aller au contenu

Bred

Membres
  • Compteur de contenus

    2 764
  • Inscription

  • Dernière visite

Tout ce qui a été posté par Bred

  1. oui.... Salut, Il faut rester réaliste.... faire du temps réel 3D en réaliste (ou autre style à calculer) fait partie d"une utopie que beaucoup de personnes ont du mal à comprendre.... Demander à une machine de calculer en temps réel un mouvement de texture (et je ne parle pas d'ombre) n'est pas réaliste, surtout pour les machines standart actuel, et encore plus pour Autocad avec son moteur 3D vieillissant.... Lorque l'on pense que pour faire une seconde de film 3D (dessin animée récent, effets spéciaux....) il faut à X serveurs X temps de calculs, vous comprendrez que vouloir faire "tourner" un solide en faisant calculer à l'ordi tous le paramètres utile en temps réel est impossible !!!! (... pour l'instant ?....)
  2. C'est S'là oui.... Corrigé.... Désolé .... :calim:
  3. Hop là ! Une sous-routine d'info que je n'ai pas mis... mais inutile. j'ai modifié les codes ci-dessus.
  4. Bred

    calques

    Salut, je n'ai pas de LT sous la main, mais l'option "Geler ou libérer dans la fenêtre courante" devrait te convenir, si j'ai bien compris... http://xs317.xs.to/xs317/07304/2007-07-26_150359.jpg
  5. Cela dépends de chacun : pour moi, j'ai commencé en ne savant rien, et en cherchant, et surtout en demandant de l'aide dans CADxp, j'en suis là....
  6. Bred

    Personnaliser les Onglets

    Salut, je ne pensais pas, mais j'ai eu un peu de mal (à cause de l'incrémentation négative). Fonctionne pour Niveau -999 à Niveau 999. commande : niv+ ou niv- ;;; incrémentation +/- "Niveau" onglet présentation (defun c:niv+ () (incremente-niv +)) (defun c:niv- () (incremente-niv -)) (defun incremente-niv (val / IND IND1 IND2 IND3 L NAME POS-IND) (if (= (getvar "CVPORT") 1) (progn (setq l (vla-get-layout (vla-get-PaperSpace (vla-get-ActiveDocument (vlax-get-acad-object)))) Name (vla-get-Name l) pos-ind (+ (vl-string-search "Niveau " Name) 7) ind1 (chr (vl-string-elt Name pos-ind)) ind2 (chr (vl-string-elt Name (1+ pos-ind))) ind3 (chr (vl-string-elt Name (+ pos-ind 2)))) (if (and (> (ascii ind1) 47)(< (ascii ind1) 58)) (setq ind (atoi (strcat ind1)))) (if (and (> (ascii ind2) 47)(< (ascii ind2) 58)) (setq ind (atoi (strcat ind1 ind2)))) (if (and (> (ascii ind3) 47)(< (ascii ind3) 58)) (setq ind (atoi (strcat ind1 ind2 ind3)))) (if (< ind 0) (progn (vla-put-Name l (vl-string-subst (strcat "Niveau " (rtos (val ind 1))) (strcat "Niveau " (rtos ind)) Name)) ) (progn (vla-put-Name l (vl-string-subst (strcat "Niveau " (rtos (val ind 1))) (strcat "Niveau " (rtos ind)) Name)) ) ) ) (princ "\n *** Fonction non Valable en Espace Objet ***") ) (princ) ) J'en ai profité pour faire la même chose pour l'indice : ind+ ou ind- ;;; incrémentation +/- indice onglet présentation (defun c:ind+ () (incremente-ind +)) (defun c:ind- () (incremente-ind -)) (defun incremente-ind (val / L NAME POS-IND) (if (= (getvar "CVPORT") 1) (progn (setq l (vla-get-layout (vla-get-PaperSpace (vla-get-ActiveDocument (vlax-get-acad-object)))) Name (vla-get-Name l) pos-ind (+ (vl-string-search "indice " Name) 7)) (vla-put-Name l (vl-string-subst (strcat "indice " (chr (val (vl-string-elt Name pos-ind) 1))) (strcat "indice " (chr (vl-string-elt Name pos-ind))) Name)) ) (princ "\n *** Fonction non Valable en Espace Objet ***") ) (princ) )
  7. Salut, à tester : ;;;;;;;;;;;;;;;;;;; ;;; Selectionne texte valeur numérique compris entre ... ;;; mais exclus valeur donné (defun c:selvaltxtex (/ I Q SEL SEL-T VAL VAL-MAXI VAL-MINI LST-VAL-EXCLU VAL-EXCLU) (princ "\n Sélection de Texte numérique par Fourchette de valeur.") (setq val-mini (getreal "\n Valeur minimum :") val-maxi (getreal "\n Valeur Maximum :") sel-T (ssadd) lst-val-exclu nil val-exclu 1) (while val-exclu (setq val-exclu (getreal "\n Valeur à exclure : < Q >")) (if val-exclu (setq lst-val-exclu (append (list val-exclu) lst-val-exclu))) ) (initget "S T") (setq Q (getkword "\n Sélection ou Tous (S/T) ? < S >")) (if (equal Q "T") (setq sel (ssget "_X" (list (cons 0 "TEXT,MTEXT")))) (setq sel (ssget (list (cons 0 "TEXT,MTEXT")))) ) (sssetfirst nil nil) (repeat (setq i (sslength sel)) (setq val (atof (cdr (assoc 1 (entget (ssname sel (setq i (1- i)))))))) (if (and (>= val val-mini) (<= val val-maxi) (not (member val lst-val-exclu))) (ssadd (ssname sel i) sel-T) ) ) (sssetfirst nil sel-T) (if (> (sslength sel-T) 1) (princ (strcat "\n"(rtos (sslength sel-T)) " Textes sélectionnés." "")) (princ (strcat "\n"(rtos (sslength sel-T)) " Texte sélectionné." ""))) (princ) ) Edit : hop là : le bbcode "< S >" me barrait le code.... [Edité le 26/7/2007 par Bred]
  8. merci ! :D ... c'est le détail qui tue !....
  9. Salut, (setq Tablier (ssget))
  10. Oui, mais j'apprends et j'essaye de faire le mieux possible... le plus "programmation".... Ci-dessous une commande pour ajouter une selection d'objet à un groupe. ;;; ajouter selection à un groupe (defun c:[b]ajoutagr[/b] (/ GROUPES I NOM-GROUPE SEL G) (setq nom-groupe nil) (while (not nom-groupe) (setq nom-groupe (Get-Nom-Groupe (car (entsel "\n Choix du Groupe :")))) ) (princ (strcat "\n Groupe " nom-groupe " sélectionné.")) (setq groupes (vla-get-groups (vla-get-activedocument (vlax-get-acad-object)))) (vlax-for n groupes (if (equal (vla-get-name n) nom-groupe) (progn (setq g n)(vla-Highlight g :vlax-false)))) (princ (strcat "\nChoix des Objets à rajouter au Groupe " nom-groupe)) (setq sel (ssget)) (vla-Highlight g :vlax-True) (repeat (setq i (sslength sel)) (vlax-invoke g 'AppendItems (list (vlax-ename->vla-object (ssname sel (setq i (1- i)))))) ) (princ (strcat "\n"(rtos (sslength sel)) " objet(s) ajouté au groupe " nom-groupe)) (princ) ) ; routine retournant le nom du groupe de l'objet sélectionné (defun Get-Nom-Groupe (sel / GR GROUPES LST LSTF NG VLA-SEL X) (if sel (progn (setq groupes (vla-get-groups (vla-get-activedocument (vlax-get-acad-object))) lstF nil) (vlax-for n groupes (setq ng (vla-get-name n) lst nil) (vlax-for i (vla-item groupes ng) (setq lst (cons i lst)) ) (setq lstF (append (list (cons ng lst)) lstF)) ) (setq vla-sel (vlax-ename->vla-object sel)) (repeat (setq x (length lstF)) (if (member vla-sel (nth (setq x (1- x)) lstF)) (setq gr (car (nth x lstF))) ) ) ) ) gr ) [Edité le 25/7/2007 par Bred]
  11. C'est ça, en effet, tu as compris... Mais savoir si c'est la bonne méhode, et la seule, j'avoues ne pas le savoir (mais on va vite l'apprendre : je vois quelqu'un qui est connecté qui va nous sauter dessus !) J'apprends aussi, je cherche... J'étais au début passé par les codes dxf, mais je trouvais le code trop long.... ... pour une fois que j'utilise (vlax-for .... Par contre tu pourrais chercher à ne pas passer pas (command "-GROUPE" ... pour ajouter ou retirer une entitée d'un groupe ....
  12. Salut, à tester : (defun c:selvaltxt (/ I Q SEL SEL-T VAL VAL-MAXI VAL-MINI) (princ "\n Sélection de Texte numérique par Fourchette de valeur.") (setq val-mini (getreal "\n Valeur minimum :") val-maxi (getreal "\n Valeur Maximum :") sel-T (ssadd)) (initget "S T") (setq Q (getkword "\n Sélection ou Tous (S/T) ? < S >")) (if (equal Q "T") (setq sel (ssget "_X" (list (cons 0 "TEXT,MTEXT")))) (setq sel (ssget (list (cons 0 "TEXT,MTEXT")))) ) (sssetfirst nil nil) (repeat (setq i (sslength sel)) (setq val (atof (cdr (assoc 1 (entget (ssname sel (setq i (1- i)))))))) (if (and (>= val val-mini) (<= val val-maxi)) (ssadd (ssname sel i) sel-T) ) ) (sssetfirst nil sel-T) (if (> (sslength sel-T) 1) (princ (strcat "\n"(rtos (sslength sel-T)) " Textes sélectionnés." "")) (princ (strcat "\n"(rtos (sslength sel-T)) " Texte sélectionné." ""))) (princ) ) [Edité le 26/7/2007 par Bred]
  13. Re, Si tu veux en faire une routine : (defun Get-Nom-Groupe (sel / GR GROUPES LST LSTF NG VLA-SEL X) ;;; listes (Groupes (objet1 objet2 ...)) (setq groupes (vla-get-groups (vla-get-activedocument (vlax-get-acad-object))) lstF nil) (vlax-for n groupes (setq ng (vla-get-name n) lst nil) (vlax-for i (vla-item groupes ng) (setq lst (cons i lst)) ) (setq lstF (append (list (cons ng lst)) lstF)) ) (setq vla-sel (vlax-ename->vla-object sel)) (repeat (setq x (length lstF)) (if (member vla-sel (nth (setq x (1- x)) lstF)) (setq gr (car (nth x lstF))) ) ) gr ) => (setq nom-groupe (Get-Nom-Groupe (car (entsel "\n Choix de l'objet :"))))
  14. Salut, je viens de faire ça, c'est pas parfait... à poffiner : (il doit y avoir plus simple...) (defun c:grob (/ GROUPES LST LSTF NG VLA-SEL X) ;;; listes (Groupes (objet1 objet2 ...)) (setq groupes (vla-get-groups (vla-get-activedocument (vlax-get-acad-object))) lstF nil) (vlax-for n groupes (setq ng (vla-get-name n) lst nil) (vlax-for i (vla-item groupes ng) (setq lst (cons i lst)) ) (setq lstF (append (list (cons ng lst)) lstF)) ) (setq vla-sel (vlax-ename->vla-object (car (entsel "\n Choix de l'objet :")))) (repeat (setq x (length lstF)) (if (member vla-sel (nth (setq x (1- x)) lstF)) (princ (strcat "\n Groupe : " (car (nth x lstF)))) ) ) (princ) )
  15. Bred

    Personnaliser les Onglets

    Re, à tester. "indice X" peut se trouver n'importe où dans le nom : (defun c:ind () (if (= (getvar "CVPORT") 1) (progn (setq l (vla-get-layout (vla-get-PaperSpace (vla-get-ActiveDocument (vlax-get-acad-object)))) Name (vla-get-Name l) pos-ind (+ (vl-string-search "indice " Name) 7)) (vla-put-Name l (vl-string-subst (strcat "indice " (chr (1+ (vl-string-elt Name pos-ind)))) (strcat "indice " (chr (vl-string-elt Name pos-ind))) Name)) ) (princ "\n *** Fonction non Valable en Espace Objet ***") ) (princ) )
  16. Bred

    ajouter des echelles

    Salut, Je n'utilise pas Covadis : ma réponse était dans le doute que gi² parlait de la difficulté de gérer une liste d'échelle Autocad sous 2008. Le lisp que je site permet de gérer cela (ce lisp est d'ailleur demandé par Pieroka, utilisateur de Covadis). ... Ceci pour cela .... j'Edit : Hop là, remarque croisé de Pieroka répondant à ta question... Qu'est ce qu'il est bien ce garçon ! [Edité le 25/7/2007 par Bred]
  17. Bred

    ajouter des echelles

    Salut, si c'est sous 2008, peut-être ceci te conviendrait....
  18. Bred

    Personnaliser les Onglets

    Re, Alors, déjà, voici pour l'indice : Comme je ne savais pas le niveau d'automatisme que tu voulais, j'ai fait le code de tel sorte qu'il faut que tu sois dans l'onglet dont tu veux modifier l'indice, tu lances la commande "ind", et l'indice doit s'incrémenter.... (defun c:ind () (if (= (getvar "CVPORT") 1) (progn (setq l (vla-get-layout (vla-get-PaperSpace (vla-get-ActiveDocument (vlax-get-acad-object))))) (vla-put-Name l (strcat (vl-string-right-trim (strcat "indice " (chr (vl-string-elt (vla-get-Name l) 26))) (vla-get-Name l)) " indice " (chr (1+ (vl-string-elt (vla-get-Name l) 26))))) ) (princ "\n *** Fonction non Valable en Espace Objet ***") ) (princ) ) Attention : n'est valable que pour les noms d'onglets que tu as donné (ou finissans par "indice X") Test le, si le procédé te va, on peux voir la suite... sinon dis le !
  19. Non... Au Pastis voyons ! (ça, y'en a !!!!)
  20. Salut, exemple en passant par les codes dxf, grâce à une routine récursive de Bonuscad : (xplore (car (entsel "\n Choix du Bloc :"))) ;;; Routine de Bonuscad (defun xplore (ent / l) (while ent (setq l (entget ent)) (if (eq (cdr (assoc 0 l)) "INSERT") (xplore (cdr (assoc -2 (tblsearch "BLOCK" (cdr (assoc 2 l))))) ) ) (if (eq (cdr (assoc 0 l)) "ATTDEF") (print (strcat "Etiquette = " (cdr (assoc 2 l)) " ; Valeur = " (cdr (assoc 1 l)))) ) (setq ent (entnext ent)) ) )
  21. Re, pour dessiner une polyligne (et pour d'autre chose équivalente), en autolisp il faut vérifier que l'on a toujours une commande active, et la "boucler" tant qu'on ne lui dit pas d'arrêter : (command "_.pline" (while (> (getvar "cmdactive") 0) (command pause) ) )
  22. Merci Patrick_35 ! la bière est dans le frigo... y'en a qu'une seule, alors dépeches-toi !!!.... .... trop tards !... ;)
  23. Bred

    Faire un rendu

    Salut et Bienvenue ! Tu n'as qu'à faire une impression en rendu (en pdf).
  24. Bred

    Personnaliser les Onglets

    Salut, modifier le nom d'onglet est possible, mais comment veut tu procéder ? Tu lancerais une commande qui chaque fois que tu la lancerais t'incrémenterais les noms de +1 ?
  25. Salut, Ne voudrais-tu pas plûtot le faire entièrement en lisp ? (parceque le mélange caractère spéciaux, diesel et lisp n'est pas mon fort....)
×
×
  • 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é