Aller au contenu

Matt666

Membres
  • Compteur de contenus

    736
  • Inscription

  • Dernière visite

  • Jours gagnés

    2

Tout ce qui a été posté par Matt666

  1. Salut ! Et si tu enregistres ton dessin sur l'espace objet et que tu le réouvres, ça donne quoi ?
  2. CHARGMNU...
  3. Tout à fait d'accord !
  4. Toujours pas... Peut-être que la demande n'est pas claire... Je vais essayer de la poster dans routines lisp... A bientot. Matt.
  5. Eh ben... J'aurais jamais été capable de faire de telles routines... Il va me falloir quelques temps pour les décortiquer !! Cool !! Merci à vous 4 ! A bientot. Matt.
  6. Impressionante de concision ta routine, Patrick_35 :D Bravo !! Il ne te manque pas gran chose... J'étais parti sur un (ascii) mais je vois que vous deux pas du tout... C'est vraime t très enrichissant ces challenges, merci encore !! Matt.
  7. Dément :D Chu content que ça réponde !! La vache... Faut savoir que j'ai pas réussi à faire cette fonction... Et là forcément les maîtres du lisp cadxpien (avec Bonuscad, bseb67 et Bred, et j'en oublie) arrivent et me pondent deux routines différentes !! Patrick_35, ta routine ne fonctionne pas avec les ponctuations, comme tu l'as remarqué.. Gile, c'est parfait :D Si on veut corser un peu le truc, ce serait ceci : "223 : Dites-donc, 2 réponses... & les ponctuations !!! 29 caractères ?" ->("223" " : Dites-donc, " 2 " réponses... & les ponctuations !!! " 29 " caractères ?") ;) Bon je sais c'est un peu nul... A bientot !! Matt... [Edité le 1/10/2007 par Matt666]
  8. On va considérer que les points entre deux nombres symbolisent des nombres décimaux. Si ce n'est pas le cas, c'est un caractère...
  9. Essaie le super auto script de Eric...
  10. Allez, il faut bien faire repartir ces challenges... :D Dites moi si c'est trop simple, ou si ça a déjà été tenté ! Personnellement c'est trop dur... on part d'une chaine de caractères avec chiffres et lettres, et la fonction retourne une liste avec chiffres et les lettres séparées... Ex : "qvf12qsdf125 5sf 56dfv2" -> ("qvf" 12 "qsdf" 125 " " 5 "sf " 56 "dfv" 2) Ex : "a1b2c3d4e5" -> ("a" 1 "b" 2 "c" 3 "d" 4 "e" 5) Ex : "12.52cm" -> (12.52 "cm") Voilà ! [Edité le 1/10/2007 par Matt666]
  11. Houlà... Une petite réinstall ?
  12. Matt666

    3Disparu

    Ca sent le malouin ça tiens !! :) Est-ce que tu as essayé de recharger tes menus ?
  13. Matt666

    Ligne brisée pour TN

    :thumbup: Ah oui c'est costaud là !!!
  14. Salut ! Petite question... Lorsqu'on créé une polyligne, au fur et à mesure des points ou des distances entrées, la commande ajoute un segment à la polyligne. Bon ça tout le monde le sait et/ou le comprend... Par contre, pour récupérer les propriétés des segments ajoutés, c'est autre chose... Si on essaie de récupérer les données pendant la commande, on peut essayer ça : (command "_.pline") (while (not (zerop (getvar "cmdactive"))) (setq ent (entlast)) (command pause) Le problème c'est qu'on ne peut rien récupérer à partir de cette entité dernièrement créée... si on essaie une entget au milieu de la commande, rien ne se passe... Mes question sont les suivantes : 1- Où sont stockées les propriétés de l'entité polyligne pendant sa création ? 2- Comment faire pour les récupérer ? Nota : On peut très bien le faire en VLISP (enfin je crois : vl-cmdf) mais si possible en autolisp.. Je sais pas trop si je suis clair... Enfin voilà ! Merci à ceux qui voudront bien me répondre... A bientot ! Matt. [Edité le 1/10/2007 par Matt666]
  15. Et bah ça marche pas fort cette suggestion.... :( personne ne se lance ? Ptet que ce message est posté au mauvais endroit...
  16. Matt666

    Attributs et champs

    Bing ! Bon cette fois, avec l'aide de (Gile) voici la routine que tu voulais : ;;; Génère automatiquement une liste des entités d'une des tables de la bd graphique. ;;; (LSTAB "layer") -> ("0" "structure") (defun LSTAB (TABL / LB X) (if (member (strcase tabl) '("APPID" "BLOCK" "DIMSTYLE" "LAYER" "LTYPE" "STYLE" "UCS" "VIEW" "VPORT") ) (progn (setq lb (cons (cdr (assoc 2 (tblnext tabl T))) lb)) (while (setq x (cdr (assoc 2 (tblnext tabl)))) (setq lb (cons x lb)) ) (if (/= (strcase tabl) "BLOCK") (setq lb (acad_strlsort lb)) lb ) ) ) ) (defun c:mbloc (/ cmdecho attreq ent tout s_set) (setq cmdecho (getvar "cmdecho") attreq (getvar "attreq") ) (setvar "cmdecho" 0) (setvar "attreq" 0) (command "_undo" "d") (setq ent (entlast)) (if (setq tout (vl-remove-if '(lambda (x) (eq (substr x 1 1) "*")) (lstab "block") )) (progn (foreach pt tout (command "-inserer" pt "0,0" "" "" "" "_explode" (setq bl (entlast)) ) (setq sset (ssget "P")) (entmake (list (cons 0 "TEXT") (cons 1 pt) (cons 10 (list -20 -10 0.00)) (cons 8 "0") (cons 40 5) ) ) (if (/= (entlast) ent bl)(ssadd (entlast) sset)) (command "-bloc" pt "o" "0,0,0" sset "") ) (princ (strcat "\n" (itoa (length tout)) " références de blocs modifiées." )) ) ) (command "_undo" "f") (setvar "attreq" attreq) (setvar "cmdecho" cmdecho) (princ) ) Tu vois, il suffit juste d'être patient ! Dis moi si ça fonctionne ! Je l'ai testée sur Acad2006. A bientot. Matt.
  17. Matt666

    SSADD

    Dément ça fonctionne !!! Merci (Gile) ! Pour voir la routine, faut aller là ! A bientot. matt.
  18. Matt666

    SSADD

    ok d'ac merci (Gile) ! Je vais plutôt prendre la première solution... La deuxième je crois que j'aurai du mal à la mettre en place (Seqend ???)... J'essaie ça au plus vite ! Merci encore.. Matt.
  19. Matt666

    SSADD

    Salut à tous ! J'ai une rpoblème dans une routine développée dans ce post... Le problème, c'est que la fonction SSADD n'ajoute pas la nouvelle entité à la sélection mais remplace tout pas la nouvelle entité !!! Je ne comprends pas du tout... J'ai bien cherché sur internet, et tout le monde fait comme ça.. ;;; Génère automatiquement une liste des entités d'une des tables de la bd graphique. ;;; (LSTAB "layer") -> ("0" "structure") (defun LSTAB (TABL / LB X) (if (member (strcase tabl) '("APPID" "BLOCK" "DIMSTYLE" "LAYER" "LTYPE" "STYLE" "UCS" "VIEW" "VPORT" ) ) (progn (setq lb (cons (cdr (assoc 2 (tblnext tabl T))) lb)) (while (setq x (cdr (assoc 2 (tblnext tabl)))) (setq lb (cons x lb)) ) (if (/= (strcase tabl) "BLOCK") (setq lb (acad_strlsort lb)) lb ) ) ) ) ;;; Ajoute un texte avec comme valeur le nom du bloc ;;; à chaque référence de bloc présente dans le dessin (defun c:mbloc (/ cmdecho attreq ent tout s_set) (setq cmdecho (getvar "cmdecho") attreq (getvar "attreq") ) (setvar "cmdecho" 0) (setvar "attreq" 0) (command "_undo" "d") (setq ent (entlast)) (if (setq tout (vl-remove-if '(lambda (x) (eq (substr x 1 1) "*")) (lstab "block") ) ) (progn (foreach pt tout [b](setq s_set (ssadd)[/b] elts (cdr (assoc -2 (tblsearch "block" pt))) ) (while elts [b](ssadd elts s_set)[/b] (setq elts (entnext elts)) ) (entmake (list (cons 0 "TEXT") (cons 1 pt) (cons 10 (list -0.20 -0.10 0.00)) (cons 8 "0") (cons 40 0.05) ) ) (if (/= (entlast) ent) [b](ssadd (entlast) s_set)[/b] ) (command "-bloc" pt "o" "0,0,0" s_set "") ) (princ (strcat "\n" (itoa (length tout)) " références de blocs modifiées." ) ) ) ) (command "_undo" "f") (setvar "attreq" attreq) (setvar "cmdecho" cmdecho) (princ) ) Si qqn pouvait m'aider, ça m'arrangerait fortement ! Merci d'avance ! A bientot. Matt. [Edité le 29/9/2007 par Matt666]
  20. Tu te répètes, Patrick_35 :cool: hehe
  21. Matt666

    Attributs et champs

    essaie ça pour voir... Ça fonctionne sur BricsCAD, je sais pas si c bon sur AutoCAD... ;;; Génère automatiquement une liste des entités d'une des tables de la bd graphique. ;;; (LSTAB "layer") -> ("0" "structure") (defun LSTAB ( TABL / LB X ) (if (member (strcase tabl) '("APPID" "BLOCK" "DIMSTYLE" "LAYER" "LTYPE" "STYLE" "UCS" "VIEW" "VPORT") ) (progn (setq lb (cons (cdr (assoc 2 (tblnext tabl T))) lb)) (while (setq x (cdr (assoc 2 (tblnext tabl)))) (setq lb (cons x lb)) ) (if (/= (strcase tabl) "BLOCK") (setq lb (acad_strlsort lb)) lb ) ) ) ) (defun c:mbloc (/ cmdecho attreq ent tout s_set) (setq cmdecho (getvar "cmdecho") attreq (getvar "attreq") ) (setvar "cmdecho" 0) (setvar "attreq" 0) (command "_undo" "d") (setq ent (entlast)) (if (setq tout (vl-remove-if '(lambda (x) (eq (substr x 1 1) "*")) (lstab "block") ) ) (progn (foreach pt tout (setq s_set (ssadd) elts (cdr (assoc -2 (tblsearch "block" pt))) ) (while elts (ssadd elts s_set) (setq elts (entnext elts)) ) (entmake (list (cons 0 "TEXT") (cons 1 pt) (cons 10 (list -0.20 -0.10 0.00)) (cons 8 "0") (cons 40 0.05) ) ) (if (/= (entlast) ent) (ssadd (entlast) s_set) ) (command "-bloc" pt "o" "0,0,0" s_set "") ) (princ (strcat "\n" (itoa (length tout)) " références de blocs modifiées." ) ) ) ) (command "_undo" "f") (setvar "attreq" attreq) (setvar "cmdecho" cmdecho) (princ) ) Tu tapes MBLOC et tu vois ce que ça donne... Niveau de la hauteur du texte, c'est en mm... A bientot ! Matt. [Edité le 29/9/2007 par Matt666]
  22. Matt666

    Attributs et champs

    Le pb de le faire en auto, via le lisp, c'est qu'il faut un point d'insertion du texte... Dans tes 400 blocs, y a t'il un point récurrent... Genre le pt zéro !! Comprends bien : je suppose que tous tes blocs sont différents. Le bloc 1 est un profil U, et le bloc 2 un profil rond. A partir de là où veux-tu mettre tes textes reprenant le nom du bloc ?? Autre chose : 400 blocs, ou 400 références de blocs ??? Je ne comprends pas ce que tu veux dire, désolé... On va y arriver !! :)
  23. Matt666

    Attributs et champs

    C'est quoi ? Ta bib de profils, c'est un bloc par dessin, ou tous les blocs dans un seul ? Je pense toujours que Tu n'as pas besoin d'attributs !! Insère un texte plutôt, avec le nom du bloc comme valeur, c'est tout !! A moins que tu veuilles que l'attribut soit invisible... Ca veut dire que ta bib c'est un seul fichier avec tous tes blocs dedans ? C'est ente autre le but du lisp, avec le gain de temps !! :cool: Référence du profil = A l'os = Nom du bloc ??
  24. Matt666

    Attributs et champs

    Euh... Hein ?? :o Tu as un bloc. Tu redéfinis le bloc en ajoutant un attribut nommé EffectiveName. Et après tu voudrais que cet attribut affiche le nom du bloc que tu viens de redéfinir ?? C'est ça ??? C'est un peu bizarre, quand même !!! Je comprends pas du tout là... Tu veux dire cette fonction VLISP (vla-get-EffectiveName obj) ? C'est totalement logique... Un attribut ne peut pas retrouver le nom du bloc dans lequel il est... Et puis de toute façon ça ne sert à rien !! Si tu redéfinis ton bloc en insérant un texte avec comme valeur le nom de ton bloc, c bon !!! Pourquoi mettre un attribut alors qu'il ne changera jamais !!! comprends vraiment pas :(
  25. C'est peut-être qu'il manque un point entre test et dwg ??
×
×
  • 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é