Matt666
Membres-
Compteur de contenus
736 -
Inscription
-
Dernière visite
-
Jours gagnés
2
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par Matt666
-
ouverture de fichier dwg en espace papier
Matt666 a répondu à un(e) sujet de sotar dans AutoCAD Architecture
Salut ! Et si tu enregistres ton dessin sur l'espace objet et que tu le réouvres, ça donne quoi ? -
CHARGMNU...
-
Tout à fait d'accord !
-
Toujours pas... Peut-être que la demande n'est pas claire... Je vais essayer de la poster dans routines lisp... A bientot. Matt.
-
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.
-
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.
-
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]
-
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...
-
Changer la couleur d\'un calque sur 500 fichiers
Matt666 a répondu à un(e) sujet de GOBU dans AutoCAD 2005
Essaie le super auto script de Eric... -
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]
-
au secours erreur interne autocad sous r14
Matt666 a répondu à un(e) sujet de krisluc dans AutoCAD R12, R13, R14
Houlà... Une petite réinstall ? -
Ca sent le malouin ça tiens !! :) Est-ce que tu as essayé de recharger tes menus ?
-
:thumbup: Ah oui c'est costaud là !!!
-
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]
-
Et bah ça marche pas fort cette suggestion.... :( personne ne se lance ? Ptet que ce message est posté au mauvais endroit...
-
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.
-
Dément ça fonctionne !!! Merci (Gile) ! Pour voir la routine, faut aller là ! A bientot. matt.
-
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.
-
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]
-
comment supprimer l attribut d un bloc ?
Matt666 a répondu à un(e) sujet de kenny31 dans AutoCAD LT 2007
Tu te répètes, Patrick_35 :cool: hehe -
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]
-
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 !! :)
-
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 ??
-
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 :(
-
(command \"_open\" \"c:\\\\test.dwg\")
Matt666 a répondu à un(e) sujet de l56 dans Pour aller plus loin en LISP
C'est peut-être qu'il manque un point entre test et dwg ??
