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
-
Bon alors pour que ça fonctionne chez toi, il faut changer tous les PDFCreator prséents dans le code pour mettre le nom de l'imprimante pdf que tu peux lire dans autocad.... C'est clair !!! Pierre Mendès France.... Mon frère y était !! Dans quelle section ? Oui Guichen je connais bien !! Dément !! C'est rigolo... C'est la zone de St Grégoire, plutot, PMF, nan ? C'est là qu'on trouve la Biocoop, Miam !! J'y vais cet après midi :) .... A bientot ! Matt.
-
Houlàlà mais qu'est ce que c'est que ça !!!! C'est normal que ça ne marche pas !! Le nom de l'imprimante de PDFCreator, c'est PDFCreator.... A la limite regarde le lien que j'ai donné au tout début, ya la dernière version de PDFCreator en téléchargement... Ptet... Enfin bon là n'est pas le but... Le bur est juste de répondre à la question, c'est tout... Merci Lili ! Adtal comme on dit par chez nous (Rennes)... Matt.
-
Liste de fonctions d\'un lisp
Matt666 a répondu à un(e) sujet de vinz34 dans Pour aller plus loin en LISP
Bon bah voilà, c'est bon pour moi !!! Enfin !!! Routine : F1 -> | F2 -> etc... Cool ! Gile, ça a l'air pas mal du tout ton pti truc là !! -
Liste de fonctions d\'un lisp
Matt666 a répondu à un(e) sujet de vinz34 dans Pour aller plus loin en LISP
Tiens !! Bon j'ai remis les variables, et changé les slash de sens, pour voir... Tu es sur quelle version ? A demain ! -
Ouf ! Voilà, je suis sous autocad 2008, et j'ai réparé les routines.... J'édite le post avec le 1er code. Bah ya pas beaucoup de monde aussi curieux et motivé que toi, mon cher ;) Voilà ! A bientot. Matt
-
Liste de fonctions d\'un lisp
Matt666 a répondu à un(e) sujet de vinz34 dans Pour aller plus loin en LISP
Bon ça y est j'ai refais et TESTE SUR AUTOCAD !! Dedieu... La routine fonctionne sur Autocad 2008... Je change la routine plus haut. -
Liste de fonctions d\'un lisp
Matt666 a répondu à un(e) sujet de vinz34 dans Pour aller plus loin en LISP
Bon vu que j'ai pas autocad, je marche un peu à l'aveuglette... J'ai oublié de joindre une fonction à la routine, c'est normal que ça ne fonctionne pas !!! J'ai amélioré un peu la routine... Voir le post concerné un peu plus haut... J'ai modifié le post en conséquence. Au fait j'ai zappé de le mettre dans le premier post, mais je me suis basé sur le code de bseb67 pour faire cette routine... Merci à toi mecton !! ;) A bientot. Matt. [Edité le 23/11/2007 par Matt666] -
Ah bah mais c'est ça que je fais aussi !!! J'avais pas vu la dernière version... Ma routine fonctionne avec SSM, qui retourne une sélection filtrée sur toutes les entités de la base graphique... Je trouvais ça dommage, et j'ai intégré un bouton pour réduire la sélection des objets à filtrer... Mais tu l'as fait avec SSMM... Il pense à tout ce Gile !!
-
Liste de fonctions d\'un lisp
Matt666 a répondu à un(e) sujet de vinz34 dans Pour aller plus loin en LISP
Oui c'est ce que la routine fait... Pour tout te dire, je n'ai pas regardé ta routine :( Désolé... Mais c'est une sacré bonne idée, je trouve ! Je vais l'essayer... A bientot. Matt. -
Bon... J'ai bien l'impression qu'il va falloir me mettre sur AutoCAD... Grmbl... Je fais ça chez moi cet après midi ou ce WE ! Encore désolé pour tout ça... A bientot ! Matt.
-
Liste de fonctions d\'un lisp
Matt666 a répondu à un(e) sujet de vinz34 dans Pour aller plus loin en LISP
Aaaaaaahhh J'arrive trop tard !!!! Il est rapide ce bonuscad.... Je présente quand même ma routine, pas trop trop testée... ;;; STR2LST ;;; Retourne une liste à partir d'une chaîne de caractères concaténée avec un caratère de séparation ;;; str = Chaîne de caractères ;;; sep = caractère de séparation ;;; ;;; (str2lst "0,1,,,,2,3,4,5,6,7,8,9" ",") -> (0 1 "" "" "" 2 3 4 5 6 7 8 9) ;;; (str2lst "0,1,2,3,4,5,6,7,8,9" "" ) -> ("0" "," "1" "," "2" "," "3" "," "4" "," "5" "," "6" "," "7" "," "8" "," "9") (defun str2lst (str sep / pos) (if (setq pos (vl-string-position (ascii sep) str)) (cons (substr str 1 pos) (str2lst (substr str (+ (strlen sep) pos 1)) sep) ) (list str) ) ) (defun c:flst (/ tmp lst str ouv ch cn) (if (setq ch (getfiled "Sélectionner un fichier lisp" "c:\\program files\\" "lsp" 4 ) ) (progn (setq ouv (open ch "r")) (while (setq str (read-line ouv)) (if (setq pos (vl-string-search "(defun" str nil)) (progn (setq str (substr str (+ pos 8)) rou (strcat "\nRoutine : " (substr str 1 (setq pos (vl-string-search " (" str nil)) ) "\t" ) str (substr str (+ pos 3)) ) (if (setq pos (vl-string-search "/" str nil)) (progn (setq cn 0 str (substr str 1 pos) tmp "" ) (if (and (/= str " ") (/= str "")) (progn (if (eq (length (setq lst (str2lst str " "))) 1) (setq tmp (strcat " F1 -> " str " | ")) (progn (foreach pt lst (if (and (/= pt nil) (/= pt "") ) (setq tmp (strcat tmp " F" (itoa (setq cn (1+ cn))) " -> " pt " | " ) ) ) ) ) ) (if (/= tmp "") (setq tmp (strcat rou (substr tmp 1 (- (strlen tmp) 3)) ) ) (setq tmp rou) ) (princ tmp) ) (progn (setq tmp rou) (princ tmp) ) ) ) (if (setq pos (vl-string-search ")" str nil)) (progn (setq cn 0 str (substr str 1 pos) tmp "" ) (if (and (/= str " ") (/= str "")) (progn (if (eq (length (setq lst (str2lst str " "))) 1) (setq tmp (strcat " F1 -> " str " | ")) (progn (foreach pt lst (if (/= pt "") (setq tmp (strcat tmp " F" (itoa (setq cn (1+ cn))) " -> " pt " | " ) ) ) ) ) ) (if (/= tmp "") (setq tmp (strcat rou (substr tmp 1 (- (strlen tmp) 3)) ) ) ) (princ tmp) ) (progn (setq tmp rou) (princ tmp) ) ) ) ) ) ) ) ) (close ouv) ) ) (princ) ) Bravo a toi bonusCAD, encore une fois :) A bientot. Matt. EDIT : Ajout de la fonction STR2LST que j'avais honteusement oublié, et amélioration de la routine. [Edité le 23/11/2007 par Matt666] EDIT2 : Fonction réajustée et qui tourne sur AutoCAD 2008... [Edité le 23/11/2007 par Matt666] -
N'oublie pas que les espaces dans ta macro comptent comme un entrée dans autocad, au même titre que les points-virgule... Tu as trop d'actions dans ta macro... Regarde la commande... Elle a un "-" avant son nom... Ensuite pour purger TOUT, il faut regarder les options de la commande... Les lettres en MAJUSCULE servent à montrer les lettres à entrer dans la ligne de commande pour appeler la fonction... Voilà. Essaie de refaire ta commande avec ces infos, pour voir...
-
Salut Gile ! J'ai fait une petite modif sur ton lisp SSMATCH, et vu que la trouve assez pratique, je t'en fais part... Je ne sais pas si tu l'as déjà fait, et si ça se trouve, tu vas rire !! Il s'agit de filtrer la sélection après avoir sélectionne l'objet source... J'ai ajouté un bouton ">> Filtrer sur sélection >> " dans ta boite de dialogue ssmatch_box: dialog { label = "Propriétés" ; spacer ; [b] [i] : button {label = " >> Filtrer sur sélection >> " ; key = "selection" ;}[/i][/b] : boxed_row { : column { : toggle {label = "Type d'entité" ; key = "ent" ; value = "1" ; fixed_width = true ; allow_accept = true ; } spacer ; : toggle {label = "Couleur" ; key = "col" ; value = "1" ; fixed_width = true ; allow_accept = true ; } spacer ; : toggle {label = "Calque" ; key = "lay" ; value = "1" ; fixed_width = true ; allow_accept = true ; } spacer ; : toggle {label = "Type de ligne" ; key = "typ" ; value = "1" ; fixed_width = true ; allow_accept = true ; } spacer ; : toggle {label = "Epaisseur de ligne" ; key = "wid" ; value = "1" ; fixed_width = true ; allow_accept = true ; } spacer ; } : column { : text {key = "e_ent" ; width = 15 ; } spacer ; : row { : image {key = "e_col" ; height = 1 ; width = 1 ; } : text {key = "t_col" ; width = 10 ; } } spacer ; : text {key = "e_lay" ; width = 15 ; } spacer ; : text {key = "e_typ" ; width = 15 ; } spacer ; : text {key = "e_wid" ; width = 15 ; } spacer ; } } ok_cancel ; spacer ; } Et intégré les conséquences de ce bouton dans ton lisp : ;; SSM -Gilles Chanteau- 19/04/07 ;; Sélectionne tous les objets ayant les mêmes propriétés que celles de l'objet sélectionné ;; et qui sont cochées dans la boite de dialogue. ;; Boite de dialogue (defun ssmatch_box (ent / elst col lst dis dcl_id w h) (setq elst (entget ent) col (cond ((assoc 420 elst))((assoc 62 elst))('(62 . 256))) lst (list (assoc 0 elst) col (assoc 8 elst) (cond ((assoc 6 elst)) ('(6 . "BYLAYER"))) (cond ((assoc 370 elst)) ('(370 . -1)))) col (cdr col) dis (cond ((cdr (assoc 62 elst))) ((cdr (assoc 62 (tblsearch "LAYER" (cdr (assoc 8 elst))))))) dcl_id (load_dialog "Bonus/Bonus.dcl") loop 2 ) (while (> loop 1) (if (not (new_dialog "ssmatch_box" dcl_id)) (exit)) (setq w (dimx_tile "e_col") h (dimy_tile "e_col")) (start_image "e_col") (fill_image 0 0 w h dis) (end_image) (set_tile "e_ent" (cdr (assoc 0 elst))) (set_tile "t_col" (cond ((= col 256) "DuCalque") ((= col 0) "DuBloc") ((< 256 col) (strcat (itoa (lsh col -16)) "," (itoa (lsh (lsh col 16) -24)) "," (itoa (lsh (lsh col 24) -24)) ) ) ((itoa col)) ) ) (set_tile "e_lay" (cdr (assoc 8 elst))) (set_tile "e_typ" (cond ((or (null (cdr (assoc 6 elst))) (= (strcase (cdr (assoc 6 elst))) "BYLAYER")) "DuCalque") ((= (strcase (cdr (assoc 6 lst))) "BYBLOCK")"DuBloc")((cdr (assoc 6 lst))) ) ) (set_tile "e_wid" (cond ((null (cdr (assoc 370 elst))) "DuCalque") ((= -1 (cdr (assoc 370 elst))) "DuCalque") ((= -2 (cdr (assoc 370 elst))) "DuBlock") ((= -3 (cdr (assoc 370 elst))) "Défaut") ((rtos (/ (cdr (assoc 370 elst)) 100.0) 2 2)) ) ) [i] [b](action_tile "selection" "(done_dialog 4)")[/b][/i] (action_tile "accept" "(or (= \"1\" (get_tile \"ent\")) (setq lst (remove (assoc 0 lst) lst)) ) (or (= \"1\" (get_tile \"col\")) (setq lst (remove (assoc 420 lst) (remove (assoc 62 lst) lst))) ) (or(= \"1\" (get_tile \"lay\")) (setq lst (remove (assoc 8 lst) lst)) ) (or(= \"1\" (get_tile \"typ\")) (setq lst (remove (assoc 6 lst) lst)) ) (or(= \"1\" (get_tile \"wid\")) (setq lst (remove (assoc 370 lst) lst)) ) (done_dialog 0)" ) (action_tile "cancel" "(setq lst nil)") [b] [i](setq loop (start_dialog)) (cond ((eq loop 4) (setq sel (ssget)) ) )[/i][/b] ) (unload_dialog dcl_id) lst ) ;; Fonction d'appel (defun c:ssm (/ ss ent lst) (and (or (and (setq ss (cadr (ssgetfirst))) (= 1 (sslength ss)) (setq ent (ssname ss 0)) ) (and (sssetfirst nil nil) (setq ent (car (entsel "\nSélectionner une entité : "))) ) ) (setq lst (ssmatch_box ent)) (princ lst) (if sel [i][b](progn (repeat (setq n (sslength sel)) (setq ent (entget (ssname sel (setq n (1- n)))) cn 0) (foreach pt lst (if (member pt ent) (setq cn (1+ cn))) ) (if (/= cn (length lst)) (setq sel (ssdel (cdr (assoc -1 ent)) sel)) ) ) (sssetfirst nil sel) )[/b][/i] (sssetfirst nil (ssget "_X" lst)) ) ) (princ) ) Voilà ! Si ça peut te donner des idées.. ;) A bientot ! Matt. [Edité le 22/11/2007 par Matt666]
-
Ct déjà fait Si on clique sur les flèches de vues à gauche (fenêtre vue) pour passer l'objet en 2D, les liens restent grisés. Par contre si on clique sur la visualisation 3d à droite, elle pase en 2d, et là les liens apparaissent. Voilà. Est-ce un bug ? Sinon quand je tente d'exporter l'objet en cliquant sur le lien 2d, il me met un message d'erreur... Tout ce qui est dit dedans, je l'ai essayé... A bientot. Matt.
-
J'ai changé le chemin des fichiers temporaires, et aussi les autres chemins qui étaient vides... Chemin des données et extended converter. A présent je ne peux plus ouvrir ton soft, parce qu'il met un msg d'erreur Après désinstallation, tout est revenu comme au début, et j'ai juste changé le répertoire temporaire. Par contre petit problème : je voyais pas trop la diff entre accepter et sauver dans la fenêtre de config... Ptet plutot mettre ok et appliquer... Nan ? D'ailleurs lorsqu'on clique sur accepter, et qu'on ferme le soft, le chemin n'est plus enregistrer. Il faut donc cliquer sur sauver puis sur accepter.... Donc petite amélio po male : quand on clique sur accepter, il sauve en même temps !! Voilà. Sinon la visualisation fonctionne bien. Maintenant j'aimerais bien insérer ces visualisations, mais là je peux pas !! je suppose qu'il faut cliquer sur l'un des liens Envoyer 2D ou envoyer 3D, ou alors enregistrer en cliquant sur sauver fichier, mais ces trois liens sont grisés.. Voilà ! A bientot.
-
Salut ! Je vais essayer ton soft... Et puis t'inquiète, Lili2006 va pas tarder à voir ton post !!! Et là, attention à tes fesses !! :D LE testeur de ce forum.... Bon perso j'utilise une moteur Intellicad (BricsCAD..), et j'ai cru comprendre qu'il fallait Dconvert. J'ai supposé qu'il fallait aller dans les paramètres, mais ça n'a pas l'air de fonctionner... Il me met ce message d'erreur : Une fois téléchargé, on en fait quoi de ce truc ??? Et puis ça sert à quoi, concrètement ? Voilà, je suis arrivé là... A bientot ! Matt. ;) [Edité le 22/11/2007 par Matt666]
-
Ah oui forcément... AutoCAD ne connait pas la commande "tracer" !!! Grmbl... Après qq recherches, il faut donc faire la commande "-traceur" sur AutoCAD. Extrait de l'aide : Donc si tu es d'accord avec ça, il faut modifier les codes (parce qu'il y en a deux !! une qui n'imprime que les présentations sur l'imprimante virtuelle PDFCreator, et une autre (la dernière) qui force toutes les présentations sur l'imprimante PDFCreator) : ;;;Permière routine TTR1, qui n'imprime que les présentations sur PDFCreator (defun c:ttr1 () (foreach pt (vl-remove-if-not '(lambda (x) (= (car x) 350)) (dictsearch (namedobjdict) "ACAD_LAYOUT")) (cond ((and (/= "MODEL" (cdr (assoc 1 (entget (cdr pt))))) (eq "PDFCreator" (cdr (assoc 2 (entget (cdr pt))))) ) (command "-traceur" "N" (cdr (assoc 1 (entget (cdr pt)))) "" "" "" "" "O" ) ) ) ) (princ) ) ;;; ;;;Deuxième routine TTR2, qui force toutes les présentaitons à être imprimées sur PDFCreator (defun c:ttr2 () (foreach pt (vl-remove-if-not '(lambda (x) (= (car x) 350)) (dictsearch (namedobjdict) "ACAD_LAYOUT")) (cond ((/= "MODEL" (cdr (assoc 1 (entget (cdr pt))))) (command "-traceur" "N" (cdr (assoc 1 (entget (cdr pt)))) "" "" "PDFCreator" "" "O" ) ) ) ) ) Voilà, j'espère que là, ça va marcher !!! Désolé pour tout ça... ils pourraient se mettre d'accord pour avoir les mêmes noms de commande !! :mad: A bientot ! Matt. [Edité le 22/11/2007 par Matt666]
-
Alors : Si tu regardes d'un peu près le résultat de la fonction, tu peux voir toutes tes présentations... (3 . "Format Libre")(3 . "A3 H-Cartouche")(3 . "Model")(3 . "Sommaire Carnet A3") En fait le pb ne vient pas de là, vu que l'espace objet se nomme en réalité "MODEL" dans le système. Oups, pardon !! Il faut le taper avec les parenthèses... (layoutlist) Exactement. il faut d'abord préparer ses présentations en passant par PDF creator, puis utiliser ce bout de code. La routine imprime seulement les présentations utilisant PDFCreator... Donc tu voudrais imprimer toutes tes présentations avec PDFCreator... Le fait est que BricsCAD, changer d'imprimante décale la feuille et rend la présentation in-imprimable... Il faut déplacer tous les éléments de la présentation pour rendre l'impression moins hasardeuse... Relou ça, d'ailleurs ! Par contre peut-être que sur AutoCAD, ce serait possible. On va essayer, à la limite... Essaie ça, pour voir.. (defun c:ttr () (foreach pt (vl-remove-if-not '(lambda (x) (= (car x) 350)) (dictsearch (namedobjdict) "ACAD_LAYOUT")) (cond ((/= "MODEL" (cdr (assoc 1 (entget (cdr pt))))) (command "tracer" "N" (cdr (assoc 1 (entget (cdr pt)))) "" "" "PDFCreator" "" "O" ) ) ) ) ) Dis moi si ça fonctionne !! A la limite, ensuite on pourra demander à l'utilisateur s'il souhaite, pour chaque présentation, l'imprimer ou pas.... Voilà ! A bientot. Matt.
-
Euh oui j'ai une idée !! ;) Sur BricsCAD, l'espace objet se nomme "MODEL". Sur AutoCAD, d'après mes souvenirs, c'est différent !! Peux-tu, s'il te plait, et parce que je n'ai pas autoCAD sous la main, me montrer le résultat du code ci-dessous : (dictsearch (namedobjdict) "ACAD_LAYOUT") ou Layoutlist Il permet de retourner toutes les présentations diponibles dans le dessin courant.. Sinon, un aut' truc important, si tu n'as pas PDFcreator installé ou si aucune de tes présentations n'utilise cet utilitaire, rien ne se passera... Rappel du but du post : Voilà ! A bientot, et merci pour tes tests ! Matt. [Edité le 21/11/2007 par Matt666]
-
Par contre il peut y avoir plusieurs points sur cette polyligne... Si elle n'est pas linéaire en Z... C'est vrai que c'est un bon challenge !
-
Sinon j'ai fait un truc en autolisp, non testé sur AutoCAD... ;;;Imprime uniquement les présentations paramétrées sur PDFCreator (defun c:ttr (/ cmdecho lst lyt n) (setq n 0 cmdecho (getvar "cmdecho")) (setvar "cmdecho" 0) (foreach pt (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 350)) (dictsearch (namedobjdict) "ACAD_LAYOUT") ) ) (if (< 1 (length (setq lst (vl-remove-if-not '(lambda (x) (= (car x) 1)) (entget pt) ) ) ) ) (setq lyt (cdr (last lst))) (setq lyt (cdar lst)) ) (cond ((and (/= "MODEL" (cdr (assoc 1 (entget pt)))) (eq "PDFCreator" (cdr (assoc 2 (entget pt)))) ) (command "-traceur" "N" lyt "" "" "" "" "O") (setq n (1+ n)) ) ) ) (princ (strcat "\n" (itoa n) " présentation(s) imprimée(s)." ) ) (setvar "cmdecho" cmdecho) (princ) ) ;;; Force toutes les présentations à être imprimées sur PDFCreator (defun c:ttr2 (/ cmdecho) (setq cmdecho (getvar "cmdecho")) (setvar "cmdecho" 0) (foreach pt (layoutlist) (command "-traceur" "N" pt "" "PDFCreator" "" "" "O") ) (princ (strcat "\n" (itoa (length (layoutlist))) " présentation(s) imprimée(s)." ) ) (setvar "cmdecho" cmdecho) (princ) ) Voilà. A bientot ! Matt. EDIT : Tourne sous acad2008. [Edité le 23/11/2007 par Matt666]
-
Tu veux dire que tu as déjà essayé avec pdf creator, mais qu'après la fusion le fichier en attente disparait ? C'est normal bug dans l'ancienne version (0.7)... Là c'est du lisp qu'il faut... faut voir, perso chu plutot limité avec du simple autolisp. Par contre en Vlisp, ya surement moyen de faire qqh... A bientot ! Matt.
-
Essaye avec PDF Creator, il est pas mal pour ça... Lorsque tu imprimes ton premier plan, et tu fais "mettre en file d'attente". Ensuite tu imprimes tous tes autres plans, dans l'ordre d'affichage de ton fichier pdf. Là, dans la fenêtre de pdf creator, tu sélectionnes tous tes travaux d'impression en attente pour choisir "fusionner".. Et voilà ! A bientot. Matt.
-
Il faut recharger ton mnu... Chargmnu Sinon, personnellement j'ai un lisp qui me permet de tout mettre à jour... Mes outils se composent de trois fichiers de lancement... Un MNS, un MNL et un LSP Mon fichier lsp (setq cmdecho (getvar "cmdecho") filedia (getvar "filedia") ) (setvar "cmdecho" 0) (setvar "filedia" 0) (if (menugroup "GTPI") (command "_.menuunload" "" "_.menuload" "") (command "_.menuload" "") ) (setvar "filedia" filedia) (setvar "cmdecho" cmdecho) (princ) Le fichier MNL, c'est celui des menus express un peu modifié Donc quand je veux tout mettre à jour, je charge le fichier lisp.. Voilà ! A bientot. Matt.
-
Oui, c'est ce que j'avais compris dans ton explication sur un autre post... Merci !
