zebzeb
Membres-
Compteur de contenus
66 -
Inscription
-
Dernière visite
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par zebzeb
-
DCL/LISP Récupération de valeur(s)
zebzeb a répondu à un(e) sujet de zebzeb dans LISP et Visual LISP
Bonjour, J'ajoute juste un petit commentaire pour ceux qui utiliseraient ce lisp, et qui rencontre des problèmes avec l'impression en PDFCreator. En effet avec PDFCreator les folios ne sont pas toujours (et même rarement) dans l'ordre... Ce souci n'est pas dû aux lisp mais à PDFCreator. La solution (il y en a peut-être d'autre) Sous windows: Périphériques et imprimantes / Propriété de l'imprimante / Avancé ...et cochez "Imprimer directement sur l'imprimante" Voili, voilou -
DCL/LISP Récupération de valeur(s)
zebzeb a répondu à un(e) sujet de zebzeb dans LISP et Visual LISP
Merci ça marche super J'ai remplacé ceci (action_tile "ctb" "(setq ctb (get_tile \"ctb\"))(done_dialog)") (action_tile "fmt" "(setq fmt (get_tile \"fmt\"))(done_dialog)") ... (if (= ctb "ctbc")(setq table "acad.ctb")(setq table "monochrome.ctb")) (if (= fmt "A3")(setq ech "1=0.97")(setq ech "1=1.42")) (if (/= fmt "A3")(setq fmt "A4")) par ça ... c'est bien mieux;) (action_tile "ctbnb" "(setq ctb 0)") (action_tile "ctbc" "(setq ctb 1)") (action_tile "A4" "(setq fmt 0)") (action_tile "A3" "(setq fmt 1)") ... (if (= ctb 1)(setq table "acad.ctb")(setq table "monochrome.ctb")) (if (= fmt 1)(setq ech "1=0.97")(setq ech "1=1.42")) (if (/= fmt 1)(setq fmt "A4")(setq fmt "A3")) -
DCL/LISP Récupération de valeur(s)
zebzeb a répondu à un(e) sujet de zebzeb dans LISP et Visual LISP
Oups... Le problème des fichiers DCL est que le chemin doit-être dans Autocad... Dans mon entreprise il y a bcp d'ordi est bcp de versions différente d'Autocad... J'ai pensé (peut-être à tord) que ce serais plus facile -
DCL/LISP Récupération de valeur(s)
zebzeb a répondu à un(e) sujet de zebzeb dans LISP et Visual LISP
Merci beaucoup pour vos réponses je teste immédiatement -
Bonjour, Je suis débutant en Lisp (plutôt bidouilleur!!). Je rencontre un soucis récalcitrants, lorsque je test le retour de la boite DCL je ne récupère pas les variables ctb et fmt, ce qui est génant pour la suite des instructions qui ne s'effectuent pas. N'ayant plus de solution je m'en retourne vers vous les ceintures noir, grise et même blanche ;) Voici mon code: (defun liste_imprimantes(/ imp lst) (setq lst (vlax-invoke (vla-get-activelayout doc) 'getplotdevicenames)) (foreach imp (list "Aucun" "None" "Microsoft XPS Document Writer" "HP Designjet T1200 HPGL2" "Fax" "Default Windows System Printer.pc3" "DWF6 ePlot.pc3" "DWFx ePlot (XPS Compatible).pc3" "DWG To PDF.pc3" "PublishToWeb JPG.pc3" "PublishToWeb PNG.pc3" ) (setq lst (vl-remove imp lst)) ) lst ) (defun *error* (msg) (princ "=> ") (princ msg) (terpri) ) (defun c:T2 (/ x y old_cmdecho old_attdia old_osmode doc temp id_dcl file nb fol kt implist trac ctb pt1 pt2 fmt msg) (setq old_cmdecho (getvar "CMDECHO")) (setq old_attdia (getvar "ATTDIA")) (setq old_osmode (getvar "OSMODE")) (setvar "CMDECHO" 1) (vl-load-com) (setq doc (vla-get-activedocument (vlax-get-acad-object))) (setq TEMP(vl-filename-mkTEMP "Tmp.dcl") file (open TEMP "w")) (write-line (strcat "TraInputbox:dialog{label=\"TRA2012 By Zeb\";initial_focus=\"implistordi\";" "is_cancel = true;" ":popup_list{key=\"implistordi\";value=\"1\";}" ": boxed_column {" "label=\"CTB\";key=\"ctb\";" " :radio_button{" " label=\"Monochrome\";key=\"ctbnb\";value=\"1\";}" " :radio_button{" " label=\"Couleur\";key=\"ctbc\";}}" ": boxed_column {" "label=\"Format du papier\";key=\"fmt\";" " :radio_button{" " label=\"A4\";key=\"A4\";value=\"1\";}" " :radio_button{" " label=\"A3\";key=\"A3\";}}" ":edit_box{" "label=\"Nombre de folios à tracer:\";key=\"nb\";edit_width=5;allow_accept=true;}" ":edit_box{" "label=\"Numéro du folio de départ:\";key=\"fol\";edit_width=5;allow_accept=true;}" "spacer;ok_cancel;}" ) file ) (close file) (setq nb 1 fol 1 dcl_id (load_dialog temp) ) (if (not (new_dialog "TraInputbox" dcl_id)) (exit) ) (setq trac "PDFCreator") (setq implist(liste_imprimantes)) (start_list "implistordi") (mapcar 'add_list implist) (end_list) (set_tile "nb" (itoa nb)) (set_tile "fol" (itoa fol)) (action_tile "nb" "(setq nb (atoi (get_tile \"nb\")))") (action_tile "fol" "(setq fol (atoi (get_tile \"fol\")))") (action_tile "ctb" "(setq ctb (get_tile \"ctb\"))(done_dialog)") (action_tile "fmt" "(setq fmt (get_tile \"fmt\"))(done_dialog)") (action_tile "implistordi" "(setq trac (nth (atoi (get_tile \"implistordi\")) implist))") (action_tile "cancel" "(exit)") (action_tile "accept" "(done_dialog)") (start_dialog) (unload_dialog dcl_id) (vl-file-delete temp) (setq X 400.0 Y 280.0) (if (= ctb "ctbc")(setq table "acad.ctb")(setq table "monochrome.ctb")) (if (= fmt "A3")(setq ech "1=0.97")(setq ech "1=1.42")) (if (/= fmt "A3")(setq fmt "A4")) (if (or (< nb 1)(< fol 1)(< nb fol)) (progns (setq msg (strcat "ERREUR: 1 <= Nombre de folios("(itoa fol)") <= Numéro départ(" (itoa nb) ")\n")) (setq msg (strcat msg "\nLe nombre de folios : Entier réel superieur ou égale à 1 et superieur ou égale au numéro de départ")) (setq msg (strcat msg "\nLe numéro de départ : Entier réel superieur ou égale à 1 et inférieur ou égale au numéro de folios")) (alert msg) (exit) ) ) (setq KT 1) (while (< KT (1+ NB)) (if (= 1 (logand FOL 1)) (setq PT2 (list (* (/ (1+ FOL) 2.0) X) Y)) (setq PT2 (list (* (/ FOL 2.0) X) (* Y 2.0))) ) (setq PT1 (list (- (car PT2) X) (- (cadr PT2) Y))) (setq OLD_OSMODE (getvar "OSMODE")) (setvar "OSMODE" 0) (setvar "ATTDIA" 0) (if (= 0 (getvar "TILEMODE")) (command "-TRACEUR" "Oui" (getvar "CTAB") trac fmt "M" "A" "Non" "F" PT1 PT2 ech "C" "Oui" table "Oui" "Non" "Oui" "Non" "Non" "Oui" "Oui") (command "-TRACEUR" "Oui" (getvar "CTAB") trac fmt "M" "A" "Non" "F" PT1 PT2 ech "C" "Oui" table "Oui" "Non" "Non" "Non" "Oui") ) (setvar "OSMODE" OLD_OSMODE) (setq KT (1+ KT) FOL (1+ FOL)) ) (setvar "CMDECHO" old_cmdecho) (setvar "ATTDIA" old_attdia) (setvar "OSMODE" old_osmode) (princ) ) Pourquoi les if ne fonctionne pas? (action_tile "ctb" "(setq ctb (get_tile \"ctb\"))(done_dialog)") (action_tile "fmt" "(setq fmt (get_tile \"fmt\"))(done_dialog)") ... (if (= ctb "ctbc")(setq table "acad.ctb")(setq table "monochrome.ctb")) (if (= fmt "A3")(setq ech "1=0.97")(setq ech "1=1.42")) (if (/= fmt "A3")(setq fmt "A4")) Est-ce un problème "action_tile" ... Je rame Grand merci par avance D'autre part je souhaiterais également exclure dans la liste d'imprimante tous les PC3 car d'un ordinateur à l'autre ce ne sont pas les mêmes: (defun liste_imprimantes(/ imp lst) (setq lst (vlax-invoke (vla-get-activelayout doc) 'getplotdevicenames)) (foreach imp (list "Aucun" "None" "Microsoft XPS Document Writer" "HP Designjet T1200 HPGL2" "Fax" "*.PC3" ; <= Ceci ne fonctionne pas ) (setq lst (vl-remove imp lst)) ) lst ) Merci à vous
-
Comment Activer le paramètre de visibilité après l’import ATTIN
zebzeb a répondu à un(e) sujet de zebzeb dans AutoCAD 2011
Merci Bryce, j'avais espéré une technique ou une bidoulle pour contourner ce problème, car le LISP ou le VB ne sont pas vraiment dans mais cordes :blink: ... Si je trouve une solution... (qui sait!) je posterais ici -
Comment Activer le paramètre de visibilité après l’import ATTIN
zebzeb a posté un sujet dans AutoCAD 2011
Bonjour, J’ai un bloc dynamique avec un paramètre de visibilité (2 choix) et 3 attributs : C1 => Texte par défaut : CONFORME C2 => Texte par défaut : NON CONFORME Cx => Stocke le paramètre de visibilité sous la forme : %<\AcObjProp Object(%<\_ObjId 0123456789>%).Parameter(1).VisibilityState>% Si le choix 1 est sélectionné le bloc affiche C1, si choix 2 ça affiche C2 Avec un ATTOUT j’obtiens ceci : Fichier.txt HANDLE BLOCKNAME C2 C1 CX '37B *U18 NON CONFORME CONFORME Choix 2 '36C *U18 NON CONFORME CONFORME Choix 2 '223 *U17 NON CONFORME CONFORME Choix 1 Lorsque je fais un ATTIN je dois supprimer la colonne CX sinon je perds la formule, CX devient un texte. Je souhaiterais pouvoir modifier l’attribut CX, et qu’Autocad (au moment de l’ATTIN) valide l’attribut en tant que paramètre de visibilité. Des idées? Merci par avance -
Trop fort... Pourquoi faire compliquer!!!! :cool: Merci rebcao :)
-
Bonjour, Je souhaite réaliser une macro associé à une icône. Celle-ci me permet de placer un objet ou selection à mi-distance entre 2 point d'accroche Commande: 'cal (int+int)/2; // pour 2 intersections Commande: 'cal (nod+nod)/2; // pour 2 points Commande: 'cal (int+nod)/2; // pour une intersection et un point Soit en en plus simple pour n'avoir qu'une seule icône => 'cal (X+Y)/2: Donc capturer les points d'accroches pour X et Y Commande: (setq X (getpoint) => Me renvoi les coordonnés d'un point Mais la commande: Commande: 'cal ((setq X (getpoint))+(setq Y (getpoint)))/2; Grrr :casstet: Ne fonctionne pas :(. Pouvez-vous m'aider? ... par avance merci :cool:
-
Sélectionner les blocs délimité par une polyligne
zebzeb a répondu à un(e) sujet de zebzeb dans AutoCAD 2007
BRAVO et MERCI -
Sélectionner les blocs délimité par une polyligne
zebzeb a répondu à un(e) sujet de zebzeb dans AutoCAD 2007
Bonjour Merci, ça marche super bien :D sp => Sélectionne tous les blocs strictement contenu dans le polygone cp => Sélectionne tous les blocs contenu et touché par le polygone Je suis loin de ce que j'avais prévu de faire au départ, mais j'ai de beaucoup simplifié les manipulations (un grand merci ;)) Je progresse gentiment mais sûrement. -
Sélectionner les blocs délimité par une polyligne
zebzeb a répondu à un(e) sujet de zebzeb dans AutoCAD 2007
C'est super ça marche très bien sauf que la sélection s'effectue avant la commande bcount. Hors bcount doit-être lancé en premier. J'ai tenté (mais sans succès :( ) de modifier le lisp afin d'y incorporer la commande bcount avant la sélection mais rien n'y a fait ... Je sollicite donc encore une fois votre aide ;) ... D'autre part si vous connaissais un lien du genre "lisp pour les nul" je suis preneur ;). -
Sélectionner les blocs délimité par une polyligne
zebzeb a répondu à un(e) sujet de zebzeb dans AutoCAD 2007
Après de multiples essais :casstet: j'ai enfin trouvé pourquoi je n'y arrivais pas ... Il fallait [surligneur]Clore [/surligneur] la polyligne !! :D -
Sélectionner les blocs délimité par une polyligne
zebzeb a répondu à un(e) sujet de zebzeb dans AutoCAD 2007
Je reviens vers vous .... Voici ce que j'ai fait: (édition de ma fenêtre Autocad) Commande: appload Special_selections.lsp correctement chargé(s) Commande: ssof Choix des objets: [surligneur](ici je sélectionne ma polyligne)[/surligneur] Commande: [surligneur](rien??) [/surligneur] ... avec ssoc Commande: ssoc Choix des objets: [surligneur](je sélectionne ma polyligne) [/surligneur] Commande: Rien n'est sélectionné, rien ne ce passe (hic!!) retour à la case départ Comment faire? J'utilise mal le lisp? Des suggestions? -
Sélectionner les blocs délimité par une polyligne
zebzeb a répondu à un(e) sujet de zebzeb dans AutoCAD 2007
Merci Lili pour ta réponse ultra rapide , je test dès mon retour au boulot :) -
Bonjour, Je suis débutant et je travail sur Autocad 2007. Je souhaiterais pouvoir sélectionner tous les blocs délimiter par une polyligne afin d'effectuer un bcount. Ma polyligne contient de nombreux sommet (donc pas rectangulaire) ce qui induit une sélection en plusieurs fois et par conséquent une grande perte de temps J'imagine quand lisp ce doit-être possible mais je ne connais pas (hic!). Pouvez-vous m'aider? Par avance merci
