-
Compteur de contenus
6 374 -
Inscription
-
Dernière visite
-
Jours gagnés
30
Type de contenu
Profils
Forums
Calendrier
Blogs
Tout ce qui a été posté par Patrick_35
-
Oui, et c'est aussi une façon de de faire qui permet de ne plus joindre de dcl avec un lisp. B) @+
-
Salut didier J'ai enfin pris le temps pour te donner un exemple ;========================================================================= ; Boite de dialogue ;========================================================================= (defun bd(titre bts / bou bouton btn dcl fil res tmp txt val) (defun bouton (label cle) (if label (write-line (strcat " :button {label = \"" label "\"; key = \"bt" cle "\"; width = 30;}") fil) (write-line (strcat " :button {label = \"\"; key = \"bt" cle "\"; width = 30;}") fil) ) ) (setq tmp (vl-filename-mktemp "rap" nil ".dcl") fil (open tmp "w") ) (foreach txt '( "tst : dialog {" " key = titre;" " is_cancel = true;" " fixed_width = true;" " alignment = centered;" " spacer;" ) (write-line txt fil) ) (setq bou 0) (while (nth bou bts) (write-line " :row {" fil) (bouton (nth bou bts) (itoa bou)) (bouton (nth (1+ bou) bts) (itoa (1+ bou))) (bouton (nth (+ 2 bou) bts) (itoa (+ 2 bou))) (write-line " }" fil) (setq bou (+ bou 3)) ) (foreach txt '( " spacer;" " cancel_button;" "}" ) (write-line txt fil) ) (close fil) (setq dcl (load_dialog tmp)) (new_dialog "tst" dcl "") (set_tile "titre" titre) (mode_tile "accept" 1) (setq bou 0) (repeat (length bts) (action_tile (strcat "bt" (itoa bou)) (strcat "(setq val " (itoa bou) ")(done_dialog 1)")) (setq bou (1+ bou)) ) (action_tile "cancel" "(done_dialog 0)") (setq res (start_dialog)) (if (eq res 1) (alert (strcat "Le calque choisis est " (nth val bts))) ) (unload_dialog dcl) (vl-file-delete tmp) (princ) ) Pour tester (bd "Un Titre" '("Calque1" "Calque2" "Calque3" "Calque4" "Calque5" "Calque6" "Calque7")) @+
-
Export de présentations vers espace objet.
Patrick_35 a répondu à un(e) sujet de Gilles1 dans Autodesk Map
Salut Tu as EXL par exemple @+ -
Ben, comme tu es d'accord que c'est le lisp qui écrit le DCL, tu as la réponse :huh: Je doit rater quelque chose. @+
-
Salut Cela me rappel ce Challenge @+
-
Salut Didier Je n'ai pas totocad sous la main, mais tu peux avoir un lisp qui écrit la boite de dialogue, et donc ainsi créer les boutons souhaités ainsi que leurs clés en fonction de tes calques. Le premier bouton pourrai de nommer calque1 avec son label, le second calque2, etc.. Une simple boucle en fonction du nombre de calque. Le seul danger dans ce type de lisp est la taille de l'écran qui risque d'être vite très petit. @+
-
Sélection objets dans une fenêtre POLYGONALE
Patrick_35 a répondu à un(e) sujet de rebcao dans AutoCAD 2011
Ben non, avec Exl (v1.11), seuls les objets visibles dans la/les fenêtre(s) sont normalement exportés. @+ -
Sélection objets dans une fenêtre POLYGONALE
Patrick_35 a répondu à un(e) sujet de rebcao dans AutoCAD 2011
Salut Je ne comprends pas bien le besoin entre exporter des présentations et le type de sélection de (gile) ? @+ -
Salut J'ai ajouté un nota pour rediriger vers mon blog @+
-
Salut Tu dois avoir une option qui "plante" et n'ayant pas la 2012, difficile de cerner le problème @+
-
Bonjour Oui, car je trouve que le lisp Tabloblo de Tramber répond mieux à ce besoin. @+
-
Salut Ben non, lors d'une sélection, tu peux faire tout (_all), dernier (_last), précédent (_previous), groupe (_group), ce qui permet sélectionner des objets non visible hors écran. Il y a juste un bémol, c'est avec l'option dernier, car sur une 2006, le dernier était forcement visible, alors qu'avec une 2009, le dernier est le dernier objet dans le dessin. Dommage, c'était bien pratique. @+
-
Par le biais d'un setq Exemple (setq ma_variable (done_dialog 60)) Dans l'aide, il est indiqué pour done_dialog un Return Values (X,Y), ce qui indique que cette fonction retourne comme info la position de la BD. @+
-
Salut Extrait de l'aide pour new_dialog Extrait de l'aide pour done_dialog @+
-
Salut Patrick Quand je vois le branchement électrique dans la douche, juste un petit rappel à la norme ps : Tu es dans le volume 1 pps : Cloclo a déjà testé ce type d'installation dans une baignoire, donc au brésil, mieux vaux utiliser les bassines pour se laver ;) @+
-
Lisp pour ajuster la taille du papier du pdf à la taille du dessin
Patrick_35 a répondu à un(e) sujet de autospeed dans Routines LISP
Rien, ce sont juste des outils et des instructions pour faire ce que tu demandes. @+ -
Lisp pour ajuster la taille du papier du pdf à la taille du dessin
Patrick_35 a répondu à un(e) sujet de autospeed dans Routines LISP
Salut Quelques outils (defun liste_imprimantes(/ imp lst) (setq lst (vlax-invoke (vla-get-activelayout doc) 'getplotdevicenames)) (foreach imp (list "Aucun" "None") (setq lst (vl-remove imp lst)) ) lst ) (defun liste_papiers(imp / lay lst old) (setq lay (vla-get-activelayout doc) old (vla-get-configname lay) ) (or (vl-catch-all-error-p (vl-catch-all-apply 'vla-put-configname (list lay imp))) (vla-refreshplotdeviceinfo lay) (setq lst (mapcar '(lambda (x) (vla-getlocalemedianame lay x)) (vlax-invoke lay 'getcanonicalmedianames))) ) (or (vl-catch-all-error-p (vl-catch-all-apply 'vla-put-configname (list lay old))) (vla-refreshplotdeviceinfo lay) ) lst ) (setq doc (vla-get-activedocument (vlax-get-acad-object))) ; pointer sur le dessin courant (setq traceurs (liste_imprimantes)) ; lister les imprimantes (setq actuel "DWG To PDF.pc3") ; définir l'imprimante (setq formats (liste_papiers actuel)) ; lister les formats papier de l'imprimante (setq lay (vla-get-activelayout doc)) ; présentation active (vla-get-canonicalmedianame lay) ; format papier (vla-get-paperunits lay) ; unité du papier : 0=acInches, 1=acMillimeters, 2=acPixels (vla-getpapersize lay 'largeur 'hauteur) ; taille du papier @+ -
Lisp pour ajuster la taille du papier du pdf à la taille du dessin
Patrick_35 a répondu à un(e) sujet de autospeed dans Routines LISP
Salut Et avec les variables EXTMIN et EXTMAX ? @+ -
Salut Oui, en lisp, presque tout est possible. Il suffit juste de se prendre par la main ;) @+
-
Petite Boite de Dialogue...
Patrick_35 a répondu à un(e) sujet de willy95 dans Pour aller plus loin en LISP
Salut Ici (action_tile "liste" "(setq pos $value)") @+ -
Petite Boite de Dialogue...
Patrick_35 a répondu à un(e) sujet de willy95 dans Pour aller plus loin en LISP
Salut Un exemple Le DCL Exemple : dialog { key = "titre"; width = 40; : popup_list {key = "liste";} spacer; ok_cancel; } Le lisp (defun c:exemple(/ doc dcl lst pos res) (if (setq dcl (findfile "exemple.dcl")) (progn (setq dcl (load_dialog dcl) lst '("1" "2" "3" "4" "5" "6" "7" "8" "9" "10") pos "0" ) (while (not (member res '(0 1))) (new_dialog "Exemple" dcl) (set_tile "titre" "Exemple V1.00") (start_list "liste") (mapcar 'add_list lst) (end_list) (set_tile "liste" "0") (mode_tile "liste" 2) (action_tile "liste" "(setq pos $value)") (action_tile "cancel" "(done_dialog 0)") (action_tile "accept" "(done_dialog 1)") (setq res (start_dialog)) ) (unload_dialog dcl) (if (eq res 1) (alert (strcat "Le choix est " (nth (atoi pos) lst))) (alert "La fonction a été annulée") ) ) (alert "Le fichier EXEMPLE.DCL est introuvable.") ) (princ) ) @+ -
Salut Et avec OUA ? @+
-
Tu as cette routine de (gile) (defun remove_doubles (lst) (if lst (cons (car lst) (remove_doubles (vl-remove (car lst) lst))) ) ) @+
-
Remplacer tous les bloc avec une même ETIQUETTE par...
Patrick_35 a répondu à un(e) sujet de rebcao dans Débuter en LISP
Salut On retrouve tous mes lisps sur mon blog (en bas de ma signature) Ceux de la page de Cadxp sont désactivés @+ -
Salut J'ai pas tout compris Un truc dans ce style ? (setq lst '((20.0 1649.5) (418.0 1649.5) (343.0 1612.0) (418.0 1574.5) (343.0 1537.0) (418.0 1499.5) (343.0 1462.0) (418.0 1424.5) (343.0 1387.0)(418.0 1349.5) (343.0 1312.0) (418.0 1274.5) (343.0 1237.0) (418.0 1199.5) (343.0 1162.0) (418.0 1124.5) (343.0 1087.0) (418.0 1049.5)(343.0 1012.0) (418.0 974.5) (343.0 937.0) (418.0 899.5) (343.0 862.0) (418.0 824.5) (343.0 787.0) (418.0 749.5) (343.0 712.0) (418.0 674.5)(343.0 637.0) (418.0 599.5) (343.0 562.0) (343.0 462.75) (463.0 342.75) (567.75 342.75) (605.25 417.75) (642.75 342.75) (680.25 417.75)(717.75 342.75) (755.25 417.75) (792.75 342.75) (830.25 417.75) (867.75 342.75) (905.25 417.75) (942.75 342.75) (980.25 417.75)(1017.75 342.75) (1055.25 417.75) (1092.75 342.75) (1130.25 417.75) (1167.75 342.75) (1205.25 417.75) (1242.75 342.75) (1280.25 417.75))); définir une liste ;trier suivant les coordonnées Y puis X si les Y sont identiques (setq lst (vl-sort lst '(lambda(a b)(if (eq (cadr a) (cadr b)) (< (car a) (car b)) (< (cadr a) (cadr b)) ) ) ) ) Ou une boucle pour avoir des listes avec des Y identiques (while lst (setq idemy (vl-remove-if-not '(lambda(x) (eq (cadr x) (cadar lst))) lst) lst (vl-remove-if '(lambda(x) (eq (cadr x) (cadar lst))) lst) ) (terpri) (princ idemy) ) @+
